实验环境
Oracle Linux 7.5
Oracle database 12.2.0.1
ORACLE_SID=cdb1
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
##问题
cdb1启动后,还需要手动开启所有的pdb,能否让pdb1在cdb1启动后自动启动?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| C:\Oracle\network>sql sys/oracle@cdb1 as sysdba
SQLcl: 发行版 19.1 Production, 发行日期 星期三 六月 12 19:00:00 2019
版权所有 (c) 1982, 2019, Oracle。保留所有权利。
已连接到空闲实例, startup 命令可用。
SQL> startup ORACLE 实例已启动。
Total System Global Area 2516582400 bytes Fixed Size 8795904 bytes Variable Size 671090944 bytes Database Buffers 1828716544 bytes Redo Buffers 7979008 bytes 数据库已装载。 数据库已经打开。 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 MOUNTED SQL> alter pluggable database pdb1 open;
Pluggable database PDB1已变更。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO
|
实现
这种情况下需要创建一个数据库级别的trigger
1 2 3 4 5 6 7
| CREATE OR REPLACE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; /
|
测试如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| C:\Oracle\network>sql sys/oracle@cdb1 as sysdba
SQLcl: 发行版 19.1 Production, 发行日期 星期三 六月 12 19:04:30 2019
版权所有 (c) 1982, 2019, Oracle。保留所有权利。
已连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> SQL> SQL> SQL> SQL> CREATE OR REPLACE TRIGGER open_all_pdbs 2 AFTER STARTUP 3 ON DATABASE 4 BEGIN 5 EXECUTE IMMEDIATE 'alter pluggable database all open'; 6 END open_all_pdbs; 7 /
Trigger OPEN_ALL_PDBS 已编译
SQL> SQL> shutdown immediate 数据库已关闭。 数据库已卸装。 ORACLE 例程已经关闭。 SQL> startup ORACLE 实例已启动。
Total System Global Area 2516582400 bytes Fixed Size 8795904 bytes Variable Size 671090944 bytes Database Buffers 1828716544 bytes Redo Buffers 7979008 bytes 数据库已装载。 数据库已经打开。 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO
|