Memory Management using Resource Manager

Oracle数据库资源管理器(资源管理器)现在可以在多租户容器数据库(CDB)中管理可插入数据库(PDBs)之间的内存使用。这一特性有助于在CDB中维护所有PDBs的性能,确保所有的PDBs都不会占用更多资源,从而导致其他PDBs上的资源紧缩。

前提只有满足以下条件,才能控制PDBs的内存使用:
1、在CDB根中,noncdb_compatible初始化参数设置为false。
2、MEMORY_TARGET初始化参数没有设置,或者在CDB根中设置为0(0)。

In 12.2, Resource Manager allows to:

1、限制特定PDB的内存使用。
2、指定为特定PDB保证的内存数量。
3、指定一个特定的PDB可以使用的最大内存数量。

along with other options such as:

指定不同的PDBs应该接收系统资源的不同份额,以便将更多的资源分配给更重要的PDBs。
限制特定PDB的CPU使用。
限制特定PDB可以使用的并行执行服务器的数量。
为不同的PDB使用PDB性能配置文件(详细信息请参阅2171135.1)
限制连接到单个PDB的不同会话的资源使用。
限制特定PDBs生成的I/O。
监控PDBs的资源使用情况。

一、 Managing SGA for PDBs:

容器数据库中各种PDBs的SGA需求将是不同的。如果没有控制SGA使用的机制,活跃的PDB可以消耗SGA空间的大多数,从而导致资源限制给其他PDBs,从而影响它们的性能。

1.从12cR2中,我们可以控制在容器数据库中PDB可以使用的最大SGA,以及需要为PDB分配的最小SGA。
SGA_TARGET参数可用于限制PDB的最大SGA大小。PDB中的SGA_TARGET设置必须小于或等于CDB根中的SGA_TARGET设置。
只有当SGA_TARGET初始化参数设置为CDB根中的非零值时,PDB中的SGA_TARGET和SGA_MIN_SIZE设置才会被强制执行。

alter session set container=PDB1;
ALTER SYSTEM SET SGA_TARGET = 1500M SCOPE = BOTH;
ALTER SYSTEM SET SGA_MIN_SIZE = 500M SCOPE = BOTH;

2.可以使用SGA_MIN_SIZE参数指定PDB的最小SGA大小。
SGA_MIN_SIZE参数确保了PDB的SGA永远不会低于指定的值。

设置SGA_MIN_SIZE(最小保证SGA)参数的指导原则是:
它必须小于或等于CDB根中SGA_TARGET设置的50%。
它必须小于或等于PDB中SGA_TARGET设置的50%。
所有PDBs的SGA_MIN_SIZE设置的总和必须小于或等于CDB根中SGA_TARGET设置的50%。

说明:最佳实践是将所有PDBs的SGA_MIN_SIZE值的总和限制为CDB的SGA大小的50%或更少。

二、 Managing PGA for PDBs

为了控制PDB的PGA使用,可以在PDB级别设置参数PGA_AGGREGATE_TARGET和PGA_AGGREGATE_LIMIT。
PGA_AGGREGATE_TARGET设置是一个目标。因此,Oracle数据库尝试将PGA内存使用限制在目标上,但是使用可以超过设置的次数。要指定对PGA内存使用的硬限制,可以使用PGA_AGGREGATE_LIMIT初始化参数。Oracle数据库确保PGA大小不超过这个限制。如果数据库超过了限制,那么数据库就会中止具有最高可调PGA内存分配的会话的调用。

PGA_AGGREGATE_TARGET参数设置PDB的目标聚合PGA大小。

设置PGA_AGGREGATE_TARGET的指导原则是:
它必须小于或等于在CDB级别上设置的PGA_AGGREGATE_TARGET值。
它必须小于或等于CDB级别上的PGA_AGGREGATE_LIMIT初始化参数值的50%。
它必须小于或等于PDB中的PGA_AGGREGATE_LIMIT值的50%。

设置PGA_AGGREGATE_LIMIT的指导原则是:
它必须小于或等于CDB根中PGA_AGGREGATE_LIMIT的设置。
它必须大于或等于两倍于PDB中PGA_AGGREGATE_TARGET的设置。

alter session set container=PDB1;
ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 700M SCOPE = BOTH;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 300M SCOPE = BOTH;

