oracle 连接数_Oracle多租户数据库资源管理,就这么简单

我们知道,Oracle多租户选件是数据库原生支持的云管理能力,而不是像其它厂商采用云管理平台来实现多租户的功能,使得Oracle多租户选件可实现更高的资源利用率,更好的性能,更强的稳定性,和更简便的运维,从而广受用户喜爱。

用户进行Oracle多租户数据库规划时,特别是需要对多个关键数据库整合时,常常对多租户数据库的资源管控有些疑惑,甚至有些担心。多个关键数据库整合在一个硬件平台上,万一出现资源竞争,是否会影响所有运行在此平台上的数据库,从而影响关键的SLA指标。

Oracle在多租户资源管控上面提供最全面最完整的解决方案,可以帮助用户打消此类担心。下面会主要从多租户环境下资源管理的考量因素及示例,来介绍Oracle多租户数据库所提供的资源管控能力。

多租户环境资源管理考量


本文以CPU资源规划为抓手来进行整体资源规划考量,主要对数据库运行的关键资源,如CPU、内存、IO、存储空间等来进行规划设计,以期在满足应用运行要求,保障应用性能稳定的前提下,最大化资源利用。根据最佳实践,多租户环境下资源的规划设计,主要分三步进行:

第1步,应用数据库资源调研与评估,主要考量因素如下:

▪ 应用数据库的运行特性及CPU、内存、存储IO资源配置与使用情况,如高峰,平峰,低锋时段资源使用率等;

▪ 应用数据库表空间大小,包括当前数据表空间大小和临时表空间大小,及近一年增长趋势;

▪ 应用数据库连接数,包括最大会话连接数,活动会话连接数等;

▪ 应用数据库的关键性,及对性能和SLA的要求;

第2步,确定数据库云多租户环境的资源配置及用途,主要考量因素如下:

▪ 确定数据库云多租户环境的CPU、内存、存储IO资源配置;

▪ 确定数据库云多租户环境的存储配置及IO能力;

▪ 确定数据库云多租户环境可承载的会话连接数;

▪ 确定数据库云多租户环境架构及SLA特性;

▪ 确定数据库云多租户环境用途,如仅整合当前应用数据库,或者除整合当前应用数据库外,还需考虑资源的灵活扩缩,新需求的PDB快速供应等;

第3步,数据库云多租户环境资源规划设计,主要方案和应用场景如下:

▪方案1,通过应用错峰的原则,来选择哪些应用数据库通过PDB方式整合在一起,本身在多租户层面不加控制,采用默认资源共享的方式,从应用运行特性上来降低CPU资源竞争。此方案适应于对应用特性非常了解,且应用负载波动周期稳定,能准确度量的,或者资源非常充足,应用关键性不高的场景。

▪方案2,通过需整合数据库CPU加总数,等于多租户环境CPU数量的计算规则进行整合,采用PDB sizing factor来进行资源管控;此方案整合密度为1,适应于关键的数据库应用,需要对性能具有极高的可预测性、稳定性的场景。

▪方案3,通过需整合数据库CPU加总数,等于多租户环境CPU数量乘以整合密度数值的方式进行整合,采用PDB sizing factor来进行资源管控;此方案整合密度大于1,存在资源超额分配的情况,适应于提供低成本的云服务,并且预期许多pdb将在大部分时间处于空闲状态的应用场景。

多租户环境资源规划设计及配置示例


下面以方案二的场景,及常见的整合当前应用数据库的多租户用途,来进行资源规划设计配置示例。如需更多场景的设计及配置方式,可参阅文末参考资料了解。

场景假设


• 数据库云多租户环境用途为仅整合当前应用数据库;

• 数据库云多租户环境CPU数量,即CDB CPU_COUNT为64;

• 数据库云多租户环境内存大小为512G;

• 应用X评估当前所需CPU数量为32,数据量为2T,每年增长量为300G;

• 应用Y评估当前所需CPU数量为16,数据量为1T,每年增长量为150G;

• 应用Z评估当前所需CPU数量为16,数据量为800G,每年增长量为100G;

PDB sizing factor计算公式


PDB的资源分配是通过CDB资源管理器计划和PDB参数指定的,通过这些来设置控制各种资源,包括CPU、I/O、内存、会话、并行执行等。

本文采用一种简单的方法,从PDB的CPU_COUNT来作为各租户资源分配比例的关键参考,为此,我们定义了“PDB sizing factor”,它指定了PDB配置的CDB资源的百分比。

PDB sizing factor公式如下:

PDB sizing factor = PDB's CPU_COUNT / CDB's CPU_COUNT

各租户PDB sizing factor计算如下:

应用X PDB sizing factor = 32 / 64 = 50%

应用Y PDB sizing factor = 16 / 64 = 25%

应用Z PDB sizing factor = 16 / 64 = 25%

CPU 资源规划配置


CPU 资源规划

各租户CPU资源分配如下:

