【Oracle 12c 多租户专题】PDB的内存资源管理

来源:互联网 发布:2017nba数据统计 编辑:程序博客网 时间:2024/06/05 12:02

原文链接:https://oracle-base.com/articles/12c/multitenant-memory-resource-management-for-pdbs-12cr2

在12.2之前的版本,我们根本没有办法控制一个单独的PDB能使用的内存总量。导致的结果就是“一个糟糕的邻居”可能占用大量内存从而导致同一个实例下其他PDB的性能下降。在Oracle 12.2中,你可以控制某单个PDB能使用的内存总量。

如果你的CDB中只有一个PDB,那么你就不需要做这些限制,因为你本来就想让这个单独的PDB用掉实例的所有内存。

PDB内存参数

下列参数都可以在PDB级别进行设置:
* DB_CACHE_SIZE : The minimum buffer cache size for the PDB.
* SHARED_POOL_SIZE : The minimum shared pool size for the PDB.
* PGA_AGGREGATE_LIMIT : The maximum PGA size for the PDB.
* PGA_AGGREGATE_TARGET : The target PGA size for the PDB.
* SGA_MIN_SIZE : The minimum SGA size for the PDB.
* SGA_TARGET : The maximum SGA size for the PDB.

关于哪些值可以设置也有一些限制,官方文档中给出了详细的解释(http://docs.oracle.com/database/122/ADMIN/using-oracle-resource-manager-for-pdbs-with-sql-plus.htm#ADMIN-GUID-A3459A8B-A36A-44D4-9FCD-75CA0E3D3252),总结如下:
* CDB中的NONCDB_COMPATIBLE参数必须设为FALSE
* CDB中的MEMORY_TARGET参数未设置或者为0
* 独立的参数会有不同的最大值,来防止你给一个PDB分配过量的内存。如果你尝试设置一个错误的值将会报错。

设置PDB内存参数

设置PDB内存参数的过程和设置一个普通实例的存储参数并没有什么区别。下面的例子是修改SGA_TARGET参数。

检查CDB的当前设置:

CONN / AS SYSDBASHOW PARAMETER sga_target;NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------sga_target                           big integer 2544MSQL>

检查PDB的当前设置:

CONN / AS SYSDBAALTER SESSION SET CONTAINER=pdb1;SHOW PARAMETER sga_target;NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------sga_target                           big integer 0SQL>

设置PDB的SGA_TARGET参数:

SQL> ALTER SYSTEM SET sga_target=1G SCOPE=BOTH;System altered.SQL> SHOW PARAMETER sga_target;NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------sga_target                           big integer 1GSQL>

当我们尝试给PDB制定一个比所处的CDB更大的SGA时将会报如下的错误:

SQL> ALTER SYSTEM SET sga_target=3G SCOPE=BOTH;ALTER SYSTEM SET sga_target=3G SCOPE=BOTH*ERROR at line 1:ORA-02097: parameter cannot be modified because specified value is invalidORA-56747: invalid value 3221225472 for parameter sga_target; must be smallerthan parameter sga_target of the root containerSQL>

如果你不再想控制这个参数的值,你可以把它设置为0或者reset掉。

ALTER SYSTEM SET sga_target=0 SCOPE=BOTH;ALTER SYSTEM RESET sga_target;

监控PDB的内存使用

Oracle提供了一些视图来监控PDB的资源使用(例如CPU、I/O、内存)。每个视图包含相同的信息,只是保留时间不同。
* VRSRCPDBMETRICPDBVRSRCPDBMETRIC_HISTORY:一个PDB对应61行记录,保留最近60分钟的数据
* DBA_HIST_RSRC_PDB_METRIC:AWR快照,保留时间基于AWR的保留时间

例子如下:

CONN / AS SYSDBASET LINESIZE 150COLUMN pdb_name FORMAT A10COLUMN begin_time FORMAT A26COLUMN end_time FORMAT A26ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS'; ALTER SESSION SET NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF'; -- Last sample per PDB.SELECT r.con_id,       p.pdb_name,       r.begin_time,       r.end_time,       r.sga_bytes,       r.pga_bytes,       r.buffer_cache_bytes,       r.shared_pool_bytesFROM   v$rsrcpdbmetric r,       cdb_pdbs pWHERE  r.con_id = p.con_idORDER BY p.pdb_name;-- Last hours samples for PDB1SELECT r.con_id,       p.pdb_name,       r.begin_time,       r.end_time,       r.sga_bytes,       r.pga_bytes,       r.buffer_cache_bytes,       r.shared_pool_bytesFROM   v$rsrcpdbmetric_history r,       cdb_pdbs pWHERE  r.con_id = p.con_idAND    p.pdb_name = 'PDB1'ORDER BY r.begin_time;-- All AWR snapshot information for PDB1.SELECT r.snap_id,       r.con_id,       p.pdb_name,       r.begin_time,       r.end_time,       r.sga_bytes,       r.pga_bytes,       r.buffer_cache_bytes,       r.shared_pool_bytesFROM   dba_hist_rsrc_pdb_metric r,       cdb_pdbs pWHERE  r.con_id = p.con_idAND    p.pdb_name = 'PDB1'ORDER BY r.begin_time;
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 后背长很多痘痘怎么办 肩膀两边长痘痘怎么办 红酒喝了过敏了怎么办 脚底长湿疹很痒怎么办 怀孕脚痒怎么办小窍门 孕妇烂脚丫和痒怎么办 腿上都是红血丝怎么办 全身皮肤干痒怎么办啊 脸过敏干痒脱皮怎么办 脸过敏了特别干怎么办 太阳晒后皮肤红怎么办 皮肤晒过后很痒怎么办 脸突然又红又痒怎么办 膝盖又红又痒怎么办 脸又红又痒怎么办 皮肤红痒有点热怎么办 浑身起红疙瘩 痒怎么办 身上长红包很痒怎么办 喝酒后身上很痒怎么办 身上长了小红包怎么办 腿长红包很痒怎么办 14岁脸上有雀斑怎么办 皮肤痒起红点或红块怎么办 脸过敏像长痱子怎么办 脸上有淡淡白块怎么办 过敏了脸上会起小疙瘩怎么办 脸过敏出红疙瘩怎么办 脸上长红色的小疙瘩怎么办 脸上都是小米粒痘痘怎么办 小孩身上起风团疙瘩怎么办 脸上长疙瘩很痒怎么办 一个多月宝宝脸上有湿疹怎么办 脸上发红发痒起疙瘩怎么办 脸过敏了怎么办最简单 胸下垂应该怎么办19岁 身上的肉特别松怎么办 才30岁脸部松弛怎么办 脸上的皮肤很松怎么办 面部皮肤干燥起皮刺痛怎么办 脸上的皮肤很粗糙怎么办 脸上又红又痒怎么办