沃趣科技  周天鹏

原文链接

在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内存资源管理相关推荐

  1. abort oracle,Oracle 12c 多租户:PDB 支持 abort 关闭么?

    Oracle 12c 多租户:PDB 支持 abort 关闭么? 在Oracle 12c的考试中,有这样一道题目: When executing shutdown abort in a pluggab ...

  2. oracle 12c tns,oracle 12c 怎样配置TNS来访问PDB

    oracle 12c 怎样配置TNS来访问PDB 淆癏宙 | 浏览 147 次 我有更好的答案 发布于2016-06-27 16:18 最佳答案 1.配置监听 首先要明确,所有的PDB都使用1个监听, ...

  3. Oracle 12c、18c、19c中的MGMTDB(下)

    Oracle 12c.18c.19c中的MGMTDB(下) 上一篇参考: http://blog.itpub.net/26736162/viewspace-2132763/ 在12.1.0.1 中, ...

  4. Oracle 12c、18c、19c中的MGMTDB、GIMR

    Oracle 12c.18c.19c中的MGMTDB.GIMR 文档内容   用途   问题和答案       什么是管理资料库?   管理资料库是用来干什么的?   管理资料库的数据文件放在哪里? ...

  5. oracle12c关闭pdb,oracle 12c pdb启动与关闭

    在oracle 12c pdb数据库默认是不起来的,下面介绍一下pdb起关的一些常用命令. 默认状态: SQL> show pdbs CON_ID CON_NAME OPEN MODE REST ...

  6. oracle 12c多租户下的日常操作变化

    Oracle 12c创建用户时出现"ORA-65096: invalid common user or role name"的错误 在oracle中,引入了多租户概念,以前是一个i ...

  7. oracle中pdb,Oracle 12C新特性-CDB和PDB 详解

    最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...

  8. oracle12c的show指令,Oracle 12c sqlplus 命令 --- show 说明

    Show 命令是sqlplus 中使用率非常高的一个命令,在Oracle 12c中,show命令得到了进一步的增强,这里的增强,主要是争对Oracle 12c 数据库的特性. 语法如下: SHO[W] ...

  9. 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 ...

最新文章

  1. 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
  2. [patl2-018]多项式A除以B
  3. three.js写的游戏
  4. ARMV4,ARMV4T,ARMV4I的意义
  5. 编程题【Math类】计算类
  6. Git 2.19 对Diff、Branch和Grep等做了改进
  7. PTA10、统计字符个数 (10 分)
  8. SAP License:PS模块WBS预算更改
  9. mysql客户端攻击_HackerNews
  10. Windows Terminal 窗口/控制台切换快捷键总结
  11. Dalvik 与 ART 区别
  12. matlab绘图坐标显示不全的解决方法
  13. CMOS工作原理和概念
  14. 网页视频地址批量抓取工具(原创)
  15. 期末作业代码网页设计代码——花店购物网站源码(27页) 学生动花店购物页设计模板下载 植物大学生HTML网页制作作品 简单网页设计成品 dreamweaver学生网站模板
  16. Linux 安装 菜鸟教程,Linux安装Nginx(菜鸟教程简单易懂)
  17. 电子技术基础——基本共射放大电路
  18. vue移动端复杂表格表头,固定表头与固定第一列
  19. 用python进行因式分解_Python实现的质因式分解算法示例
  20. 网关地址和网关IP是什么

热门文章

  1. 高通平台 MIC BIAS 的问题
  2. windows/ubuntu 文件共享之 Samba 配置
  3. Ubuntu12.04安装JDK6
  4. S3C6410禁用和启用触摸屏
  5. [Python]数据类型、常量、变量和运算符(未完待续)
  6. 实战4节点Centos7.3 安装Kubernetes集群
  7. 黑马程序员:java基础之装饰设计模式
  8. Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)
  9. 【转】Android Studio系列教程一--下载与安装
  10. 【正一专栏】梅西!梅西!梅西!