-- 查看 PDB 的 current SGA 与 PGA 的使用情况
COLUMN PDB_NAME FORMAT A10;
SELECT r.CON_ID, p.PDB_NAME, r.SGA_BYTES/1024/1024 SGA_M, r.PGA_BYTES/1024/1024 PGA_M,
r.BUFFER_CACHE_BYTES/1024/1024 BUFFER_CACHE_M, r.SHARED_POOL_BYTES/1024/1024 SHARED_POOL_M
FROM V$RSRCPDBMETRIC r, CDB_PDBS p WHERE r.CON_ID = p.CON_ID;

CON_ID PDB_NAME SGA_M PGA_M BUFFER_CACHE_M SHARED_POOL_M
---------- ---------- ---------- ---------- -------------- -------------
3 PDB01 34.3150578 7.44008255 28.828125 5.48693275

参考:https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=17jl8o9ue6_4&_afrLoop=530630208048181#aref_section34

oracle12c之 控制pdb中sga 与 pga 内存使用相关推荐

  1. oracle中修改sga和pga

    1.修改sga大小: SQL> alter system set sga_max_size=2560M scope=spfile; System altered. SQL> alter s ...

  2. oracle sga pga mysql_oracle实例内存(SGA和PGA)调整-xin

    一.名词解释 (1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. ( ...

  3. oracle实例的内存(SGA和PGA)调整,优化数据库性能

    一.名词解释 (1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. (2) ...

  4. oracle实例的内存(SGA和PGA)的调整和优化(转载)

    一.名词解释 (1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. (2) ...

  5. oracle实例内存(SGA和PGA)调整

    一.名词解释  (1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. ...

  6. Oracle sga和pga的分配

    今天我们来说下Oracle 中sga和pga的分配: modify sga alter system set sga_target=1024m scope=spfile; alter system s ...

  7. oracle12c多个pdb,Oracle 12c 多租户专题|12cR2中PDB内存资源管理

    沃趣科技  周天鹏 原文链接 在12.2之前的版本,我们根本没有办法控制一个单独的PDB能使用的内存总量.导致的结果就是"一个糟糕的邻居"可能占用大量内存从而导致同一个实例下其他P ...

  8. oracle中的sga和pga

    oracle中的sga包含了几个主要的部分 1.shared pool 共享池 2.database buffer cache 数据库高速缓冲区 3.redo log buffers 重做日志缓冲区 ...

  9. oracle中pga指什么,oracle学习SGA跟PGA理解

    SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:数据库缓冲区.日志缓冲区.共享池,还可能包含:大池,JAVA ...

最新文章

  1. 原创 | R的基础及进阶数据可视化功能包介绍
  2. $each $position $sort $slice
  3. python多图拼接并利用resnet提取特征
  4. html5和前端精要(1)-架构与基础(1)
  5. 提升Transformer效率又有新招?基于矩阵分解的线性化Attention方案
  6. KVM虚拟机PCI设备直通
  7. C#(64位系统) 解决MySQLDriverCS未能加载文件或程序集,或它的某一个依赖项
  8. 重新配置oralce dbconsole
  9. mysql oracle replay_Oracle 数据库重放(Database Replay)功能演示
  10. 关于 HenCoder
  11. Arduino 下载https://downloads.arduino.cc/packages/package_index.json时出错
  12. 优缺点 快速扫描 硬盘监测_用硬盘检测工具检测硬盘超实用的技巧!
  13. 前端数据可视化插件(四)关系图
  14. pixhawk启动脚本分析
  15. [Err] 1418 - This function has none of DETERMINIST
  16. 老旗舰华为能用上鸿蒙吗,千元机也能用鸿蒙!曝荣耀 9X 手机年内全部升级鸿蒙系统...
  17. 信号与槽是如何实现的_Nature | 破解Wnt信号高效远距离传递之谜
  18. 新一代光学工程仿真软件FRED MPC介绍
  19. 文献阅读 | Tracing the ancestry of modern bread wheats
  20. 写出优雅性能的JAVA程序必须遵守的35个原则

热门文章

  1. mysql数据库导入导出_MySQL数据库导入导出详解
  2. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作
  3. 简易的素描图片转换流程与实现
  4. 【TensorFlow-windows】keras接口学习——线性回归与简单的分类
  5. Kullback–Leibler divergence(相对熵,KL距离,KL散度)
  6. Django,ajax实现表格增删查改,Django内置分页功能。
  7. elastic学习笔记
  8. Spring Boot 扩展点应用之工厂加载机制
  9. [转]MySQL日志——Undo | Redo
  10. 58.贪心算法练习:  最小新整数