Oracle12c多租户如何启动关闭CDB或PDB (PDB自动启动)
Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB)。
下面我们一起来启动和关闭容器数据库 (CDB) 和可插拔数据库 (PDB)。
一、启动与关闭 cdb、pdbs 数据库
说明:对于CDB,启动和关闭与之前传统的方式一样。
1. 启动 CDB
启动和关闭的容器数据库和以前版本的常规实例相同。使用SQL*Plus STARTUP和SHUTDOWN命令,必须以特权用户身份连接到CDB。
一些典型用法如下所示。
--12c数据库创建完成后,默认情况下使用sqlplus / as sysdba 登录连接的是CDB。
[oracle@12c01 ~]$ sqlplus / as sysdba
SQL>startup;
SQL> select name,cdb,open_mode from v$database;
NAME CDB OPEN_MODE
-------------------- --- --------------------
ANDYCDB YES READ WRITE
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 MOUNTED
在CDB 启动之,PDB 是自动启动到mount状态,而不是OPEN。 所以我们还需要手工去open它
2. 关闭CDB,也会把PDB 关闭掉
SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;
SQL>shutdown;
二、 启动与关闭可插接式数据库 (PDB)
3. 启动 PDB
特权用户使用 SQL*PLUS 命令或ALTER PLUGGABLE DATABASE命令可以启动和停止可插拔的数据库。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 MOUNTED
SQL> alter session set container=pdb01;
Session altered.
SQL> alter pluggable database pdb01 open;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB01 READ WRITE NO
启动到其他状态:
ALTER PLUGGABLE DATABASE OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
4. 关闭 PDB
SQL> alter pluggable database pdb01 close immediate;
Pluggable database altered.
扩展:
1.启动或者关闭一个或多个 PDB,指定的名称为一个以逗号分隔的列表。
ALTER PLUGGABLE DATABASE pdb1,pdb2 OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1,pdb2 CLOSE IMMEDIATE;
2.启动或者关闭 all pdbs
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
3.排除某些pdbs不启动,启动所有为排除的。
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE;
三、可插接式数据库(PDB) 自动启动
默认情况下,在CDB 启动的时候,all 的PDB 都是mount状态。我们可以通过触发器来实现pdbs随cdb自动启动
[oracle@12c01 ~]$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Trigger created.
验证 PDB 自动启动:
SQL> startup;
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO