注意:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代為您雲端環境特定的值。
使用資料庫連結在 Oracle Base Database Service 的資料庫系統之間從遠端複製可插式資料庫
簡介
您可以在資料庫系統中,於相同的資料庫 (容器資料庫) 內建立可插式資料庫 (PDB) 的複製。此作業稱為本機複製。您可以透過主控台輕鬆達到此目的。您也可以將 PDB 複製到不同資料庫系統的不同資料庫 (容器資料庫)。此作業稱為遠端複製。
遠端複製需要兩個資料庫系統,因為每個資料庫系統都只支援一個資料庫 (容器資料庫)。主控台尚未提供遠端複製 PDB。您可以使用 RemoteclonePluggabledatabase API、使用資料庫連結及 API 型工具 (包括 OCI CLI、SDK 及 Terraform) 建立遠端複製。
本教學課程介紹使用 Oracle Base Database Service 的資料庫連結遠端複製 PDB 的步驟。
目標
使用資料庫連結將 PDB 遠端線上複製至 Oracle Base Database Service 中的不同資料庫系統。
必要條件
- 瞭解 Oracle Base Database Service 。
- 兩個 Oracle 基本資料庫服務可位於相同的 VCN 或不同的 VCN 內。
- 如果這些資料庫系統位於不同的 VCN VCN 對等互連,便會使用 VCN 對等互連。
- 以下為本教學課程中使用的環境名稱,以便於瞭解。
- 來源資料庫系統名稱 :SOURCE
- 目的地資料庫系統名稱:TARGET
- 來源 PDB 名稱:SOURCE_PDB1
- 複製 PDB 名稱:CLONE_PDB1
作業 1:準備來源環境
-
使用下列命令,在來源 CDB 上建立供複製用途的使用者。
CREATE USER c##clone IDENTIFIED BY <PASSWORD> CONTAINER=ALL; GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone CONTAINER=ALL; -
檢查來源 PDB 上的物件內容:在此範例中,我們將
TEST.PERSONS表格視為參考。-
綱要名稱:TEST
-
表格名稱:PERSONS

-
作業 2:準備目的地環境
-
確定目的地 CDB 上的
local_undo_enabled設為 true。 -
確定目的地 CDB 處於
archivelog模式。注意:當目的地 CDB 處於 ARCHIVELOG 模式和 LOCAL UNDO MODE 時,來源 PDB 可以在讀取 / 寫入模式開啟,並且在複製處理作業期間可以進行作業。此技術稱為熱複製。

-
更新位於目的地資料庫系統節點之
$ORACLE_HOME/network/admin/目錄中的tnsnames.ora檔案中來源 CDB 服務名稱位址。<addressname> = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <service_name>) ) )以下為完整的範例:
SOURCE_CDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = source.**************.*****.oraclevcn.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SOURCE_iad1zr.**************.*****.oraclevcn.com) ) ) -
在指向來源 CDB 的目的地 CDB 上建立資料庫連結。
CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by <PASSWORD> using '<ADDRESSNAME>'; CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by ************** using 'SOURCE_CDB'; -
檢查透過資料庫連結進行的連線是否適用於目的地 CDB。由於我們使用的資料庫連結名稱與所連線資料庫的名稱不同,因此必須另外將
global_names parameter設為 false。否則,您將會發生 ORA-02085 錯誤。alter session set global_names=false; select * from dual@clone_pdb_dblink;
作業 3:複製遠端 PDB
-
登入目的地 CDB 會是將來源 PDB 複製到目的地 CDB 中的時機。提供目的地環境的
TDE_WALLET_PASSWORD。alter session set global_names=false; create pluggable database <CLONE_PDB_NAME> from <SOURCE_PDB_NAME>@<DB_LINK_NAME> keystore identified by <TDE_WALLET_PASSWORD>; create pluggable database CLONE_PDB1 from SOURCE_PDB1@clone_pdb_dblink keystore identified by <TDE_WALLET_PASSWORD>;
-
以讀取 / 寫入模式開啟複製的 PDB。建立 PDB 之後,該 PDB 處於掛載模式。您必須以讀取 / 寫入模式開啟新複製的 PDB,Oracle Database 才能將新 PDB 整合到目的地 CDB 中。
alter pluggable database CLONE_PDB1 open read write; -
確認複製 PDB 時是否已複製所有物件資料:

我們可以看到資料已經順利從來源 PDB 複製到目的地資料庫系統上的複製 PDB。
相關連結
確認書
- 作者 - 雲端工程師資深 Leona Dsouza
其他學習資源
探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。
如需產品文件,請造訪 Oracle Help Center 。
Clone a Pluggable Database online remotely between DB Systems in Oracle Base Database Service using database link
F87175-01
September 2023
Copyright © 2023, Oracle and/or its affiliates.