Oracle数据库是收费的吗? 答案是模棱两可的,根据不同的使用环境或用途,可以分为收费和不收费两种。其实Oracle数据库软件本身是不收费的;任何人在已连接互联网的电脑上都可以从Oracle官方网站免费下载并安装Oracle的数据库软件(服务端和客户端),但是如果数据库用于商业用途就需要购买相应Oracle产品的License,也即软件授权,软件授权是收费的。所以如果只是自己下载学习及研究使用是免费的,仅限于个人学习的非盈利性使用。
现在Oracle有两种授权收费方式,按CPU(Process)数和按用户数(Named User Plus)。前一种方式一般用于用户数不确定或者用户数量很大的情况,典型的如互联网环境,而后一种则通常被用于用户数确定或者用户数较少的情况。
按CPU:License数=CPU 数*系数。系数来自Oracle的一个参数表,如IBM的POWER6、POWER7和POWER8处理器为1,AMD和Intel的处理器为0.5,最新详细详细参数表如下:
例如,带有4个八核处理器的SUN UltraSparc T1系统将需要4*8*0.25 = 8个许可证。这只是一个例子。Sun UltraSparc T1和T2不支持SMP,只有Sun UltraSparc T2+支持SMP。类似地,一个带有4个八核处理器的IBM AIX系统将需要4*8*0.5 = 16个许可证。
按用户数:Oracle用户数的官方定义是每一个访问Oracle数据库的用户,无论是自然人还是设备(如工业环境中的传感器之类),都算作一个用户(Named User)。
注:一般情况下,1CPU的费用约等于50user的费用,所以如果用户数>CPU数*系数*50,则按CPU订购反而更为经济。
可以执行以下脚本来查看应该获得许可的(一些)组件:
用户和CPU/处理器的数量:
1
|
select * from v$license; |
请注意,此命令提供的信息在多线程、多核或虚拟系统上不可信。这是数据库已知的可用处理器数量,而不是必须获得许可的处理器数量。
安装的数据库版本:
1
|
select banner from v$version where BANNER like '%Edition%' ; |
使用的Oracle分区:
1
2
3
4
5
|
select decode( count (*), 0, 'No' , 'Yes' ) Partitioning from ( select 1 from dba_part_tables where owner not in ( 'SYSMAN' , 'SH' , 'SYS' , 'SYSTEM' , 'AUDSYS' ) and rownum = 1 ); |
请注意——在企业版上,几乎总是会安装分区。它由Oracle数据库本身使用——该命令单独使用时不会提供有关许可要求的信息。
使用的Oracle Spatial:
1
2
3
4
|
select decode( count (*), 0, 'No' , 'Yes' ) Spatial from ( select 1 from all_sdo_geom_metadata where rownum = 1 ); |
使用的Oracle RAC:
1
2
3
4
|
select decode( count (*), 0, 'No' , 'Yes' ) RAC from ( select 1 from v$active_instances where rownum = 1 ); |
安装/未安装的选项:(来自9i)
1
2
3
|
Select parameter name , value from v$ option order by 2 desc , 1 |
使用/未使用的功能:(来自10)
1
2
3
4
5
6
|
Select decode(detected_usages,0,2,1) nop, name , version, detected_usages, currently_used, to_char(first_usage_date, 'DD/MM/YYYY' ) first_usage_date, to_char(last_usage_date, 'DD/MM/YYYY' ) last_usage_date from dba_feature_usage_statistics order by nop, 1, 2 |
参考资料:
http://www.orafaq.com/wiki/Oracle_licensing#Unlimited_License_Agreements
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf