• oracle12c之二 控制PDB中SGA 与 PGA 内存使用


    oracle12c之 控制pdb中sga 与 pga 内存使用

    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;
     
     
     
     
     
    3
     
     
     
     
    1
    alter session set container=PDB1;
    2
    ALTER SYSTEM SET SGA_TARGET = 1500M SCOPE = BOTH;
    3
    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_TARGET = 300M SCOPE = BOTH;
    ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 700M SCOPE = BOTH;
     
     
     
     
     
    3
     
     
     
     
    1
    alter session set container=PDB1;
    2
    ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 300M SCOPE = BOTH;
    3
    ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 700M 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     4.3150578  7.44008255	 28.828125     5.48693275
     
     
     
     
     
    x
     
     
     
     
     
    1
    COLUMN PDB_NAME FORMAT A10;
    2
    SELECT r.CON_ID, p.PDB_NAME, r.SGA_BYTES/1024/1024 SGA_M, r.PGA_BYTES/1024/1024 PGA_M, 
    3
    r.BUFFER_CACHE_BYTES/1024/1024 BUFFER_CACHE_M, r.SHARED_POOL_BYTES/1024/1024 SHARED_POOL_M 
    4
    FROM V$RSRCPDBMETRIC r, CDB_PDBS p WHERE r.CON_ID = p.CON_ID;
    5
    
    
    6
    CON_ID     PDB_NAME  SGA_M      PGA_M      BUFFER_CACHE_M  SHARED_POOL_M
    7
    ---------- -------------------- ---------- -------------- -------------
    8
    3          PDB01     4.3150578  7.44008255 28.828125     5.48693275
     
     
     
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





  • 相关阅读:
    转《编程之美——微软技术面试心得》勘误表
    第一次 学习使用 智能指针
    test _todel
    (转 todo阅读)Android 官方博客 Android应用程序的内存分析(翻译)
    msdn snmp trap 研究可否 重入 转《Multiple Trap Registrations》
    wpbars在博客园开博客了
    创业失败的10个教训总结
    winform 的一种登录方法。
    快速建立Subversion
    (转)SQL Server 按某一字段分组取最大(小)值所在行的数据
  • 原文地址:https://www.cnblogs.com/cqdba/p/c0d1dedd723ad45c01cf20c913196b35.html
Copyright © 2020-2023  润新知