許久沒關注Oracle,沒有想到Oracle12c都出來,不枉我注冊的Oracle12c的Email。
ORACLE 12C中提出來CDB和PDB的概念,對於ORACLE的數據庫來說,確實是一個新東西,他們可以分別理解為容器和插件(PDB插入在CDB中),CDB的管理和傳統數據庫區別不大,本篇文章對PDB的部分操作進行了簡單說明(創建PDB,OPEN PDB,DROP PDB,Plug PDB,Unplugging PDB)
CREATE PDB
SQL> SELECT NAME ,CDB FROM V$ DATABASE ;
NAME CDB
--------- ---
XIFENFEI YES
SQL> select pdb_id,pdb_name,dbid,STATUS,CREATION_SCN from dba_pdbs;
PDB_ID PDB_NAME DBID STATUS CREATION_SCN
---------- ------------------------------ ---------- ------------- ------------
2 PDB$SEED 4044122081 NORMAL 1661281
3 FF 1565322182 NORMAL 1720654
SQL> CREATE PLUGGABLE DATABASE xff_db ADMIN USER xff IDENTIFIED BY xifenfei
2 STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
3 DEFAULT TABLESPACE xifenfei
4 DATAFILE '/u01/app/oracle/oradata/xifenfei/xff/xifenfei01.dbf' SIZE 25M AUTOEXTEND ON
5 PATH_PREFIX = '/u01/app/oracle/oradata/xifenfei/xff/'
6 FILE_NAME_CONVERT = ( '/u01/app/oracle/oradata/xifenfei/pdbseed/' ,
7 '/u01/app/oracle/oradata/xifenfei/xff/' );
Pluggable database created.
SQL> select pdb_id,pdb_name,dbid,STATUS,CREATION_SCN from dba_pdbs;
PDB_ID PDB_NAME DBID STATUS CREATION_SCN
---------- ------------------------------ ---------- ------------- ------------
2 PDB$SEED 4044122081 NORMAL 1661281
3 FF 1565322182 NORMAL 1720654
4 XFF_DB 2272981748 NEW 1771028
|
OPEN PDB
SQL> alter pluggable database xff_db open ;
Pluggable database altered.
SQL> select pdb_id,pdb_name,dbid,STATUS,CREATION_SCN from dba_pdbs;
PDB_ID PDB_NAME DBID STATUS CREATION_SCN
---------- ------------------------------ ---------- ------------- ------------
2 PDB$SEED 4044122081 NORMAL 1661281
3 FF 1565322182 NORMAL 1720654
4 XFF_DB 2272981748 NORMAL 1771028
SQL> alter pluggable database all close immediate;
Pluggable database altered.
SQL> select con_id,dbid, NAME ,OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4044122081 PDB$SEED READ ONLY
3 1565322182 FF MOUNTED
4 2272981748 XFF_DB MOUNTED
SQL> alter pluggable database all open ;
Pluggable database altered.
SQL> select con_id,dbid, NAME ,OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4044122081 PDB$SEED READ ONLY
3 1565322182 FF READ WRITE
4 2272981748 XFF_DB READ WRITE
|
Unplugging a PDB from a CDB
SQL> alter pluggable database FF close immediate;
Pluggable database altered.
SQL> alter pluggable database ff UNPLUG into '/tmp/ff.xml' ;
Pluggable database altered.
|
DROP PDB
SQL> DROP PLUGGABLE DATABASE xff_db INCLUDING DATAFILES;
Pluggable database dropped.
SQL> DROP PLUGGABLE DATABASE ff INCLUDING DATAFILES;
Pluggable database dropped.
|
Plug Unplugged PDB into CDB
SQL> SELECT NAME ,CDB FROM V$ DATABASE ;
NAME CDB
--------- ---
XFF_L YES
SQL> create pluggable database ff using '/tmp/ff.xml'
2 copy file_name_convert=( '/u01/app/oracle/oradata/xifenfei/FF/' , '/u01/app/oracle/oradata/xff_l/xff' );
Pluggable database created.
SQL> exec DBMS_PDB.SYNC_PDB();
PL/SQL procedure successfully completed.
SQL> select con_id,dbid, NAME ,OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4043918109 PDB$SEED READ ONLY
3 2346805300 LX1 MOUNTED
4 2385557792 LX2 MOUNTED
5 1565384817 FF MOUNTED
SQL> alter pluggable database all open ;
Pluggable database altered.
SQL> select con_id,dbid, NAME ,OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4043918109 PDB$SEED READ ONLY
3 2346805300 LX1 READ WRITE
4 2385557792 LX2 READ WRITE
5 1565384817 FF READ WRITE
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/xff_l/system01.dbf
/u01/app/oracle/oradata/xff_l/pdbseed/system01.dbf
/u01/app/oracle/oradata/xff_l/sysaux01.dbf
/u01/app/oracle/oradata/xff_l/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/xff_l/undotbs01.dbf
/u01/app/oracle/oradata/xff_l/users01.dbf
/u01/app/oracle/oradata/xff_l/LX1/system01.dbf
/u01/app/oracle/oradata/xff_l/LX1/sysaux01.dbf
/u01/app/oracle/oradata/xff_l/LX1/LX1_users01.dbf
/u01/app/oracle/oradata/xff_l/LX2/system01.dbf
/u01/app/oracle/oradata/xff_l/LX2/sysaux01.dbf
/u01/app/oracle/oradata/xff_l/LX2/LX2_users01.dbf
/u01/app/oracle/oradata/xff_l/xffsystem01.dbf
/u01/app/oracle/oradata/xff_l/xffsysaux01.dbf
/u01/app/oracle/oradata/xff_l/xffSAMPLE_SCHEMA_users01.dbf
/u01/app/oracle/oradata/xff_l/xffexample01.dbf
16 rows selected.
|
補充說明:本部分內容比較多,本篇blog,只是對其中的很小一部分進行了測試,確實證明可以對pdb實現在不同的cdb中實現遷移,對於該項操作,可以在dbca和gc中實現相同操作.由於12c數據庫尚未正式發布,該部分功能只是出於個人測試目的.
注:轉載於 http://www.xifenfei.com/