暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何限制数据库12cR2中的可插拔级别的资源

ASKTOM 2018-11-16
1234

问题描述

一些性能不佳的pdb可能会导致整个db机器的灾难,为了避免这种情况,我们需要限制pdb资源的使用!
我们的12cR2中有几十个pdb,每个都需要不同的资源,我们必须用不同的配置来限制它们。
1) 众所周知,我们可以分配SGA_TARGET,但是如何更改某些特定pdb的sga_max_size?
我们已经触发了 '改变系统集SGA_MAX_SIZE =...SCOPE = SPFILE' 子句,但遇到ORA-65040错误。

SQL> alter session set container=n2dev;
SQL> ALTER SYSTEM SET SGA_MAX_SIZE=2G container=CURRENT scope=spfile;
 ALTER SYSTEM SET SGA_MAX_SIZE=2G container=current scope=spfile
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database



2) 另外,我们想为某些pdb分配CPU上限,CPU_COUNT参数是否有效,还是应该考虑CDB资源管理器计划?CPU_COUNT似乎方便多了。

3) 顺便说一句,我们都设置了max_iops和max_mbps来限制PDB的IO,这2个参数会对撤消tbs生效吗?

谢谢!

专家解答

在容器中,SGA_TARGET实际上将与SGA_MAX_SIZE同义,因为它限制可插入数据库消耗该数量的内存。

同样,可插拔级别的cpu_count的工作方式与数据库级别的实例缓存类似,我们将使用资源管理器来限制实例 (在本例中,可插拔) 使用价值那么多的CPU,例如

SQL> conn / as sysdba
Connected.
SQL> show parameter cpu_count

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------
cpu_count                            integer     16
SQL>
SQL>
SQL> alter session set container = pdb122a;

Session altered.

SQL> alter system set cpu_count = 4;

System altered.


有关详细信息,请查看此白皮书

https://www.oracle.com/technetwork/database/multitenant/overview/multitenant-wp-12c-2078248.pdf


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论