Skip to Main Content


Question and Answer

Tom Kyte

Thanks for the question, Sarayu.

Asked: April 28, 2011 - 10:55 am UTC

Last updated: October 31, 2012 - 5:31 pm UTC


Viewed 10K+ times! This question is

You Asked

Hi Tom,

We are being asked to review on pros and cons on having Oracle on VMWare.
We have around 1000 oracle instances running across multiple platforms.
Within a year or two, our management wants to move atleast 50% of oracle instances (test,qa databases) to VMWare.

Can you help us to understand more on this? Would you please suggest any specific books on this topic?

Thank You

and we said...

I know of no specific book on this. If someone else does - they might post a title.

In short - it won't change your day to day life very much at all - as far as you are concerned, you'll have as many machines as you did before - because you'll have as many hosts as you did before. Each VM instance will add some amount of overhead to the existing system (it will take a little more power to run each of your databases) - but since you are consolidating - you'll probably need less resources overall (you won't have a lot of excess capacity sitting around on each of the machines you have now).

Having your test and qa databases on VMware will be good for FUNCTIONALITY testing only, it will be less useful for LOAD testing - in fact, it won't be useful for that so much - since you won't be using VMs in production (at least, that is what I read in your statement above).

Really what you'll want to do is learn everything you can about VMware and its capabilities so you can exploit them when you have them. And also so that you can "predict" what will probably happen if you do something - you know how Oracle works, if you know how VMware works - you should be able to see what might happen if you do "X".


  (15 ratings)

Is this answer out of date? If it is, please let us know via a Comment


down the rabbit hole

Ben, April 29, 2011 - 3:24 pm UTC

The biggest Pros would be Disaster Recovery, Hardware Refresh, licensing reduction, ease of setting up a Proof Of Concept/patch test enviornment. Imagine a hardware refresh that is as simple as a reboot. DR can become as simple as a cold boot or even a fully automated transition with no downtime depening on how you build your enviornment. I've actutually set up systems where for a DR test host admins with zero Oracle training have recovered Oracle database servers and Fusion middleware servers with the same wizard interface they use to recover their Windows servers.

The cons would be licensing increase & a small performance hit

yes, licensing is both a Pro and a Con, depending on how you build your virtual enviornement and which hypervisor you use.

Licensing is based around what Oracle considers to be a "Hard partition" for CPU resources
For Oracle VM, virtual CPUs are Hard Partitions. Each virtual CPU is a treated as a processor core, so check Oracle licensing for the current multiplier (I believe .25)

For VMware vSphere/ESX, any connection other than managment is considered one hard partition. So if you put two physical servers each with two phyical CPUs and running 8 core cpus in a vCenter cluster, all of the CPUs within that cluster are considered one hard partition and must be licened per the current Oracle licesing spec. For x86 commondity servers, this is .5, so this setup would require 2 (Servers) x 2 (CPUs each) x 8 (cores/CPU) x .50 = 16 Processors of licensing. Confused? check out this blog

Amazon's EC2 cloud is recognized as hard partitioning with a .25 modifier for the virtual CPUs.

Citrix, MS, & RedHat all also have hypervisor products as well. Each hypervisor vendor is treated differently, so research it first. You could either save your self large amounts of money, or cost yourself even more. If you have lots of very lightly loaded VM's I'd recommend vSphere and run many virtual machines per phyiscal host. This works great for development enviornements that need to be reconfigured a lot or run at different patch levels. If you have a higher CPU load on your current systems, look at Oracle VM. Speaking from experience, when you set up your virtual enviornment, do not skimp on RAM. Almost all deploys will hit a memory ceiling before hitting a CPU/PIO/network ceiling.

That said : from a technical perspective. You're abstracting the hardware, specifically you're abstracting CPU, RAM, Physical I/O and networking (attached storage can be considered PIO for this discussion, even SANs running FCoE). Any abstraction comes with a performance loss at the gain of flexiblity. This is true for Java VMs, native pl/sql vs pl/sql vm, _any_ abstraction. The good news is typically these resources still run at least at 95% of physical iron. Some hypervisor systems can abstract certain server resources, but offer others up directly. As an example, in the case of Cisco UCS and VMWare vSphere, the virtual server can have it's own HBA directly "attached" to your SAN storage, bringing PIO up to nearly the same speed as physical servers. RAM in VMware is always fed through the hypervisor & it's enhancements which can have either a positive or negative effect on an Oracle DB depending on the kinds of applications being run. RAM for other hypervisors such as XenServer & Cisco UCS aren't guided through a hypervisor so RAM access is _technically_ faster (98% iron speed vs 97% sort of difference, exact impact varies on config & load!) Other than a few tricks like this, any of the major vendors will work, but the current differences between them are in managment and integration (with backups/SAN/etc) VMware is the most mature by a couple of years & has the best integration & managment. Citrix, Cisco, & MS have solid managment (Cisco has some really cool trick in UCS since they control the hardware as well). Oracle VM is, well, mostly a manual headache. Give them 18months & I'm sure we'll see some drastic improvments here.

I believe that Oracle is tilting the licensing field to try to steer people towards Oracle VM since it can't currently compete head to head in the enterprise with more mature products. I'd pick which one to go with based on 1) is it VMware? 2) is it already in use somewhere in the company with a good tech that can help design the complete system (backup integration can be a real headache! if someone else has already solved that headace, don't reinvent the wheel!) 3) what will it do to my licensing?

Go talk with your desktop group. Seriously. Virtual Desktops are _the_ hot topic & there is a massive push to virtualize the desktop using something like XenDesktop on Cisco UCS or Vmware View on vSphere. They may already have a plan in place. See how it works out & can it be expanded to suit your needs?


sam, July 28, 2011 - 6:35 pm UTC


Would you recommend running several small "production" Oracle 11g R2 databases on a Virutal Box running Red Hat Linux (using VMware)? Would it run like if you are actually running on non virtual Red Hat Linux machine.

One DBA told me Oracle support will not provide any help with issues encountered if oracle is running on VM machine. They want you to replicate the issue on non-VM machine first. Is this true?
Is this correct?
Tom Kyte
July 28, 2011 - 7:53 pm UTC

One DBA told me Oracle support will not provide any help with issues
encountered if oracle is running on VM machine. They want you to replicate the
issue on non-VM machine first. Is this true?

that is not true in general, no. We support Oracle single instance (non-rac) running in a VM. If you hit a strange OS related issue - we may have to reproduce that - but for your run of the mill issues - no.

I would rather run a few (like one if possible/sensible) databases rather than several any day.

but running in a VM is fine if you want to.

VMWare support

Dominik, July 29, 2011 - 12:45 am UTC

Hi Tom,

could you please point me to a site where oracle is officially stating that it is supporting single instances running in VMWare guests?

Up to now, the latest information from oracle was always, that oracle only supports its own virtualization and not VMWare (got that from an oracle consultant in Duesseldorf).

Many thanks in advance!
Tom Kyte
August 01, 2011 - 11:26 am UTC

just search for

vmware support


Support Position for Oracle Products Running on VMWare Virtualized Environments [ID 249212.1]
Modified 08-NOV-2010 Type ANNOUNCEMENT Status PUBLISHED

try using the support site

JM, July 29, 2011 - 2:37 pm UTC

Support Position for Oracle Products Running on VMWare Virtualized Environments (Doc ID 249212.1)

Tom Kyte
August 01, 2011 - 11:45 am UTC

I should really look ahead to see if someone else already answered :) thanks!


