我们知道,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资源分配如下:

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);

内存资源规划配置


内存资源规划

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

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

内存资源配置

根据内存资源规划,进行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;‬

会话连接数规划配置


会话连接数规划

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

会话连接数配置

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

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

存储IO 规划配置


Exadata I/O 规划配置

  • Exadata I/O规划

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

注: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组,也可以是不同的独立存储。此方式控制效果最好,但规划设计较复杂,成本较高;

存储空间规划配置


存储空间规划

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

注: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演示

编辑:萧宇

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

  1. 12c oracle 激活_Oracle 12c企业版数据库个人安装使用需要产品密钥吗???

    2016-07-21 回答 1.准备 1.1 下载 oracle 12c 安装程序 1.2 解压下载好的两个压缩文件 将两个压缩包解压到同一个目录下,即"database",然后单 ...

  2. Zabbix监控Oracle 连接数

    监控Oracle 连接数 使用python脚本编写脚本,监控oracle连接数:连接Oracle需要安装cx_Oracle模块,安装完成后检查是否正常,没有任何信息返回即正常: python -c & ...

  3. oracle 空闲连接数_oracle数据库空闲连接

    RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available 在使用rman duplicate复制standb ...

  4. pdb连接数_Oracle 19c 之多租户 PDB 连接与访问(三)

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  5. oracle数据库资源管理器,ORACLE资源管理器概念及试验(OCM复习)

    1.概念 使用数据库资源管理对系统进行管理,包括使用资源计划.资源使用者组和资源计划指令.包括资源使用者组.资源计划.资源计划指令 2.建立一个资源计划过程 授予admin权限 execute dbm ...

  6. oracle可以创建多个数据库实例吗_oracle 一个实例下可以建多个数据库么?

    oracle 如何在一个数据库创建多个实例 首先"创建数据库的时候起不同的名字"不是一个数据库对应多个实例,概念不清~ 如果就你的问题来看,你可以查阅关于Oracle rac 的信 ...

  7. oracle rac应急_oracle rac 多数据库

    Oracle系列:Oracle RAC集群体系结构 一. Oracle集群体系结构 Oracle RAC,全称是Oracle Real Application Cluster,即真正的应用集群,是or ...

  8. dbPaaS实战:租户和资源管理

    上一篇介绍了云和恩墨的数据库云管理平台zCloud,能够帮助客户建设私有云环境下的dbPaaS平台,本篇将从实际问题出发,通过介绍功能和案例来理解zCloud的租户和资源管理能力. 传统的IT架构,底 ...

  9. oracle dmp 导入 mysql_oracle新数据库导入dmp文件

    Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到 ...

最新文章

  1. 疫苗有效,先抛股票,今日官宣94.5%结果的Moderna高管早有信心
  2. dataframe 筛选_使用pandas筛选出指定列值所对应的行
  3. 福州大学计算机组成原理试题,2016年福州大学计算机专业基础C复试之计算机组成原理复试笔试最后押题五套卷...
  4. 网易云信即时通讯推送保障及网络优化详解(三):如何在弱网环境下优化大数据传输
  5. 给程序员们的工资报价提醒
  6. treemap怎么保证有序_你对多线程熟悉吗,谈谈线程安全中的原子性,有序性和可见性?...
  7. python入门到应用实践_Python 3.x入门到应用实践
  8. CmsEasy可视化编辑商城系统源码
  9. 毕业设计之 --- 基于Java web的动漫论坛设计与实现
  10. 如何使用DDMS Heap查看Android应用内存情况
  11. php5.6安装php-gd,centos73下php5.6安装GD库
  12. Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
  13. 堆积木——GBQ4.0设置“统一设置安装费用”中的“高层建筑增加费”
  14. c语言输出打印字符串数组,C语言字符串输出
  15. 用大白菜装centos7_大白菜安装centos7 踩坑记
  16. 无法对多重选择区域执行此操作
  17. 自定义view实现涂鸦(画板)功能
  18. excel服务器项目管理软件,用excel做项目管理系统
  19. CST shape tools
  20. 华为od机考真题-特殊计算

热门文章

  1. Python批量下载电子邮件附件并汇总合并Excel文件
  2. Python+django建站入门篇:Hello world
  3. Python中lambda表达式的常见用法
  4. Linux 进程间通信(IPC)---大总结
  5. java 取pdf 文本域_使用PDFBox获取文本行的位置
  6. JVM Class 类文件结构 (系列号2)
  7. java 单链表反转_Java实现单链表翻转详解
  8. python怎么转到下一行_请教:怎样用python读取文件之后,处理在下一行、空行、和*星星?...
  9. pyqt5中控件缩放功能_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...
  10. mysql外键实例学生成绩_mysql 外键(foreign key)的详解和实例