前言
作为DBA时常也会遇到一些商务的问题,比如购买Oracle 的授权,比如老板问用oracle有没有法律风险,这个组件是否收费?如何计算授权数?等等,本文根据博主的经验和一些Oracle公开的资料,来做一个详细的解读。
一.哪些组件是收费的
这里根据一份Oracle公开的list price文档,可以比较清楚的了解哪些组件是收费的,大概的价格多少,这份文档中均有列出。
数据库相关收费组件及报价
(list price一般价格虚高,实际购买可能会有各种折扣)
文档官方链接地址:https://www.oracle.com/a/ocom/docs/corporate/pricing/technology-price-list-070617.pdf
1.1 Oracle Database
也就是我常说数据库授权这里主要的就是两种企业版和标准版
从授权的价格看标准版大约为企业版的授权价格的三分之一,受限于一些功能,国内基本都是使用企业版,但是在一些知识产权比较严格的国家还是有很多标准版的,毕竟可以便宜很多。如下列表简单对比Standard Edition和Enterprise Edition之间的区别
功能/特性 | Standard Edition (SE) | Enterprise Edition (EE) |
最大处理器数量 | 2 个处理器 | 无限制 |
最大实例数量 | 1 个实例 | 无限制 |
内存管理 | 手动 SGA 和 PGA 调整 | 自动内存管理 (AMM) |
分区表 | 不支持 | 支持 |
OLAP | 不支持 | 支持 |
数据加密 | 支持 Transparent Data Encryption (TDE) | 支持 Advanced Security Option (ASO) |
数据压缩 | 只支持基本压缩 | 支持高级压缩 |
高级备份 | 不支持 | 支持 RMAN 备份压缩和加密 |
Data Guard | 不支持 | 支持 |
并行查询 | 不支持 | 支持 |
闪回技术 | 仅支持 Flashback Query | 支持 Flashback Database 等完整功能 |
高级分析功能 (如分析函数) | 不支持 | 支持 |
RAC (Real Application Clusters) | 支持但有限制 | 完全支持 |
自动存储管理 (ASM) | 支持 | 支持 |
数据库内核修补 (without downtime) | 不支持 | 支持在线修补 (Online Patching) |
高级安全性 (如虚拟私有数据库、数据掩码等) | 不支持 | 支持 |
企业管理工具 (如 Oracle Enterprise Manager) | 基本支持 | 支持高级管理功能 |
并行数据加载 | 不支持 | 支持 |
高级集群功能 (如跨实例并行) | 不支持 | 支持 |
另外标准版也不支持调优和诊断,如常用的AWR,ASH,ADDM等,因为这些本身属于收费组件,所以不在对比列表中。标准版可以使用statspack报表来做基本的调优,但是该报表需要DBA自己手动配置。
1.2 Multitenant -多租户
是的 12C之后的多租户是属于收费的组件,以 Oracle 19c 为例如果 不购买 Multitenant 选项,您可以在一个容器数据库 (CDB) 中使用的 Pluggable Databases (PDB) 数量受到限制。具体如下:
如果不购买多租户组件19c最多可以创建3个PDB,其中还包括一个root,一个seed,也就是说只能创建一个用户PDB,如果购买了多租户,那么19C最多可以创建252个PDB。21C和19C一直也是最多252个PDB,23ai官方文档尚未作出说明,但是大概率也会是252个。
1.3 Real Application Clusters 和Real Application Clusters One Node
RAC和RAC one node都属于收费组件,作为oracle 最强的高可用功能,收费也是合理的,其中RAC one node就是无论集群有多少个节点,只有一个节点的实例是open,如果open实例出现故障,其他节点可以无缝衔接,也可以实现高可用功能,关键是价格便宜,不到RAC的1/2。在一些日韩台企业中,为了压缩成本会使用RAC one node。
1.4 Real Application Testing
Oracle Real Application Testing (RAT) 是 Oracle 数据库提供的一项高级功能,用于捕获、回放和分析生产环境中的实际数据库工作负载,以便在测试或升级数据库系统时能够准确评估其对性能和行为的影响。RAT 主要由两个核心组件组成:
Database Replay(数据库回放):
捕获工作负载:Database Replay 可以从生产数据库中捕获真实的数据库工作负载,包括所有的 SQL 语句、事务和用户活动。
回放工作负载:将捕获的工作负载在测试环境中回放,模拟生产环境中的操作。这使得 DBA 能够在升级数据库、调整系统参数或更改硬件配置之前,验证这些更改对性能的影响。
分析和报告:回放后,RAT 生成详细的报告,帮助识别可能影响系统性能或行为的问题。
SQL Performance Analyzer (SPA)(SQL 性能分析器):
SQL 性能比较:SPA 允许 DBA 在进行数据库升级、参数调整或应用补丁前后,比较 SQL 语句的执行性能。
识别性能回归:SPA 可以帮助检测由于数据库变化而导致的 SQL 性能回归,并提供优化建议。
使用场景
数据库升级:在升级数据库(例如从 Oracle 11g 到 19c)时,RAT 可以捕获现有环境的工作负载并在升级后的环境中回放,以确保性能和功能未受影响。
系统迁移:RAT 可用于在硬件迁移或云迁移前,验证新环境下的系统行为。
性能优化:通过识别性能瓶颈,RAT 帮助 DBA 在进行调整和优化时降低风险。
1.5 Active Data Guard
Active Data Guard是Oracle 11g时引入,在之前被称 Data Guard,DG是企业版免费组件,到11g升级为ADG后改为收费组件,两者最大的区别除了一个免费一个收费外,就是DG的备库只能mount,而ADG的备库是可以open read only,这样就可以使用备库来做一些报表查询功能等。
1.6 Partitioning
分区表 这个就不用多介绍了,在大数据量场景中分区表是一个非常好用的功能,提供了更便捷的管理和更好的性能。当然它也是一个收费的组件。
1.7 Advanced Compression
Oracle Advanced Compression 是一种优化数据库存储和性能的功能,主要用于压缩数据,以减少存储需求并提高查询性能。它包括多个子功能:
表压缩 (Table Compression):
OLTP 压缩:为在线事务处理 (OLTP) 工作负载设计,自动压缩表中的数据行,减少存储需求,同时保持较高的插入和更新性能。
压缩表空间:通过在表空间级别启用压缩来减少整个表空间的大小。
压缩索引:压缩索引结构,节省存储空间并提高访问效率。
备份压缩 (Backup Compression):
使用 RMAN (Recovery Manager) 进行备份时,可以压缩备份文件,减少备份存储空间和时间。
网络数据流压缩 (Data Guard Redo Transport Compression):
在 Data Guard 环境中,通过压缩重做日志传输,减少网络带宽使用。
高级行级压缩:针对特定工作负载优化的压缩算法,进一步减少存储需求。
数据泵压缩 (Data Pump Compression):
导入/导出数据时,压缩导出的数据文件,减少磁盘空间使用。
1.8 Oracle Advanced Security
Oracle Advanced Security 是一组旨在增强数据库安全性的功能,特别是在数据加密和用户身份验证方面。它包含以下关键功能:
透明数据加密 (Transparent Data Encryption, TDE):
列加密:对表中的特定列进行加密,保护敏感数据,如信用卡号和个人识别信息 (PII)。
表空间加密:对整个表空间进行加密,确保数据库中所有数据都得到保护。
数据传输加密 (Network Encryption):
SQL*Net 加密:保护数据库客户端与服务器之间的通信,防止网络数据包被拦截和窃听。
SSL/TLS 支持:通过 SSL/TLS 协议实现安全的数据库连接。
数据掩码 (Data Redaction):在应用程序中,动态掩码显示的数据。例如,展示部分信用卡号而隐藏其余部分。
双因素认证:支持多种认证方法,如智能卡、证书、Kerberos 等,增强用户身份验证的安全性。
支持集成:可以与 Oracle Database Vault 和 Oracle Identity Management 等其他安全产品集成,形成全面的数据库安全解决方案。
1.9 Label Security
Oracle Label Security (OLS) 是 Oracle 数据库提供的一项安全性功能,用于实现基于标签(Label)的访问控制。这种控制方法通常用于需要严格数据安全性和分级访问控制的环境,如政府、金融机构或军队等。这个功能使用的比较少 了解不多,这里不做介绍。
1.10 Database Vault
Oracle Database Vault 是 Oracle 数据库中的一项高级安全性功能,旨在增强数据库的内部安全控制。它主要用于防止未经授权的数据库访问,确保即使是拥有高权限的数据库管理员 (DBA) 也无法绕过安全控制直接访问敏感数据。Database Vault 特别适合于需要遵守严格合规性要求的行业,如金融、政府和医疗。这个用的也较少。
1.11 OLAP
没错哦,如果建库是选择OLAP,那么就需要购买OLAP的授权。Oracle OLAP (Online Analytical Processing) 是 Oracle 数据库中的一个高级功能,专门用于支持复杂的数据分析、决策支持和商业智能 (BI) 应用。OLAP 提供了强大的多维数据模型和分析功能,使用户能够快速查询和分析大量数据,以便深入了解业务趋势和进行数据驱动的决策。
1.12 TimesTen Application-Tier Database Cache
这个功能,我也没接触过,给出AI的介绍Oracle TimesTen Application-Tier Database Cache 是一个内存中数据库解决方案,旨在为需要高性能、低延迟数据访问的应用程序提供缓存功能。TimesTen 将数据缓存到应用程序层,使得频繁访问的数据能够以极低的延迟进行读取,从而显著提高应用程序的响应速度。该技术尤其适用于金融服务、电信、电子商务等对实时数据访问有严格要求的行业。
1.13 Database In-Memory
oracle从12.2,开始引入In-Memory功能,旨在通过在内存中存储和处理数据来显著提升数据库性能,特别是在执行分析型查询时。与传统的磁盘存储数据库相比,In-Memory 技术能够加快数据处理速度,减少延迟,并提高查询响应时间。
1.14 Diagnostics Pack和Tuning Pack
Oracle Diagnostics Pack 是 Oracle 提供的一套工具和功能,用于帮助数据库管理员和开发人员监控、诊断和优化 Oracle 数据库的性能。Oracle Tuning Pack 提供了一套全面的工具和功能,用于优化数据库性能和解决性能问题。通过 SQL 调优、性能监控、自动诊断和基准测试,Tuning Pack 帮助数据库管理员和开发人员提高数据库的效率、稳定性和响应速度。它是数据库优化和故障排除的强大工具,适用于需要高性能和可靠性的数据库环境,Diagnostics Pack和Tuning Pack都是 是 Oracle Enterprise Manager 的一部分,旨在提供深度的性能分析、故障排除和数据库健康检查。 常用的就是ADDM,ASH和AWR三个报表:
Automatic Database Diagnostic Monitor (ADDM):
自动诊断:分析数据库的性能数据,自动检测性能瓶颈和问题,生成详细的诊断报告。
建议措施:提供解决性能问题的建议和改进措施,例如调整参数、优化配置等。
Active Session History (ASH):
会话活动监控:实时监控数据库会话活动,记录会话的状态、等待事件、执行计划等信息。
性能分析:通过 ASH 数据进行性能分析,识别会话中的性能瓶颈和问题。
Automatic Workload Repository (AWR):
性能快照:生成定期的性能快照,记录数据库的负载、等待事件、SQL 查询性能等信息。
历史分析:通过 AWR 报告进行历史性能分析,识别性能趋势和潜在的问题
1.15 其他
上面列举了数据库相关的一些收费组件,还有很多中间件,外部安全组件等也都是收费的如OGG(Oracle GoldenGate)
AVDF(Audit Vault and Database Firewall )审计和数据库防火墙
还有很多这里就不一一列举,详细的可以参考上面的list price 文档。
二. Oracle授权的购买方式
常见的方式有三种,一种是按CPU数,一种是按用户数,还有一种就是ULA( Unlimited License Agreement)直接买断
2.1 按CPU数(Processor License)
计算方法为安装数据库主机的cpu个数*物理核心数*该品牌CPU的系数,这个也是Oracle最为常见的购买方式。
举个简单的例子一台IBM P570,配置4颗power6的CPU,已知每颗power6 cpu有4个核心,那么这台机器需要的授权数为:
4个CPU*4个核心+power6的系数1=16
PS:这里有一个BUG,如果是oracle数据库运行在虚拟机上,则按照该虚拟机所在的物理机的CPU来计算,如果是集群无法确定虚拟机所在的物理机,则按照整个集群全部物理机的全部来计算。所以如果是把oracle数据库跑在一个超融合集群里,哪怕只有一台虚拟机跑数据库,也要按整个集群来计算!这个非常不合理,但是这就是oracle的规矩!
各类型cpu的系数参考如下文档
原文档官方下载地址:https://www.oracle.com/contracts/docs/processor-core-factor-table-070634.pdf?download=false&er=221886
2.2 按用户数(Named User Plus)
这种方式则通常被用于用户数确定或者用户数较少的情况。Oracle将每一个访问数据库的用户(无论是自然人还是设备)都视为一个用户,并根据用户数量来计算费用。这种方式更适合于用户数较为固定且数量不多的应用场景。
2.3 买断ULA(Unlimited License Agreement)
根据字面意思就可以理解,在协议有效期内,用户可以无限制的使用Oracle的各种产品和服务,而不必为每个产品或每个用户购买单独的许可证。
三:服务
Oracle的授权都是paper license,购买了授权后会收到Oracle官方发送的welcome letter,PDF文档中有详细的信息,关键为SI号(service id),这个号是未来一年内享受Oracle官方服务的官方识别号,比如MOS下补丁,开SR(service request)等,购买的授权自带一年服务,如果后续想继续享受服务,则需要按订单价格的22%购买延报服务。如果之前的订单比较大,又想继续享受oracle 的官方服务,可以购买一个name user plus的授权,这样可以继续享受一年的服务,而且价格比较低。
如何使用MOS(My Oracle Support)可以参考我的这篇文章
MOS(My Oracle Support)怎么用?Oracle DBA必备技能!_oracle mos-CSDN博客