sam, August 01, 2011 - 9:35 pm UTC

Tom Kyte
August 02, 2011 - 7:01 am UTC

It is not recently, it has been that way for a long time. The RAC comment was new as of November 2010 - but for single instance Oracle - it was our stated policy.

The note states at the bottom that "For Oracle RAC, Oracle will only
accept Service Requests as described in this note on Oracle RAC and later
releases.", that is new.

VM ware support

A reader, November 03, 2011 - 4:07 pm UTC

Here is the official note. Oracle is not ceritified on VM ware and support is as described below.

Support Status for VMware Virtualized Environments
Oracle has not certified any of its products on VMware virtualized environments. Oracle Support will assist customers running Oracle products on VMware in the following manner: Oracle will only provide support for issues that either are known to occur on the native OS, or can be demonstrated not to be as a result of running on VMware.

If a problem is a known Oracle issue, Oracle support will recommend the appropriate solution on the native OS. If that solution does not work in the VMware virtualized environment, the customer will be referred to VMware
for support. When the customer can demonstrate that the Oracle solution
does not work when running on the native OS, Oracle will resume support, including logging a bug with Oracle Development for investigation if required.

If the problem is determined not to be a known Oracle issue, we will refer
the customer to VMware for support. When the customer can demonstrate
that the issue occurs when running on the native OS, Oracle will resume support, including logging a bug with Oracle Development for investigation if required.

NOTE: Oracle has not certified any of its products on VMware. For Oracle RAC, Oracle will only accept Service Requests as described in this note on Oracle RAC and later releases.

