從cdb中unplug(pdb)
目錄結構
一、說明
二、拔出的先決條件
三、實戰操作
一、說明
1、拔出是指可插拔數據庫不再與 cdb 關聯。
2、connect to its CDB root or application root and use the ALTER PLUGGABLE DATABASE statement to specify an XML file or a .pdb file
3、xml 文件包含 pdb 的元數據,可用於在目標 cdb 中創建和插入 pdb
4、pdb 文件是一個壓縮的 xml 文件,包含 pdb 的描述和數據文件,可以拷貝到新的位置在新的 cdb 中進行插入。
5、拔出 pdb 之前 pdb 必須 close
6、The PDB must be dropped from the CDB before it can be plugged back into the same CDB
7、拔出操作圖示
二、拔出的先決條件
1、當前操作用戶必須是 SYSDBA 權限或者是 SYSOPER 權限。
2、pdb 必須已經被打開至少一次。
三、實戰操作
3.1、unplug爲pdb文件
1、確定連接到根容器
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB READ WRITE NO
2、關閉目標容器
SQL> alter pluggable database youpdb close immediate; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB MOUNTED
3、進行unplug操作
SQL> alter pluggable database youpdb unplug into '/backup/youpdb.pdb'; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB MOUNTED
SQL> host ls -l /backup/
total 218748
-rw-r--r--. 1 root root 699018 Feb 15 19:38 full.sql
-rw-r--r-- 1 oracle oinstall 6911 May 23 16:53 ncdb.xml
-rw-r--r--. 1 root root 19929582 Feb 12 18:39 testdb1.sql
-rw-r--r--. 1 root root 19929725 Feb 12 18:38 testdb.sql
-rw-r--r-- 1 oracle oinstall 183424373 May 23 23:22 youpdb.pdb
3.2、unplug爲xml文件
1、在 sqlplus 中確保登陸的容器是要操作 pdb 所在的 root 容器
2、關閉目標pdb
3、運行 alter pluggable database 目標 pdb unplug into ‘xml 文件路徑和名字’;
4、執行 Drop the closed PDB and keep the data files.
drop pluggable database erppdb2 keep datafiles;
3.3、pdb文件的異機插入
注意:確保插入的容器是cdb根
1、拷貝pdb文件到異機
scp /backup/youpdb.pdb [email protected]:/backup/
[email protected]'s password:
youpdb.pdb 100% 175MB 87.4MB/s 00:02
2、在目標cdb中做兼容性檢查
SET SERVEROUTPUT ON DECLARE compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file => '/backup/youpdb.pdb', pdb_name => 'youpdb') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
3、在根容器中執行插入操作
SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT
SQL> create pluggable database youpdb using '/backup/youpdb.pdb' copy file_name_convert='/backup/','/opt/oracle/oradata/youcdb/youpdb/'); Pluggable database created.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 YOUPDB MOUNTED
SQL> alter pluggable database youpdb open; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 YOUPDB READ WRITE NO
SQL> alter session set container=youpdb; Session altered.
SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /opt/oracle/oradata/youcdb/youpdb/system01.dbf /opt/oracle/oradata/youcdb/youpdb/sysaux01.dbf /opt/oracle/oradata/youcdb/youpdb/undotbs01.dbf /opt/oracle/oradata/youcdb/youpdb/users01.dbf