Oracle 12C 中CDB和PDB的参数文件管理

0    174    1

Tags:

👉 本文共约28334个字,系统预计阅读时间或需107分钟。

目录

    Oracle 12C 中CDB和PDB的参数文件管理

    Oracle 12C 中CDB和PDB的参数文件管理

    每个 CDB 有一个 SPFILE 用于存储参数。参数值与根相关联,应用于根,并且可用作所有其他容器的默认值。可以在 PDB 中为参数设置不同的值,前提是 V$PARAMETER 中的列 ISPDB_MODIFIABLE 为 TRUE 。这些值全部在 PDB 作用域内设置,在 PDB 关闭再打开后以及在 CDB 实例关闭又启动后都会相应地保留。执行克隆和移走 / 插入操作后,也会保留。其他初始化参数只能针对根设置。

    SQL> select PDB_UID, NAME, VALUE$ from pdb_spfile$;

    PDB_UID NAME VALUE$


    3100074415 optimizer_use_sql_plan_baselines FALSE

    2862146267 optimizer_use_sql_plan_baselines FALSE

    2862146267 ddl_lock_timeout 10

    PDB 的参数存储在 CDB 的 PDB_SPFILE$ 字典表中以 con_id 区别,所以, PDB 的 PDB_SPFILE$ 表是空的。

    col NAME format a25

    col value$ format a30

    select a.pdb_uid , b.NAME , a.name , a.value$

    from pdb_spfile$ a , v$pdbs b

    where a.pdb_uid = b.CON_UID

    order by b.NAME ;

    SELECT * FROM V$SYSTEM_PARAMETER d where d.NAME='db_create_file_dest';

    SELECT * FROM cdb_tables d where d.TABLE_NAME='PDB_SPFILE$';

    http://blog.itpub.net/26736162/viewspace-2213348/

    修改 PDB 中的初始化参数,事实:

    l PDB 从根 CDB 继承参数值,除非它们在 PDB 级别被重写。

    l 普通的 “ ALTER System ”命令用于修改 PDB 级别的参数,但持久性机制不同。

    l PDB 级别的初始化参数不是存储在 SPFILE 中,而是存储在 C DB 的数据字典 PDB_SPFILE$ 内部表中。

    l 对于整个 CDB 及其所有 PDBs ,只有一个 物理 spfile 。打开根 CDB 时读取此 spfile 。

    l 与 PDB 的 spfile 等价的是 CDB 的 PDB_SPFILE$ 表。

    l 每个容器都有一个 PDB_SPFILE$ 表 (CDB$root 和所有 PDB) 。但是,只有 CDB 的 PDB_SPFILE$ 表包含为 PDB 专门设置的参数。

    l 只要根的 CDB 是打开的, PDBs 中的 SPFILE 总是被启用的。即使 CDB 不使用 SPFILE , Oracle 也允许 PDB 使用 SPFILE ,因为 PDB 没有任何其他方法用于持久参数 (PDB 不支持 Pfile 或 init.ora 文件 ) 。

    l 在 PDB 中只能在本地修改整个 Oracle DB 初始化参数的一个子集。使用 V$PARAMETER.ISPDB_AUDIBE= ‘ YES ’查找这些参数。

    l PDB 级别的参数在数据库重新启动的过程中持续存在,在拔出 / 插件甚至克隆操作中也是如此。

    l 根的 PDB_SPFILE$ 表是内部查询的,在打开可插拔数据库 / 实例时会相应地设置参数。

    l 当以特权用户的身份连接到根容器 DB 时,默认情况下,任何 ALTER System 命令都只指向根容器。

    l 传统的查看 SPFILE 甚至警报日志的方法只对 CDB 数据库有用。这是因为 CDB 是控制 CDB 和 PDB 之间共享的许多项的根级别。

    l 要查看 CDB 和所有 PDB 的参数 (PDB$SEED 除外 ) ,可以查询 V$System_Parameter 。但是,除非安装了 bug#20700587 的修复程序,否则不会列出隐藏参数或下划线参数。

    l V$SPPARAMETER 视图也可以被查询以在从 PDB 内部查询时显示 PDB 的 SPFILE 参数。

    l 在非 CDB 中, V$SPPARAMETER 视图读取 spfile 并将参数显示为查询结果。 CDB 中的相同视图读取根中的 PDB_SPFILE$ 表,并在 PDB 中显示 PDB 的 SPFILE 参数。

    l 为了在 PDB 级别修改参数,您需要连接到要对其进行修改的 PDB 容器。如果在根容器中连接,参数修改将对整个 CDB 进行。

    l 每次打开 PDB 时,如果特定的 PDB 对于某些 init 参数有自己的值,那么 CDB 的 SPFILE 的值将被 PDB_SPFILE$ 的值覆盖。

    l 可以为根 CDB DB 设置所有初始化参数。对于没有为 PDB 显式设置的任何初始化参数, PDB 继承根的参数值。

    l 就像正常的初始化参数一样,有些下划线参数不能在系统级别修改,或者不能在 PDB 级别上修改,或者参数 - 隐藏的或不隐藏的 - 需要在所有 RAC 实例中具有相同的值。

    l 每个 PDB 中的 PDB_SPFILE$ 表都是截断 / 空的,每个 PDB 的所有初始化参数都存储在根的 PDB_SPFILE$ 表中。

    l 当 PDB 插入到新的 CDB 中时,参数及其值将被恢复。

    l 当一个 PDB 被拔出时,它自己的初始化参数也会被复制到 PDB 自己的 PDB_SPFILE$ 表中,这样做是为了防止 XML 丢失。

    l 将 PDB 插入到 CDB 并导入其所有参数后,本地 PDB 的 PDB_SPFILE$ 表将被截断。

    l 由于 PDB 的 spfile 参数存储在根 CDB 中的字典表中,所以“ ALTER System Reset ”命令只是从根中的 PDB_SPFILE$ 表中删除 PDB 参数的行。这相当于从非 CDB 中的常规 spfile 中删除参数。

    l 当前不支持为常规的非多租户数据库重置内存中的参数,因此 PDB 也不支持这一点。

    l 当 PDB 关闭时,用于设置 / 重置参数的 PDB ‘ Alter System Set/Reset. ’命令不能用作用域 = 内存执行。当读取封闭 PDB 的参数时,我们需要提供参数的根值,因为 PDB 是从根继承的。

    Oracle 12C 中CDB和PDB的参数文件管理

    在本例中, pdb2 中为 DDL_LOCK_TIMEOUT 参数设置了不同的值。 PDB 关闭再打开后,更改的值会保留。 V$SYSTEM_PARAMETER 视图中的新列 CON_ID 显示每个容器(即根、 pdb1 和 pdb2 )中的 DDL_LOCK_TIMEOUT 值。

    一、 Oracle12c多租户CDB 与 PDB 参数文件位置

    CDB的参数文件依然使用12c以前的SPIFLE,pdb的参数文件不会出现在SPFILE中,而是直接从CDB中继承,如果PDB中有privete Local parameter 会存在 CDB 的 PDB_SPFILE$字典表 中以con_id区别,当PDB UN-Plug时,PDB参数会写入PDB的XML文件中,当drop pluggable database后,pdb信息和PDB_SPFILE$记录也会被清除。再当PDB重新Plug-in到CDB时会重新加载回PDB, 但是由于一些PDB特殊参数在plug-in时会被遗弃。

    实验验证:

    SQL> show con_name

    CON_NAME
    ------------------------------
    CDB$ROOT
    SQL> show parameter spfile

    NAME TYPE VALUE


    spfile string /home/oracle/app/oracle/produc
    t/12.2.0/dbhome_1/dbs/spfilean
    dycdb.ora
    SQL> alter session set container=pdb01;

    Session altered.

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
    Oracle 12C 中CDB和PDB的参数文件管理后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
    验证码:
    请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复

    嘿,我是小麦,需要帮助随时找我哦。
    • 18509239930
    • 个人微信

    • DB宝
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部