Tom Kyte
November 04, 2011 - 1:11 am UTC

Oracle is not "certified" on most things - we have never run on your hardware configuration internally in all probability. it is however *supported*.


DJB, November 04, 2011 - 5:38 am UTC

This is a big issue. We had an Oracle audit and because the database could be 'assigned' to a number of VM's in the configuration Oracle demanded each one be licensed. We had to remove them from VM's to avoid huge licase costs. Mr Ellison is in it for the money, after all.

Oracle Cloud

Amir Riaz, November 04, 2011 - 10:42 am UTC

Hi Tom,

Oracle VM 3.0 the latest is impressive. In OOW, after the announcement of Oracle public cloud, I did some research on this topic and have some question for you.

1. Why a pool of storage is not a good idea. A pool of storage at oracle level would be ASM with a lot of disks and all virtual instance can access it and a common storage pool would save Oracle a lot of work so why Oracle separate storage for each cloud or each data service.

2. During an architectural analysis, We came face to face with IBM DB2 9.7. Since 9.0 IBM is using a thread based model, with a few process and a huge process hosting all threads, its similar to Oracle on windows, which has a one process Oracle.exe and all the other thread run inside it.

with IBM DB2, The advantage they have is, they can create multiple instance without vitalization.

Will you elaborate, which approach is better, Oracle Process based model or IBM DB2 thread based model. What are pros and cons of each approach. IBM DB2 claims that they have minimized context switch and usage of memory. but they are not tell what problems this approach bring to DB2.

Your answer will enlightening many peoples.
Tom Kyte
November 07, 2011 - 10:08 am UTC

1) because VM 1 could burn up all of the IO resources leaving VM 2 and 3 in the cold. Physical separation of resources gives you an assurance that the resource is there for you when you want it.

2) I don't know what you mean - "with IBM DB2, The advantage they have is, they can create multiple instance without vitalization.". Why would using threads give them this capability (whatever it is). Please elaborate.

Licensing danger

David, November 06, 2011 - 6:55 pm UTC

I agree with DJB that licensing is a big issue. Oracle require every physical server in a VMware cluster to have Oracle licenses, and all with the same options, regardless of what actually runs on the server. For small sites, you can't (economically) run Oracle on one server of a cluster and use the other servers for other things because the other servers will require Oracle licences.

Oracle Australia are demanding license fees after an audit, not allowing de-clustering, despite having only one, single node, database bound to a single physical server.

So VMware is good for various reasons, but you probably need an Oracle cluster and a non-Oracle cluster. Single database sites have to pay for Oracle licenses for unused machines if they want a cluster. Multi-database sites get better value. Failover capacity has to be fully licensed if it is inside the cluster. If Production has options you don't want for other environments (e.g. active dataguard) you may want a production VM cluster and and a test/qa VM cluster so you don't have to pay for the unused option on the test/qa servers.

This is not described in Oracle's licensing documents, as far as I can find, but these are the rules they enforce. (Their partitioning-070609.pdf document explicitly applies to partitioning within a server, so logically doesn't apply to clusters, but 'VMware is soft partitioning' is a key phrase in licensing discussions with Oracle)
Tom Kyte
November 07, 2011 - 11:52 am UTC

that is because you cannot hard partition VM ware, if you use virtualization that hard partitions - you license only what you need.

This is documented, in the document you referred to

that comes directly from the license information:

under specialty topics.

DB2 threading model

Amir Riaz, November 08, 2011 - 7:24 am UTC

Hi Tom,

I am asking you this question, because we have DB2 sales team advocating that their thread based DB2 model is better than Oracle process based.

I have failed to understand why they adopted thread based model in DB2. When I asked them they replied that thread based model is more efficient, since it require less over head in context switching and require less memory. further they can run multiple instance on demand without visualization or with visualization

I dont see DB2 as innovators, they propagated share nothing architecture for years and in the end adopted share everything architecture like Oracle. They were the top criticizes when we purchase our exadata machine and again they proved wrong. Now our clients have three exadata machines and some other are in pipeline.

but I need some convincing arguments why IBM adopted thread model with DB2 and what's its pros and cons and I know none can guide me better than you.

Tom Kyte
November 08, 2011 - 7:53 am UTC

since it
require less over head in context switching and require less memory.

that is totally an "it depends" sort of thing. On windows - yes (but we are multi-threaded there). Not necessarily so on the other platforms.

Let's put it this way - if we wanted to be multi-threaded, we could be. We have the code in place after all - we use the same code on windows as we do on unix for the most part.

