CDB启动时自动启动所有的PDB

发布 : 2019-06-13 分类 : Oracle 浏览 :

实验环境

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
本文作者 : Shen Peng
原文链接 : http://yoursite.com/2019/06/13/CDB启动时自动启动所有的PDB/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