共計 2989 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章主要介紹“遠程 CDB 中怎么將名為 jypdb 的 PDB 進行遷移”,在日常操作中,相信很多人在遠程 CDB 中怎么將名為 jypdb 的 PDB 進行遷移問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”遠程 CDB 中怎么將名為 jypdb 的 PDB 進行遷移”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
假設滿足以下條件:
. 當前用戶在被遷移 PDB 所在的 CDB 的 root 容器中有 create pluggable database 系統權限
. 目標 CDB 連接 PDB 當前 CDB 的 dblink 名為 jycdb_link。dblink 的創建語句如下:
create public database link jycdb_link connect to c##yyl
identified by yyl using jy
PDB 的當前 CDB 中的公共用戶 c##yyl 有 sysoper 管理權限與 create pluggable database 系統權限
. 不指定 path_prefix 子句
. 不指定 file_name_convert 與 create_file_dest 子句。當啟用 OMF 或設置 pdb_file_name_convert 參數時,基于 OMF 的配置或參數的設置文件會被移動到新目錄。
. 對 PDB 不指定存儲限制。因此不指定 storage 子句
. 在目標目錄中不存在相同名字的 temp 文件,那么新的 temp 文件會被創建。因此不指定 tempfile reuse 子句。
. 連接會被自動從源 PDB 遷移到遷移后的 PDB。因此指定 availability max 子句。
執行以下語句來將 PDB(jypdb)從遠程 CDB 遷移到當前 CDB 中:
1. 在遠程 CDB 中創建公共用戶 c##yyl
SQL create user c##yyl identified by yyl container=all;
User created.
SQL grant sysoper,connect,resource,create pluggable database to c##yyl container=all;
Grant succeeded.
2. 檢查遠程 CDB 是否使用本地 undo 與歸檔
SQL COLUMN property_name FORMAT A30
SQL COLUMN property_value FORMAT A30
SQL SELECT property_name, property_value
2 FROM database_properties
3 WHERE property_name = LOCAL_UNDO_ENABLED
PROPERTY_NAME PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED TRUE
------------
ARCHIVELOG
因為遠程 CDB 使用本地 undo 與歸檔,因此不需要將遠程數據庫設置為只讀模式
3. 在本地 CDB(jy)中創建指定遠和 CBD(jy)的 dblink。連接串中要包含 (SERVER=DEDICATED) 條目錄,否則會收到 ORA-01031: insufficient privileges 錯誤
SQL create public database link jycdb
2 connect to c##yyl identified by yyl
3 using (DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.130.173)(PORT = 1521))
6 )
7 (CONNECT_DATA =
8 (SERVER = DEDICATED)
9 (SERVICE_NAME =jy)
10 )
11 )
Database link created.
X
4. 檢查本地 CDB 是否使用了本地 undo 與歸檔
SQL COLUMN property_name FORMAT A30
SQL COLUMN property_value FORMAT A30
SQL SELECT property_name, property_value
2 FROM database_properties
3 WHERE property_name = LOCAL_UNDO_ENABLED
PROPERTY_NAME PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED TRUE
SQL SELECT log_mode FROM v$database;
LOG_MODE
------------
ARCHIVELOG
5. 在本地 CDB 執行下面的語句來克隆可刷新的 PDB
SQL create pluggable database jypdb from jypdb@jycdb relocate availability max;
Pluggable database created.
SQL select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB READ WRITE
以 read write 方式來打開 PDB 以完成遷移操作
SQL alter pluggable database jypdb open;
Pluggable database altered.
SQL alter session set container=jypdb;
Session altered.
SQL set long 200
SQL set linesize 200
SQL select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
JYPDB READ WRITE
刪除公共 dblink
SQL drop public database link jycdb;
Database link dropped.
檢查遠程 PDB 可以看到已經被刪除了
到此,關于“遠程 CDB 中怎么將名為 jypdb 的 PDB 進行遷移”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!