they can run multiple instance on demand without visualization or with

so can we? so what?

Ask IBM for numbers, actual numbers, showing their superiority I guess.


A reader, November 08, 2011 - 10:08 am UTC

<<<that is because you cannot hard partition VM ware, if you use virtualization that hard partitions - you license only what you need. >>

interesting! and I thought sofware partitioning can work like physical partitioning where you create multiple VMs and you can allocate for VM#1 20% CPU and 30% RAM of the total resources on the physical machine and it should not exceed it.

I originally thought VMware can be configured that way.

If the machine has 2 dual-core CPUs, i should be able to tell VMware to use 1 CPU only for VM#1.

If that is not true, the only benefit i see from VMware is ability to run multiple O/S on one physical machine and maximizing usage of the resources used on that machine instead of having 3-4 physical machines with wasteful resources.

of course you have single point of failure too. Physcial machine goes bad, all VMs go down with it.
Tom Kyte
November 08, 2011 - 10:54 am UTC

soft partitioning does not guarantee "just this much", VMware itself will use some CPU and VMware would have that process float from cpu to cpu time as well. It is not limited to using a single cpu.

Licensing on WMware

A reader, November 09, 2011 - 7:48 pm UTC

From the licensing perspective, the point about VMware being soft partitioning is that you can change what share of a server a virtual machine gets without even a reboot. VMware ESX can also be configured move a virtual machine to a new server on the fly without a reboot. This obviously creates an opportunity to change thee arrangements between the peak load period and when the Oracle auditor comes. Oracle require all the physical servers in the VMware cluster to be fully licensed.

going forVMWare

Alex, April 11, 2012 - 4:24 am UTC

we are going for virtualization in our company for the IT section, and we are now in the discussion phase, so my question is : what question can be asked to the oracle engineer, regarding risks, licenses , disadvantages about oracle in virtualization
Tom Kyte
April 11, 2012 - 11:32 am UTC

what is wrong with the question:

what are the risks, licensing issues , disadvantages about oracle in
virtualization ???

Running oracle on VM

A reader, October 18, 2012 - 10:55 pm UTC


Do you agree with the following points made by some about virtualization by some techies. I would like to see your honest opinion on these points about running oracle on RHEL VM machine running ESXi.

1) database don't run well on VM machines. There is also a timestamp accuracy issue with transactions running on VM.

2) You will lose considerable perfornamce running database on VM instead of physical machine.

with vmware setup you will use an emulated disk on a remote ISSCI export and latencies will be huge and the throughput less good than otherwise

3) There are more points of failure for a database running on VM.

4) oracle support does not provide for their product on vmware unless the issue is well-known on the gues OS and known not to be linked with vmware in any way.

5) Running database on a low-cost physical machine is much easier to maintain, and sure to perform much better than any vmware + awfully expensive SAN or NAS setup, not to mention the network equipment.
Tom Kyte
October 23, 2012 - 11:06 am UTC

1) false and false. There are many many many sites out there running on virtualization technology of one sort of the other and they run well. In fact, they run better than if they didn't virtualize (virtualization permits resource management - something you don't have in 11g and before if you run more than one database).

I don't even have a clue what they mean by the timestamp stuff. No one uses the system clock for transaction tracking - we don't care if you use earth time or martian time for your clock.

2) false. You might find yourself running many times better as well. It depends. It is all about resource management. If you have 20 databases running on a box and don't have any resource management in place - you'll find yourself in a world of hurt.

3) false. Name them. One could say with virtualization I can remove points of failure - for example, I can run RAC if I wanted to protect from system or database crashes.

4) false. period.

5) probably false. first - VM's do not imply SAN or NAS. Second, you can run a VM on that same low cost machine. And as for maintenance - things like snapshotinng and such can make maintenance much much easier and much more flexible - getting a testing/dev environment can all of a sudden be trivial - try that upgrade on a production clone before doing that upgrade and so on.

Not that I'm saying "go VM everything", just saying there isn't much truth to their side right here and now.


A reader, October 30, 2012 - 9:19 pm UTC


It seems nowadays many system admins just eat a lot of bologna! I do not know how they get their information.

But concerning your statement,
<<No one uses the system clock for transaction tracking>>

I always use SYSDATE function for transactions. Is not that using system clock for date/timestamp?

Tom Kyte
October 31, 2012 - 5:31 pm UTC

you do not track database transactions. you have a date field that has a representation of when you think something happened in human being time.

the database doesn't use a clock for transaction ordering/recovery/anything like that.