Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下:
License Number = The Number of CPU Cores * Core Factor
其中Core Factor 可以参考官方文档 Oracle Processor Core Factor 。
如果Oracle 安装在VMWARE 上,是否也是按照这个方式计算呢? 也就是说,在虚拟机VMWARE上Oracle的License计算是否也是按照分配CPU核数来计算的呢? 关于虚拟机上ORACLE的License计算,ORACLE 引入了下面 Soft partitioning (软分区)和Hard partitioning (硬分区)概念(如下所示),而且明确规定 VMware是软分区,并且规定Soft partitioning is not permitted as a means to determine or limit the number of software licenses required for any given server。
也就是说在一台物理机上,假如如下所示,虚拟了一台Linux服务器做Oracle Database Server, 虚拟了另外一台Windows服务器做SQL Server服务器,物理机上有2个物理CPU,每个4 Core,平均分配给这两个服务器,此时Oracle的License计算是
License Number = 2* 4*0.5= 4 而不是 License Number = 1*4*0.5= 2.
也就是说,不管是分配两核、四核、多核给Oracle 数据库服务器,Oracle License的计算都不以分配的核数计算,而是以物理机CPU核数来计算。
这样虽然不合理,但是也没有办法。至于为什么Oracle在VMWARE上这样计算License,就不得而知了。有可能是处于商业战略考虑,也有可能是处于打击商业对手。