Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理

Posted 听说睡觉会变白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理相关的知识,希望对你有一定的参考价值。

Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理
在以前的版本中,没有简单的方法来控制单个PDB使用的磁盘I / O量。 因此,某个PDB可能耗尽大量磁盘I / O,并影响同一实例中的其他PDB的性能。 Oracle 12c R2可以控制PDB使用的磁盘I / O量,是多PDB相处更融洽。
1 I/O参数介绍
下面的一些参数可以在PDB或者CDB级别设置已达到限制PDB I/O的目的。
MAX IOPS:PDB的每秒最大I / O操作数。 默认值为“0”。 不推荐使用小于100 IOPS的值。
MAX_MBPS:PDB的每秒I / O的最大兆字节数。 默认值为“0”。 不推荐使用小于25 MBPS的值。
一些需要注意的地方:
·参数是独立的。 您可以使用none,one或both。
·当参数设置在CDB级别时,它们成为所有PDB使用的默认值。
·当它们设置在PDB级别时,它们覆盖任何默认值。
·如果在CDB和PDB级别的值为“0”,则没有I / O限制。
·实例的正常功能所必需的关键I / O不受限制,但只要涉及极限,就会计入总I / O,因此I / O可能暂时超过限制。
·这些参数仅适用于多租户架构。
·此功能不适用于Exadata。
·限制将导致名为I/O rate limit的等待事件。
2 设置I/O参数
下面是在CDB级别设置MAX_IOPS 和MAX_MBPS参数,值是对所有PDB。
--设置参数值

SQL>ALTER SYSTEM SET max_iops=100 SCOPE=BOTH;
SQL>ALTER SYSTEM SET max_mbps=400 SCOPE=BOTH;


--移除参数值

SQL>ALTER SYSTEM SET max_iops=0 SCOPE=BOTH;
SQL>ALTER SYSTEM SET max_mbps=0 SCOPE=BOTH;


下面是PDB级别设置这两个参数:

SQL>ALTER SESSION SET CONTAINER = pdb1;


-- 设置指定PDB参数值

SQL>ALTER SYSTEM SET max_iops=100 SCOPE=BOTH;
SQL>ALTER SYSTEM SET max_mbps=400 SCOPE=BOTH;


-- 移除指定PDB参数值

SQL>ALTER SYSTEM SET max_iops=0 SCOPE=BOTH;
SQL>ALTER SYSTEM SET max_mbps=0 SCOPE=BOTH;


3 监控PDB的I/O使用情况
Oracle现在提供视图去监控PDB的资源使用(CPU, I/O, parallel execution, memory)
如:
·V $ RSRCPDBMETRIC:每个PDB一行,保存1分钟样本的最后一个。
·V $ RSRCPDBMETRIC_HISTORY:每个PDB有61行,从V $ RSRCPDBMETRIC视图保存最后60分钟的样本。
·DBA_HIST_RSRC_PDB_METRIC:AWR快照,基于AWR保留期保留。
下面是具体的SQL:

SQL>SET LINESIZE 180
SQL>COLUMN pdb_name FORMAT A10
SQL>COLUMN begin_time FORMAT A26
SQL>COLUMN end_time FORMAT A26
SQL>ALTER SESSION SET NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS;
SQL>ALTER SESSION SET NLS_TIMESTAMP_FORMAT=DD-MON-YYYY HH24:MI:SS.FF;


-- 每个PDB最后样本

SQL>SELECT r.con_id,
       p.pdb_name,
       r.begin_time,
       r.end_time,
       r.iops,
       r.iombps,
       r.iops_throttle_exempt,
       r.iombps_throttle_exempt,
       r.avg_io_throttle
FROM v$rsrcpdbmetric r,
       cdb_pdbs p
WHERE r.con_id = p.con_id
ORDER BY p.pdb_name;


-- PDB1的最后几个小时的样本

SQL>SELECT r.con_id,
       p.pdb_name,
       r.begin_time,
       r.end_time,
       r.iops,
       r.iombps,
       r.iops_throttle_exempt,
       r.iombps_throttle_exempt,
       r.avg_io_throttle
FROM v$rsrcpdbmetric_history r,
       cdb_pdbs p
WHERE r.con_id = p.con_id
AND p.pdb_name = PDB1
ORDER BY r.begin_time;


-- PDB1的所有AWR快照的信息

SQL>SELECT r.snap_id,
       r.con_id,
       p.pdb_name,
       r.begin_time,
       r.end_time,
       r.iops,
       r.iombps,
       r.iops_throttle_exempt,
       r.iombps_throttle_exempt,
       r.avg_io_throttle
FROM dba_hist_rsrc_pdb_metric r,
       cdb_pdbs p
WHERE r.con_id = p.con_id
AND p.pdb_name = PDB1
ORDER BY r.begin_time;

 
































以上是关于Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理的主要内容,如果未能解决你的问题,请参考以下文章

浅谈oracle 12C的新特性-CDB和PDB

浅谈oracle 12C的新特性-CDB和PDB

Oracle12C新特性——CDB与PDB(待补充)

oracle12c的CDB与PDB

Oracle 12C 新特性 - “可插拔数据库”功能

Oracle 12C 新特性之 db默认字符集AL32UTF8PDB支持不同字符集