本篇内容主要讲解“CDB、PDB参数的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CDB、PDB参数的区别有哪些”吧!
1、CDB和PDB共用一个参数文件,CDB使用spfileSID.ora,则PDB里面show parameter spfile时看到的也是spfileSID.ora,CDB使用spfile.ora,则PDB里面show parameter spfile时看到的也是spfile.ora,CDB使用initSID.ora,则PDB里面show parameter spfile时也看不到任何文件,PDB的参数信息不会出现在spfile或pfile文件中,而是直接从CDB中继承。
2、CDB执行alter system修改参数无论加不加CONTAINER,也无论CONTAINER值是ALL还是CURRENT,PDB也一样修改了;PDB执行alter system修改参数,只对该PDB生效,PDB执行alter system修改参数不能加CONTAINER = ALL,否则报错ORA-65050: Common DDLs only allowed in root,CONTAINER = ALL只能在CDB容器执行。
以下两条语句等价,因为CONTAINER的默认值是CURRENT
ALTER SYSTEM SET parameter_name=value;
ALTER SYSTEM SET parameter_name=value CONTAINER=CURRENT;
以下两条语句在CDB中等价,因为CDB修改了,PDB也一样修改了
ALTER SYSTEM SET parameter_name=value;
ALTER SYSTEM SET parameter_name=value CONTAINER=ALL;
3、PDB能够执行alter system修改的参数,必须是该参数对应的V$SYSTEM_PARAMETER.ISPDB_MODIFIABLE='TRUE',否则会报错ORA-65040: operation not allowed from within a pluggable database,PDB执行alter system修改的参数的信息存放在CDB的PDB_SPFILE$中,而不是PDB的PDB_SPFILE$中,PDB的PDB_SPFILE$表永远都是空的。PDB执行alter system修改的参数无论数据库重启、CDB重新修改、克隆、unplug等等操作,该参数在该PDB中不变继续生效,也就是说手工修改某个PDB的参数之后,那么此参数在这个PDB中就不受CDB参数控制了,再修改CDB的参数也无法修改该PDB的这个参数值,因为该参数和该PDB的信息已经存放在了数据字典中。
PDB从CDB继承参数值,除非参数已经在PDB级别被重写,PDB级别被重写的参数信息存储在CDB的PDB_SPFILE$中,PDB优先参照CDB中PDB_SPFILE$该PDB的参数,如果CDB的PDB_SPFILE$被清空,则PDB自动从CDB继承参数值。每个容器都有一个PDB_SPFILE$,即PDB_SPFILE$在CDB和PDB级别都存在,但只有CDB的PDB_SPFILE$有值,PDB的PDB_SPFILE$都是空的。
当然如果某个PDB执行alter system修改时加了scope为memory,信息不会写入CDB的PDB_SPFILE$中,PDB在重启后该参数失效,和11g一样
4、PDB执行unplug后该PDB的参数信息会写进xml文件,此时CDB的PDB_SPFILE$中还有该PDB的参数信息,show pdbs还可以看到该PDB, 也就是说当一个PDB被拔出时,它自己的初始化参数不会复制到PDB自己的PDB_SPFILE$中,仍旧存在CDB的PDB_SPFILE$中。当执行drop pluggable database后,CDB的PDB_SPFILE$看不到该PDB的记录了,该PDB的记录被清除了,show pdbs也看不到该PDB,当该PDB重新create using xml到CDB时后,该参数会重新加载回PDB并写入CDB的PDB_SPFILE$中
5、v$system_parameter可以查看到CDB和所有PDB的参数(PDB$SEED除外),每个容器以con_id区分。
问答:
1. CDB级别修改参数是否影响到PDB级别?
会,会影响到所有PDB,除非某个PDB自己单独修改过该参数
2. PDB级别修改参数是否影响到CDB级别?
不会,不会影响到CDB级别及其它PDB。
到此,相信大家对“CDB、PDB参数的区别有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!