oracle12c不使用cdb模式,【学习笔记】Oracle 12C 设置pdb随cdb一起启动的方法

天萃荷净

运维DBA反映当前Oracle 12C数据库环境的PDB不能随CDB一起启动,结合案例分享关于设置pdb随cdb一起启动的方法

在Oracle 12.1.0.1版本中,在cdb数据库启动过程中,业务pdb无法自动open,如果要实现该功能,需要人工写触发器来实现cdb open后,pdb 给open起来.在12.1.0.2及其以后版本,可以通过设置ALTER PLUGGABLE DATABASE PDB SAVE STATE来实现在cdb open之后业务pdb能够自动open.

1.数据库启动后pdb未自动open

XFF_CDB$ROOT@SYS> startup

ORACLE 例程已经启动。

Total System Global Area 805306368 bytes

Fixed Size 3050800 bytes

Variable Size 394265296 bytes

Database Buffers 297795584 bytes

Redo Buffers 5337088 bytes

In-Memory Area 104857600 bytes

数据库装载完毕。

数据库已经打开。

XFF_CDB$ROOT@SYS> select * from v$version;

BANNER CON_ID

-------------------------------------------------------------------------------- ----------

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0

PL/SQL Release 12.1.0.2.0 - Production 0

CORE 12.1.0.2.0 Production 0

TNS for 64-bit Windows: Version 12.1.0.2.0 - Production 0

NLSRTL Version 12.1.0.2.0 - Production 0

XFF_CDB$ROOT@SYS> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED READ ONLY NO

3 PDB MOUNTED

2.查询dba_pdb_saved_states无记录

XFF_CDB$ROOT@SYS> select con_name, state from dba_pdb_saved_states;

未选定行

在数据库mount状态下save state

XFF_CDB$ROOT@SYS> ALTER PLUGGABLE DATABASE PDB save state;

插接式数据库已变更。

XFF_CDB$ROOT@SYS> select con_name, state from dba_pdb_saved_states;

未选定行

pdb为mount状态下,执行save state无记录,证明save state不成功

在数据库open状态下save state—-设置pdb随cdb启动

XFF_CDB$ROOT@SYS> ALTER PLUGGABLE DATABASE PDB open;

插接式数据库已变更。

XFF_CDB$ROOT@SYS> ALTER PLUGGABLE DATABASE PDB save state;

插接式数据库已变更。

XFF_CDB$ROOT@SYS> col con_name for a20

XFF_CDB$ROOT@SYS> select con_name, state from dba_pdb_saved_states;

CON_NAME STATE

-------------------- --------------

PDB OPEN

pdb为open状态下,执save state成功.

需要注意save state需要在pdb open情况下执行才能够生效.

3.重启数据库测试pdb随cdb启动

XFF_CDB$ROOT@SYS> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

XFF_CDB$ROOT@SYS> startup

ORACLE 例程已经启动。

Total System Global Area 805306368 bytes

Fixed Size 3050800 bytes

Variable Size 364905168 bytes

Database Buffers 327155712 bytes

Redo Buffers 5337088 bytes

In-Memory Area 104857600 bytes

数据库装载完毕。

数据库已经打开。

XFF_CDB$ROOT@SYS> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED READ ONLY NO

3 PDB READ WRITE NO

禁用pdb随cdb启动—DISCARD STATE

XFF_CDB$ROOT@SYS> ALTER PLUGGABLE DATABASE PDB DISCARD state;

插接式数据库已变更。

XFF_CDB$ROOT@SYS> select con_name, state from dba_pdb_saved_states;

未选定行

XFF_CDB$ROOT@SYS> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

XFF_CDB$ROOT@SYS> startup

ORACLE 例程已经启动。

Total System Global Area 805306368 bytes

Fixed Size 3050800 bytes

Variable Size 364905168 bytes

Database Buffers 327155712 bytes

Redo Buffers 5337088 bytes

In-Memory Area 104857600 bytes

数据库装载完毕。

数据库已经打开。

XFF_CDB$ROOT@SYS> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED READ ONLY NO

3 PDB MOUNTED

XFF_CDB$ROOT@SYS>

4.12.1.0.1中设置pdb随cdb启动

CREATE TRIGGER open_all_pdbs

AFTER STARTUP

ON DATABASE

BEGIN

EXECUTE IMMEDIATE 'alter pluggable database all open';

END open_all_pdbs;

/

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle 12C 设置pdb随cdb一起启动的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值