a1aee75c8e362db73245a262f4f7069f.png

CPU 资源配置

1. 设置PDB cpu_count值,启用instance caging,以应用X为例

alter session set container = PDB-X;alter system set cpu_count = 32;alter session set container = CDB$ROOT;alter system set resource_manager_plan = ' DEFAULT_CDB_PLAN';

2. 设置每个PDB对于CPU调度的份额与限制(数据库版本在18.1及以上无需设置)

alter session set container = CDB$ROOT;begin  dbms_resource_manager.create_pending_area;  dbms_resource_manager.create_cdb_plan_directive(plan => 'DEFAULT_CDB_PLAN', pluggable_database => 'PDB-X', shares => 32, utilization_limit => 50);  dbms_resource_manager.create_cdb_plan_directive(plan => 'DEFAULT_CDB_PLAN', pluggable_database => 'PDB-Y', shares => 16, utilization_limit => 25);  dbms_resource_manager.create_cdb_plan_directive(plan => 'DEFAULT_CDB_PLAN', pluggable_database => 'PDB-Z', shares => 16, utilization_limit => 25);  dbms_resource_manager.submit_pending_area;end;/

3. 验证PDB CPU资源配置是否生效

alter session set container = PDB-X;--cpu_count值应为32show parameter cpu_count;--instance_caging为on则开启select name, cpu_managed, con_id, instance_caging from v$rsrc_plan where is_top_plan = 'TRUE';alter session set container = CDB$ROOT;--PDB对应的shares、utilization_limit值与设置一致,则正常生效select pluggable_database, shares, utilization_limit from dba_cdb_rsrc_plan_directives where plan = (select name from v$rsrc_plan where is_top_plan = 'TRUE' and con_id = 1);

内存资源规划配置


内存资源规划

各租户内存资源分配如下:

747d7aab4d43b302ee672e53a86904af.png

如果PDB非常关键,可以考虑设置如下参数,通常情况下不必设置:

b106b20ba8f0145ecc1c0e78b568c3b0.png

内存资源配置

根据内存资源规划,进行PDB内存资源配置如下,以应用X为例:

alter session set container = PDB-X;alter system set sga_target = ‭131072‬M;‬alter system set ‭pga_aggregate_target = ‭‭65536‬‬M;‬‬‬alter system set ‭pga_aggregate_limit = ‭131072‬M;‬‬alter system set sga_min_size = ‭ ‭32768‬M;‬‬alter system set db_cache_size = ‭16384M;‬alter system set shared_pool_size = ‭16384M;‬alter system set inmemory_size = ‭ ‭ ‭49152‬‬M;‬‬‬alter system set parallel_max_servers = ‭640;‬alter system set parallel_servers_target = ‭256;‬

会话连接数规划配置


会话连接数规划

各租户会员连接数分配如下:

a300f4f3b06f1b04516abfeb2c8038bb.png

会话连接数配置

根据内存资源规划,进行PDB内存资源配置如下,以应用X为例:

alter session set container = PDB-X;alter system set sessions = ‭1000;‬

存储IO 规划配置


Exadata I/O 规划配置

  • Exadata I/O规划

各租户I/O资源分配如下:

fe28589b02ce5b9de80bbb65276edd5b.png

注:32可据实灵活取值,计算出的值能取整即可,单个PDB份额值不能超过32。

  • Exadata I/O配置

根据Exadata I/O资源规划,进行PDB I/O资源配置如下:

alter iormplan objective=auto;alter iormplan dbplan=((name=pdb-x, share=16),(name=pdb-y, share=8),(name=pdb-z, share=8));--查看I/O资源配置是否生效list iormplan detail;

注:在存储服务器通过CellCLI命令

非Exadata I/O 规划配置

非Exadata环境,由于使用的存储不是智能存储,也就是存储无法识别IO调用属于哪个PDB或者哪个数据库用户发起,从而不能完全从存储层作细粒度控制。因此,只能通过整体基础架构的规划设计,来尽量缓解。常用非Exadata I/O规划配置方式如下:

▪方式1,通过详尽评估整合前应用IO消耗情况,并加总得出整合后IO最大需求,在配置多租户存储时,所配存储IO能力大于IO最大需求,并加上一定余量,来确保整合后的多租户环境IO能力大于所需,来降低IO竞争。但此种方式由于准确评估比较难,也无法保证异常突发IO的影响,只能尽量缓解,存在一定的风险;

▪方式2,通过用户Profile的LOGICAL_READS_PER_SESSION、LOGICAL_READS_PER_CALL,或者dbms_resource_manager的SWITCH_IO_REQS、SWITCH_IO_MEGABYTES来控制IO消耗量,但由于超过限制会中断调用或者会话连接,因此,通常较少使用此方式,如需使用,应特别注意是否应用能接受;

▪ 方式3,通过PDB表空间对应不同存储的方式来作IO控制,可以是同一存储不同RAID组,也可以是不同的独立存储。此方式控制效果最好,但规划设计较复杂,成本较高;

