注意:

使用資料庫連結在 Oracle Base Database Service 的資料庫系統之間從遠端複製可插式資料庫

簡介

您可以在資料庫系統中,於相同的資料庫 (容器資料庫) 內建立可插式資料庫 (PDB) 的複製。此作業稱為本機複製。您可以透過主控台輕鬆達到此目的。您也可以將 PDB 複製到不同資料庫系統的不同資料庫 (容器資料庫)。此作業稱為遠端複製。

遠端複製需要兩個資料庫系統,因為每個資料庫系統都只支援一個資料庫 (容器資料庫)。主控台尚未提供遠端複製 PDB。您可以使用 RemoteclonePluggabledatabase API、使用資料庫連結及 API 型工具 (包括 OCI CLI、SDK 及 Terraform) 建立遠端複製。

本教學課程介紹使用 Oracle Base Database Service 的資料庫連結遠端複製 PDB 的步驟。

目標

使用資料庫連結將 PDB 遠端線上複製至 Oracle Base Database Service 中的不同資料庫系統。

必要條件

  1. 瞭解 Oracle Base Database Service
  2. 兩個 Oracle 基本資料庫服務可位於相同的 VCN 或不同的 VCN 內。
  3. 如果這些資料庫系統位於不同的 VCN VCN 對等互連,便會使用 VCN 對等互連。
  4. 以下為本教學課程中使用的環境名稱,以便於瞭解。
    • 來源資料庫系統名稱 :SOURCE
    • 目的地資料庫系統名稱:TARGET
    • 來源 PDB 名稱:SOURCE_PDB1
    • 複製 PDB 名稱:CLONE_PDB1

作業 1:準備來源環境

  1. 使用下列命令,在來源 CDB 上建立供複製用途的使用者。

    CREATE USER c##clone IDENTIFIED BY <PASSWORD> CONTAINER=ALL;
    GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone CONTAINER=ALL;
    
  2. 檢查來源 PDB 上的物件內容:在此範例中,我們將 TEST.PERSONS 表格視為參考。

    • 綱要名稱:TEST

    • 表格名稱:PERSONS

      來源 PDB 物件詳細資訊

作業 2:準備目的地環境

  1. 確定目的地 CDB 上的 local_undo_enabled 設為 true。

  2. 確定目的地 CDB 處於 archivelog 模式。

    注意:當目的地 CDB 處於 ARCHIVELOG 模式和 LOCAL UNDO MODE 時,來源 PDB 可以在讀取 / 寫入模式開啟,並且在複製處理作業期間可以進行作業。此技術稱為熱複製。

    檢查目標 CDB 本機還原與存檔日誌詳細資訊

  3. 更新位於目的地資料庫系統節點之 $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)
        )
      )
    
  4. 在指向來源 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';
    
  5. 檢查透過資料庫連結進行的連線是否適用於目的地 CDB。由於我們使用的資料庫連結名稱與所連線資料庫的名稱不同,因此必須另外將 global_names parameter 設為 false。否則,您將會發生 ORA-02085 錯誤。

    alter session set global_names=false;
    
    select * from dual@clone_pdb_dblink;
    

    透過 dblink 查詢

作業 3:複製遠端 PDB

  1. 登入目的地 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>;
    

    在目標 CDB 上建立 PDB 複製

  2. 以讀取 / 寫入模式開啟複製的 PDB。建立 PDB 之後,該 PDB 處於掛載模式。您必須以讀取 / 寫入模式開啟新複製的 PDB,Oracle Database 才能將新 PDB 整合到目的地 CDB 中。

    alter pluggable database CLONE_PDB1 open read write;
    
  3. 確認複製 PDB 時是否已複製所有物件資料:

    驗證複製的 PDB

我們可以看到資料已經順利從來源 PDB 複製到目的地資料庫系統上的複製 PDB。

確認書

其他學習資源

探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。

如需產品文件,請造訪 Oracle Help Center