在Oracle 12c引入多租户特性之后,对于数据库的管理、起停也产生了多重复杂的情形,以下记录常用的使用命令供参考。
对于CDB数据库来说,启停命令最丰富,和传统的数据库管理没有不同,常见命令集如下:
STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]
但是对于PDB来说,会有所不同,由于CDB启动之后,PDB缺省启动到Mount状态,所以PDB没有Nomount和Mount的机会了,这两个阶段随着PDB被赋予:
SQL> startup
ORACLE instance started.
Total System Global Area 1862270976 bytes
Fixed Size 2925648 bytes
Variable Size 553651120 bytes
Database Buffers 1291845632 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL> col name for a30
SQL> select con_id,name,open_mode from v$pdbs;
CON_ID NAME OPEN_MODE
---------- ------------------------------ --------------------
2 PDB$SEED READ ONLY
3 PDBPROD1 MOUNTED
4 PDBPROD2 MOUNTED
SQL> col banner for a80
SQL> 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
CORE12.1.0.2.0Production 0
TNS for Linux: Version 12.1.0.2.0 - Production 0
NLSRTL Version 12.1.0.2.0 - Production 0
在此过程中,数据库的启动日志记录如下:
Wed Nov 30 12:30:02 2016
AQPC started with pid=28, OS id=5806
Database Characterset for PDB$SEED is WE8MSWIN1252
Opening pdb PDB$SEED (2) with no Resource Manager plan active
Starting background process CJQ0
Completed: ALTER DATABASE OPEN
如下命令集对于PDB是适用的,也就是:
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];
也就是以何种方式将PDB的状态从Mount推进到Open状态。
在CDB启动之后,PDB中仍然可以执行startup的指令,将数据库Open打开:
SQL> alter session set container=PDBPROD1;
Session altered.
SQL> startup
Pluggable Database opened.
SQL> select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ WRITE
此时记录的日志如下:
Wed Nov 30 12:30:09 2016
Shared IO Pool defaulting to 80MB. Trying to get it from Buffer Cache for process 5373.
===========================================================
Dumping current patch information
===========================================================
No patches have been applied
===========================================================
ALTER PLUGGABLE DATABASE OPEN
Wed Nov 30 12:44:36 2016
Database Characterset for PDBPROD1 is WE8MSWIN1252
Opening pdb PDBPROD1 (3) with no Resource Manager plan active
Pluggable database PDBPROD1 opened read write
Completed: ALTER PLUGGABLE DATABASE OPEN
实际上,数据库是通过
ALTER PLUGGABLE DATABASE OPEN
的方式打开了PDB。
所以事实上,在增加了PDB之后,引入了一系列的PDB操作指令:
ALTER PLUGGABLE DATABASE
在CDB级别,操作PDB的启停有如下一个系列的命令集合:
ALTER PLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];
在PDB级别,有如下一个系列的命令集合:
ALTER PLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];