存储空间规划配置


存储空间规划

各租户存储空间分配如下:

0c5546e8b8614fefcf34d7685c9d0159.png

注:PDB Value计算中2为按两年增量计算,0.8为表空间使用率80%,可据实调整。

存储空间配置

根据存储空间规划,进行PDB存储资源配置如下:

alter session set container = CDB$ROOT;alter pluggable database PDB-X storage (maxsize 3310G);alter pluggable database PDB-Y storage (maxsize 1655G);alter pluggable database PDB-Z storage (maxsize 1250G);--PDB对应的max_size值与设置一致,则正常生效select name, max_size from v$pdbs;

参考资料:

  • How to Provision PDBs, based on CPU_COUNT (Doc ID 2326708.1)

  • Configuring and Monitoring Instance Caging (Doc ID 1362445.1)

  • Scripts and Tips for Monitoring CPU Resource Manager (Doc ID 1338988.1)

  • Master Note: Overview of Oracle Resource Manager and DBMS_RESOURCE_MANAGER (Doc ID 1484302.1)

  • Configuring Exadata I/O Resource Manager for Common Scenarios (Doc ID 1363188.1)

  • How to set and check the max size of PLUGGABLE DATABASE STORAGE (Doc ID 2166477.1)

  • https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/database-resource-management-and-task-scheduling.html#GUID-50F0AB88-007D-4A11-BCBC-78AE0367F8FD

  • https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/overview-of-pdb-creation.html#GUID-59F42929-7237-4371-8934-921B46DB6F31

扫描下方QR Code即刻预约ADW演示

07fa1d6113fdd1d931125cf859aef51f.png

编辑:萧宇

1d4c4580afd58a3604e8c48117c15628.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 EXADATA EXADATA EXADATA EXADATA EXADATA EXADATA EXADATA 资源管理计划 资源管理计划 资源管理计划 资源管理计划 ................................ ................................ ................................ .................. 1 1库内资源管理 库内资源管理 库内资源管理 库内资源管理 DBRM DBRM ................................ ................................ ................................ ............ 3 1.11.1 资源计划 资源计划 ................................ ................................ ................................ ..................... 4 1.21.2 配置资源计划 配置资源计划 配置资源计划 ................................ ................................ ................................ ............. 4 1.3 1.3 测试资源计划 测试资源计划 测试资源计划 ................................ ................................ ................................ ............ 7 1.41.4 资源计划执行结果 资源计划执行结果 资源计划执行结果 资源计划执行结果 ................................ ................................ ................................ ..... 9 2实例隔离 实例隔离 实例隔离 INSTANCE CAGING INSTANCE CAGINGINSTANCE CAGINGINSTANCE CAGING INSTANCE CAGING INSTANCE CAGINGINSTANCE CAGINGINSTANCE CAGING ................................ ................................ .............................. 10 2.1 2.1 配置 IN STANCE CAGINGSTANCE CAGINGSTANCE CAGING STANCE CAGING STANCE CAGING STANCE CAGINGSTANCE CAGINGSTANCE CAGINGSTANCE CAGING ................................ ................................ ........................... 10 2.2 2.2 测试 INSTANCE CAGING INSTANCE CAGINGINSTANCE CAGING INSTANCE CAGING INSTANCE CAGING INSTANCE CAGINGINSTANCE CAGINGINSTANCE CAGINGINSTANCE CAGING ................................ ................................ ........................... 10 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 2.3 INSTANCE CAGING 测试结果 测试结果 测试结果 ................................ ................................ ................... 12 3 EXADATA IORM3 EXADATA IORM 3 EXADATA IORM3 EXADATA IORM3 EXADATA IORM3 EXADATA IORM3 EXADATA IORM3 EXADATA IORM3 EXADATA IORM 3 EXADATA IORM ................................ ................................ ................................ ..................... 12 3.1 3.1 配置 EXADATA IORM EXADATA IORM EXADATA IORMEXADATA IORMEXADATA IORM EXADATA IORMEXADATA IORM EXADATA IORM ................................ ................................ ............................. 15 3.2 3.2 测试 EX ADATA IORM ADATA IORMADATA IORMADATA IORM ADATA IORMADATA IORM ADATA IORM ................................ ................................ ............................. 16 3.3 EXADATA IORM3.3 EXADATA IORM 3.3 EXADATA IORM 3.3 EXADATA IORM 3.3 EXADATA IORM3.3 EXADATA IORM3.3 EXADATA IORM 3.3 EXADATA IORM3.3 EXADATA IORM 3.3 EXADATA IORM 测试结果 测试结果 (未测试 未测试 )................................ ................................ ........ 19 3 常用查询视图 常用查询视图 常用查询视图 常用查询视图 ................................ ................................ ................................ ..................... 21 3.1 DBRM3.1 DBRM 3.1 DBRM 3.1 DBRM ................................ ................................ ................................ ........................ 21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值