12c多租戶管理七(pdb跨cdb遷移)

pdb跨cdb遷移



目錄結構 


一、遷移說明

二、遷移圖示

三、進行遷移動作的先決條件

四、遠程cdb遷移一個pdb到本地cdb


 

一、 遷移說明


1、While the PDB is being relocated, current DML and DDL operations will pause while they are redirected to the PDB’s new location         Queries  continue to run  with no pause

2、You must use a database link to relocate the PDB. The database link must be created in the CDB that will contain the relocated PDB

3、When you issue the CREATE PLUGGABLE Creating a PDB by Relocating It DATABASE statement from the root of the CDB that will contain the     relocated PDB, you must specify a database link to the remote CDB that contains the PDB being relocated in the FROM clause

4、The database link must connect to the root of the remote CDB

5、To redirect connections from the old location of the PDB to the new location, specify the AVAILABILITY MAX clause


二、遷移圖示

2.1、遷移圖示

image.png


2.2、實驗環境簡介

本地  192.168.5.40:1521  mycdb   pdb:mypdb1、mypdb2 數據文件路徑 /opt/oracle/oradata/mycdb/

遠程  192.168.5.41:1521  youcdb  pdb:youpdb         數據文件路徑  /opt/oracle/oradata/youcdb/



三、進行遷移動作的先決條件


1、當前操作用戶必須在包含待遷移 pdb 的 cdb 中具有 create pluggable database 系統權限

2、pdb 必須具有 local undo mode 權限

3、若 cdb 不是歸檔模式則 pdb 必須打開爲只讀模式,否則遷移過去pdb打開會要求恢復。數據不一致。

4、關於數據庫連接必須滿足條件

     數據庫連接必須連接到 cdb 的 root 容器

     數據庫連接用戶必須具有create pluggable database系統權限和sysoper管理員權限

     數據庫連接用戶必須是一個公共用戶

5、源cdb平臺和目標cdb平臺的字節順序必須兼容


四、遠程cdb遷移一個pdb到本地cdb


4.1、在遠程 cdb 中創建公共用戶


create user c##useradmin identified by Passw0rd;

grant  CREATE PLUGGABLE DATABASE to c##useradmin container=all;

grant connect,resource,dba,sysoper to c##useradmin container=all;


4.2、在遷移的pdb中查詢是否存在創建的公共用戶


SELECT A.CON_ID,A.PDB_NAME,B.USERNAME FROM CDB_PDBS A ,CDB_USERS B WHERE A.CON_ID=B.CON_ID AND USERNAME='C##USERADMIN';


    CON_ID  PDB_NAME USERNAME

---------- -------------------- --------------------------------------------------

      3     YOUPDB C##USERADMIN


4.3、在本地cdb創建指向遠程cdb的數據庫連接


1、create public database link relocpdb connect to c##useradmin identified by Passw0rd using '192.168.5.41:1521/youcdb';


Database link created. 


2、數據庫鏈接的測試

SQL> select sysdate from dual@relocpdb;


SYSDATE 2、數據庫鏈接的測試

SQL> select sysdate from dual@relocpdb;


SYSDATE

---------

23-MAY-20


4.4、執行遷移(注意這裏遷移庫指定pdb名字應該和原來保持一致)


1、遷移源

SQL> show pdbs;


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED        READ ONLY  NO

3 YOUPDB        READ WRITE NO

 

2、目標庫

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

 

3、執行如下遷移語句


CREATE PLUGGABLE DATABASE youpdb  FROM youpdb@relocpdb RELOCATE AVAILABILITY MAX file_name_convert=('/opt/oracle/oradata/youcdb/youpdb/','/opt/oracle/oradata/mycdb/youpdb/');

Pluggable database created.


4、遷移後,遷移pdb在目標庫mycdb打開後,源pdb狀態變化如下


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 MYPDB1        READ WRITE NO

4 MYPDB2        READ WRITE NO

5 YOUPDB        READ WRITE NO


SQL> alter session set container=youpdb;


Session altered.


SQL> select name from v$datafile;


NAME

--------------------------------------------------------------------------------

/opt/oracle/oradata/mycdb/youpdb/system01.dbf

/opt/oracle/oradata/mycdb/youpdb/sysaux01.dbf

/opt/oracle/oradata/mycdb/youpdb/undotbs01.dbf

/opt/oracle/oradata/mycdb/youpdb/users01.dbf



遷移後源pdb自動mounted狀態

SQL> show pdbs;


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED       READ ONLY  NO

3 YOUPDB       MOUNTED


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章