oracle12c多个pdb,Oracle 12c 多租户专题|12cR2中PDB内存资源管理
沃趣科技 周天鹏
原文链接
在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.
关于哪些值可以设置也有一些限制,官方文档中给出了详细的解释(),总结如下:
CDB中的NONCDB_COMPATIBLE参数必须设为FALSE
CDB中的MEMORY_TARGET参数未设置或者为0
独立的参数会有不同的最大值,来防止你给一个PDB分配过量的内存。如果你尝试设置一个错误的值将会报错。
设置PDB内存参数
设置PDB内存参数的过程和设置一个普通实例的存储参数并没有什么区别。下面的例子是修改SGA_TARGET参数。
检查CDB的当前设置:
CONN / AS SYSDBA
SHOW PARAMETER sga_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 2544M
SQL>
检查PDB的当前设置:
CONN / AS SYSDBA
ALTER SESSION SET CONTAINER=pdb1;
SHOW PARAMETER sga_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
SQL>
设置PDB的SGA_TARGET参数:
SQL> ALTERSYSTEMSET sga_target=1G SCOPE=BOTH;Systemaltered.
SQL> SHOW PARAMETER sga_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 1G
SQL>
当我们尝试给PDB制定一个比所处的CDB更大的SGA时将会报如下的错误:
SQL> ALTERSYSTEMSET sga_target=3G SCOPE=BOTH;
ALTERSYSTEMSET sga_target=3G SCOPE=BOTH
*ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-56747: invalid value 3221225472 for parameter sga_target; must be smaller
than parameter sga_target of the root container
SQL>
如果你不再想控制这个参数的值,你可以把它设置为0或者reset掉。
ALTERSYSTEMSET sga_target=0 SCOPE=BOTH;
ALTERSYSTEMRESET sga_target;
监控PDB的内存使用
Oracle提供了一些视图来监控PDB的资源使用(例如CPU、I/O、内存)。每个视图包含相同的信息,只是保留时间不同。
V$RSRCPDBMETRIC:一个PDB对应一条记录,只保留最近一分钟的数据
V$RSRCPDBMETRIC_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;
oracle12c多个pdb,Oracle 12c 多租户专题|12cR2中PDB内存资源管理相关推荐
- abort oracle,Oracle 12c 多租户:PDB 支持 abort 关闭么?
Oracle 12c 多租户:PDB 支持 abort 关闭么? 在Oracle 12c的考试中,有这样一道题目: When executing shutdown abort in a pluggab ...
- oracle 12c tns,oracle 12c 怎样配置TNS来访问PDB
oracle 12c 怎样配置TNS来访问PDB 淆癏宙 | 浏览 147 次 我有更好的答案 发布于2016-06-27 16:18 最佳答案 1.配置监听 首先要明确,所有的PDB都使用1个监听, ...
- Oracle 12c、18c、19c中的MGMTDB(下)
Oracle 12c.18c.19c中的MGMTDB(下) 上一篇参考: http://blog.itpub.net/26736162/viewspace-2132763/ 在12.1.0.1 中, ...
- Oracle 12c、18c、19c中的MGMTDB、GIMR
Oracle 12c.18c.19c中的MGMTDB.GIMR 文档内容 用途 问题和答案 什么是管理资料库? 管理资料库是用来干什么的? 管理资料库的数据文件放在哪里? ...
- oracle12c关闭pdb,oracle 12c pdb启动与关闭
在oracle 12c pdb数据库默认是不起来的,下面介绍一下pdb起关的一些常用命令. 默认状态: SQL> show pdbs CON_ID CON_NAME OPEN MODE REST ...
- oracle 12c多租户下的日常操作变化
Oracle 12c创建用户时出现"ORA-65096: invalid common user or role name"的错误 在oracle中,引入了多租户概念,以前是一个i ...
- oracle中pdb,Oracle 12C新特性-CDB和PDB 详解
最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...
- oracle12c的show指令,Oracle 12c sqlplus 命令 --- show 说明
Show 命令是sqlplus 中使用率非常高的一个命令,在Oracle 12c中,show命令得到了进一步的增强,这里的增强,主要是争对Oracle 12c 数据库的特性. 语法如下: SHO[W] ...
- oracle12c数据库基础教程,Oracle 12C 数据库基础教程
章 Oracle 12c简介 1 1.1 Oracle 12c简介 1 1.2 Oracle 12c产品系列 2 1.3 Oracle 12c新特性 2 1.3.1 插接式数据库PDB 2 1.3.2 ...
最新文章
- 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
- [patl2-018]多项式A除以B
- three.js写的游戏
- ARMV4,ARMV4T,ARMV4I的意义
- 编程题【Math类】计算类
- Git 2.19 对Diff、Branch和Grep等做了改进
- PTA10、统计字符个数 (10 分)
- SAP License:PS模块WBS预算更改
- mysql客户端攻击_HackerNews
- Windows Terminal 窗口/控制台切换快捷键总结
- Dalvik 与 ART 区别
- matlab绘图坐标显示不全的解决方法
- CMOS工作原理和概念
- 网页视频地址批量抓取工具(原创)
- 期末作业代码网页设计代码——花店购物网站源码(27页) 学生动花店购物页设计模板下载 植物大学生HTML网页制作作品 简单网页设计成品 dreamweaver学生网站模板
- Linux 安装 菜鸟教程,Linux安装Nginx(菜鸟教程简单易懂)
- 电子技术基础——基本共射放大电路
- vue移动端复杂表格表头,固定表头与固定第一列
- 用python进行因式分解_Python实现的质因式分解算法示例
- 网关地址和网关IP是什么