相关文章推荐
小百科
›
Oracle:PDB 参数管理_ITPUB博客
数据库
oracle
pdb
私奔的数据线
2 年前
Oracle Database 12c 中的参数继承意味着根 (CDB) 中特定参数的值由一个或多个 PDB 继承。有些参数可以在 PDB 级别更改并覆盖从 CDB 继承的内容。要确定可以为 PDB 修改哪些参数,V$SYSTEM_PARAMETER 或 V$PARAMETER 视图中的 ISPDB_MODIFIABLE 列必须为 TRUE。如果该参数的 ISPDB_MODIFIABLE 列为 TRUE,则该参数从 CDB 继承值,直到在 PDB 上使用 ALTER SYSTEM SET 命令更改该值。有关 PDB 修改参数的所有信息都存储在 ROOT CDB 的 PDB_SPFILE$ 表中。一旦 PDB 重新插入另一个 CDB,PDB 的 PDB_SPFILE$ 表就会被截断。 # 查看参数 V$PARAMETER 或 V$SYSTEM_PARAMETER 可以查询。隐藏或下划线参数不会在那里列出,除非安装了 bug#20700587 的修复程序。如果未安装 bug#20700587 的修复程序,可以改为查询 CDB 的 PDB_SPFILE$ 表。当从 PDB 内部查询时,还可以查询 V$SPPARAMETER 视图以显示 PDB 的 SPFILE 参数。 ```sql select a.name,a.dbid,b.pdb_uid,b.name,b.value$ from v$pdbs a ,pdb_spfile$ b where a.dbid = b.pdb_uid and a.name = 'PDB2' # 是否可修改 并非所有参数都是 PDB 可修改的。要确定可以为 PDB 修改哪些参数,V$SYSTEM_PARAMETER 或 V$PARAMETER 视图中的 ISPDB_MODIFIABLE 列必须为 TRUE。 ```sql select name, value from v$parameter where ISPDB_MODIFIABLE = 'TRUE' and name = 'open_cursors'; # RAC 实例参数设置 如果你想为RAC实例的同一个参数设置不同的值,你需要添加 SID 子句,就像你在普通的非多租户数据库中所做的一样,唯一的区别是提供的 SID 是多租户数据库的 SID : ```sql ALTER SESSION SET CONTAINER = PDBP1; alter system set open_cursors=150 comment='setting open_cursors to RAC instance 1 from PDBP1' scope=spfile sid='CBD_PRD1'; alter system set open_cursors=250 comment='setting open_cursors to RAC instance 2 from PDBP1' scope=spfile sid='CBD_PRD2'; 请注意,我们在连接到 PDBP1 容器时正在执行命令。 ### Standby DB 参数设置 由于 PDB 的参数存储在数据库的字典中,因此任何更改都将被禁止,因为 Standby DB 不是以读写模式打开的。 从 12.1.0.2 开始,有一种语法增强功能可以执行带有 DB_UNIQUE_NAME 子句的 ALTER SYSTEM SET 语句。该子句提供了一种在主数据库上的 PDB 内使用 SCOPE=SPFILE 修改系统参数的方法,但指定参数值应该真正生效的备用数据库的 db_unique_name。这种方法确保 DML 在主数据库上执行,目的是在备用数据库上生效。 **从主连接到正确的容器 PDB 执行** ```sql ALTER SESSION SET CONTAINER = PDBP1; alter system set open_cursors=150 comment='setting open_cursors to PDBP1 standby' scope=spfile db_unique_name='CDB_STBY'; > **注意:** > - 语法中的“...db_unique_name='CDB_STBY'...”,它指定了备用数据库的 db_unique_name。 > - 我们在连接到 PDBP1 容器 DB 时从主 DB 执行命令,我们需要指定 db_unique_name 和 sid。 > - SID 是多租户备用数据库的 SID。 # 取消 PDB 管理参数 ```sql ALTER SESSION SET CONTAINER = PDBP1; alter system reset open_cursors; > **注意:**pdb_spfile$ 是内部字典表,不应用于查询初始化参数。为了详细说明技术细节,该行存在于 pdb_spfile$ 中,但它被标记为 DELETED 参数。所以行的存在是内部实现,对用户没有影响。 - Initialization parameters in a Multitenant database - FAQ and Examples (Doc ID 2101638.1) - ALTER SYSTEM RESET DOESN'T UPDATE PARAM VALUE IN PDB_SPFILE$ (Doc ID 2287601.1) - Initialization parameters in a Multitenant database - Facts and additional information (Doc ID 2101596.1)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2842653/,如需转载,请注明出处,否则将追究法律责任。
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员
推荐文章