Oracle12cr1新特性之容器資料庫(CDB)和可插拔資料庫(PDB) 的啟動和關閉
Oracle12c中引入的多宿主選項(multitenant option)允許一個容器資料庫容納多個獨立的可插拔資料庫(PDB)。本文將說明如何啟動和關閉容器資料庫(CDB)和可插拔資料庫(PDB)。
1. 容器資料庫(CDB)
啟動和關閉容器資料庫和以往一樣。當作為授權使用者連線到CDB時,SQL*Plus中可以使用STARTUP和SHUTDOWN命令。具體語法如下:
STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE| FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]
2. 可插拔資料庫(PDB)
可插拔資料庫能用SQL*Plus命令或 ALTER PLUGGABLEDATABASE命令啟動和關閉。
3. SQL*Plus命令
當作為授權使用者連線至可插拔資料庫時,如下命令可用來啟動和關閉資料庫:
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];
示例如下:
STARTUP FORCE;
SHUTDOWN IMMEDIATE;
STARTUP OPEN READ WRITE RESTRICT;
SHUTDOWN;
STARTUP;
SHUTDOWN IMMEDIATE;
4. ALTER PLUGGABLE DATABASE
ALTER PLUGGABLE DATABASE命令能在CDB或PDB中使用。
當作為授權使用者連線至PDB時,如下命令可用來開啟和關閉目前的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];
示例如下。
ALTER PLUGGABLE DATABASE OPEN READ ONLYFORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ WRITE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
當作為授權使用者連線至CDB時,如下命令可用來開啟和關閉一個或多個PDB。
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN READ WRITE[RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN READ ONLY[RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE<pdb-name-clause> CLOSE [IMMEDIATE];
<pdb-name-clause> 子句可以是如下值:
一個或多個以逗號分隔的PDB名。
ALL關鍵字指所有PDB。
ALL EXCEPT關鍵字,後面跟一個或多個逗號分隔的PDB,指一個PDB子集。
示例如下:
ALTER PLUGGABLE DATABASE pdb1, pdb2 OPEN READONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1, pdb2 CLOSEIMMEDIATE;
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1CLOSE IMMEDIATE;
5. 可插拔資料庫(PDB)自動啟動
Oracle12.1.0.2補丁集已引入了保持PDB啟動狀態的能力,因此,不用再透過下面的觸發器方式來實現自動開啟PDB。
Oracle12.1.0.2之前,CDB啟動後,所有的PDB都處於載入狀態。CDB啟動時,沒有預設機制自動啟動PDB。只能透過在CDB上建立一個系統觸發器來自動啟動部分或所有PDB。
CREATE OR REPLACE TRIGGER open_pdbs
AFTERSTARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLEDATABASE ALL OPEN';
END open_pdbs;
/
如果你不想啟動所有的PDB,可以定製修改該觸發器。
6. 保持PDB處於啟動狀態(12.1.0.2之後)
Oracle12.1.0.2補丁集可以讓PDB在CDB重啟時保持啟動狀態。這可以透過ALTERPLUGGABLE DATABASE命令實現。
我們可以觀察CDB重啟的整個過程。注意,重啟前,PDB都處於可讀寫模式,但重啟後卻處於載入模式。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 MOUNTED
PDB2 MOUNTED
SQL>
接著,我們開啟兩個PDBS,但只儲存PDB1的狀態。
ALTER PLUGGABLE DATABASE pdb1 OPEN;
ALTER PLUGGABLE DATABASE pdb2 OPEN;
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;
檢視DBA_PDB_SAVED_STATES顯示容器儲存狀態的資訊。
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROMdba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE
-------------------- ----------------------------------
PDB1 cdb1 OPEN
SQL>
重啟CDB將會出現一個不同結果。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 MOUNTED
SQL>
被儲存的狀態可以透過如下命令被廢棄。
ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROMdba_pdb_saved_states;
no rows selected
SQL>
7. 注意:
? 只有容器處於只讀或讀寫模式,狀態才可以在檢視DBA_PDB_SAVED_STATES中儲存和顯式。當對一個載入狀態的容器執行ALTER PLUGGABLE DATABASE ... SAVE STATE命令時,既不報錯,也不會記錄狀態,因為這是CDB重啟後的預設狀態。
? 像 ALTER PLUGGABLEDATABASE命令的其他例子一樣, PDBs可以單獨列出,也可以是逗號分隔的PDB列,或者用 ALL或 ALL EXCEPT關鍵字。
? RAC環境中,可以增加INSTANCES子句。該子句中可以寫單個例項,逗號分隔的例項列,ALL或ALL EXCEPT關鍵字。不管INSTANCES 子句, SAVE/DISCARD STATE命令隻影響當前的例項。
1. 容器資料庫(CDB)
啟動和關閉容器資料庫和以往一樣。當作為授權使用者連線到CDB時,SQL*Plus中可以使用STARTUP和SHUTDOWN命令。具體語法如下:
STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE| FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]
2. 可插拔資料庫(PDB)
可插拔資料庫能用SQL*Plus命令或 ALTER PLUGGABLEDATABASE命令啟動和關閉。
3. SQL*Plus命令
當作為授權使用者連線至可插拔資料庫時,如下命令可用來啟動和關閉資料庫:
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];
示例如下:
STARTUP FORCE;
SHUTDOWN IMMEDIATE;
STARTUP OPEN READ WRITE RESTRICT;
SHUTDOWN;
STARTUP;
SHUTDOWN IMMEDIATE;
4. ALTER PLUGGABLE DATABASE
ALTER PLUGGABLE DATABASE命令能在CDB或PDB中使用。
當作為授權使用者連線至PDB時,如下命令可用來開啟和關閉目前的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];
示例如下。
ALTER PLUGGABLE DATABASE OPEN READ ONLYFORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ WRITE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
當作為授權使用者連線至CDB時,如下命令可用來開啟和關閉一個或多個PDB。
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN READ WRITE[RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN READ ONLY[RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE<pdb-name-clause> OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE<pdb-name-clause> CLOSE [IMMEDIATE];
<pdb-name-clause> 子句可以是如下值:
一個或多個以逗號分隔的PDB名。
ALL關鍵字指所有PDB。
ALL EXCEPT關鍵字,後面跟一個或多個逗號分隔的PDB,指一個PDB子集。
示例如下:
ALTER PLUGGABLE DATABASE pdb1, pdb2 OPEN READONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1, pdb2 CLOSEIMMEDIATE;
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1CLOSE IMMEDIATE;
5. 可插拔資料庫(PDB)自動啟動
Oracle12.1.0.2補丁集已引入了保持PDB啟動狀態的能力,因此,不用再透過下面的觸發器方式來實現自動開啟PDB。
Oracle12.1.0.2之前,CDB啟動後,所有的PDB都處於載入狀態。CDB啟動時,沒有預設機制自動啟動PDB。只能透過在CDB上建立一個系統觸發器來自動啟動部分或所有PDB。
CREATE OR REPLACE TRIGGER open_pdbs
AFTERSTARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLEDATABASE ALL OPEN';
END open_pdbs;
/
如果你不想啟動所有的PDB,可以定製修改該觸發器。
6. 保持PDB處於啟動狀態(12.1.0.2之後)
Oracle12.1.0.2補丁集可以讓PDB在CDB重啟時保持啟動狀態。這可以透過ALTERPLUGGABLE DATABASE命令實現。
我們可以觀察CDB重啟的整個過程。注意,重啟前,PDB都處於可讀寫模式,但重啟後卻處於載入模式。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 MOUNTED
PDB2 MOUNTED
SQL>
接著,我們開啟兩個PDBS,但只儲存PDB1的狀態。
ALTER PLUGGABLE DATABASE pdb1 OPEN;
ALTER PLUGGABLE DATABASE pdb2 OPEN;
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;
檢視DBA_PDB_SAVED_STATES顯示容器儲存狀態的資訊。
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROMdba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE
-------------------- ----------------------------------
PDB1 cdb1 OPEN
SQL>
重啟CDB將會出現一個不同結果。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 MOUNTED
SQL>
被儲存的狀態可以透過如下命令被廢棄。
ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROMdba_pdb_saved_states;
no rows selected
SQL>
7. 注意:
? 只有容器處於只讀或讀寫模式,狀態才可以在檢視DBA_PDB_SAVED_STATES中儲存和顯式。當對一個載入狀態的容器執行ALTER PLUGGABLE DATABASE ... SAVE STATE命令時,既不報錯,也不會記錄狀態,因為這是CDB重啟後的預設狀態。
? 像 ALTER PLUGGABLEDATABASE命令的其他例子一樣, PDBs可以單獨列出,也可以是逗號分隔的PDB列,或者用 ALL或 ALL EXCEPT關鍵字。
? RAC環境中,可以增加INSTANCES子句。該子句中可以寫單個例項,逗號分隔的例項列,ALL或ALL EXCEPT關鍵字。不管INSTANCES 子句, SAVE/DISCARD STATE命令隻影響當前的例項。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2120159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 詳談Oracle12c新特點容器資料庫&可插拔資料庫(CDB&PDB)Oracle資料庫
- Oracle12c中配置例項引數和修改容器資料庫(CDB)及可插拔資料庫(PDB)Oracle資料庫
- 資料庫啟動和關閉資料庫
- Oracle12c中多宿主容器資料庫(CDBs)和可插拔資料庫(PDBs)新特性之執行指令碼Oracle資料庫指令碼
- Oracle資料庫的啟動和關閉Oracle資料庫
- ORACLE資料庫的啟動和關閉(轉)Oracle資料庫
- dataguard standby資料庫的關閉和啟動資料庫
- oracle12c新特點之可插拔資料庫(Pluggable Database,PDB)Oracle資料庫Database
- db2資料庫的啟動和關閉DB2資料庫
- 多租戶:防止意外建立可插拔資料庫(PDB)- Lone-PDB資料庫
- ORACLE資料庫的啟動和關閉之二(轉)Oracle資料庫
- Oracle資料庫的幾種啟動和關閉方式Oracle資料庫
- 深刻理解Oracle資料庫的啟動和關閉Oracle資料庫
- 深刻理解 oracle 資料庫的啟動和關閉Oracle資料庫
- kettl連線oracle12c 可插拔資料庫pdbOracle資料庫
- 資料庫自動啟動關閉資料庫
- 【指令碼】快速啟動和關閉Windows上的資料庫指令碼Windows資料庫
- 深刻理解Oracle資料庫的啟動和關閉(轉)Oracle資料庫
- RAC 資料庫的啟動與關閉資料庫
- Oracle資料庫的啟動與關閉Oracle資料庫
- rac 管理 啟動關閉資料庫資料庫
- oracle資料庫不同啟動命令和關閉命令全面解析Oracle資料庫
- R12c 新特性:RMAN 可插拔資料庫的備份和恢復 (文件 ID 1945849.1)資料庫
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- Oracle日常運維操作總結-資料庫的啟動和關閉Oracle運維資料庫
- Oracle學習系列—Windows下資料庫程式的啟動和關閉OracleWindows資料庫
- informix 資料庫啟動關閉指令碼ORM資料庫指令碼
- Mysql 5.5 資料庫啟動關閉命令MySql資料庫
- 啟動和停止資料庫.資料庫
- 【12C】Oracle 12C 新特性“可插拔資料庫”功能體驗Oracle資料庫
- 【BUILD_ORACLE】在Oracle cloud資料庫“插拔”PDB的方法UIOracleCloud資料庫
- Oracle 12c 新特性之 PDB 級別閃回資料庫Oracle資料庫
- LevelDB C++教程: 如何開啟和關閉資料庫C++資料庫
- 例項管理及資料庫的啟動關閉資料庫
- 啟動、關閉與資料庫的特殊狀態資料庫
- 隨系統啟動關閉的oracle資料庫Oracle資料庫
- 資料庫關閉資料庫
- Oracle 資料庫例項啟動關閉過程Oracle資料庫