ノート:

データベース・リンクを使用した、Oracle Base Database ServiceのDBシステム間のプラガブル・データベースのオンライン・クローニング

イントロダクション

DB Systemの同じデータベース(コンテナ・データベース)内にプラガブル・データベース(PDB)のクローンを作成できます。この操作はローカル・クローニングと呼ばれます。これはコンソールを使用して簡単に実行できます。PDBを別のDBシステムの別のデータベース(コンテナ・データベース)にクローニングすることもできます。この操作はリモート・クローニングと呼ばれます。

各DB Systemは1つのデータベース(コンテナ・データベース)のみをサポートするため、リモート・クローニングには2つのDB Systemが必要です。PDBのリモート・クローニングはまだコンソールでは使用できません。データベース・リンクおよびOCI CLI、SDK、TerraformなどのAPIベースのツールを使用して、RemoteclonePluggabledatabase APIを使用してリモート・クローンを作成できます。

このチュートリアルでは、Oracle Base Database Serviceのデータベース・リンクを使用してPDBをリモート・クローニングするステップを示します。

目的

データベース・リンクを使用した、Oracle Base Database Service内の別のDBシステムへのPDBのリモート・オンライン・クローニング。

前提条件

  1. Oracle Base Database Serviceの理解。
  2. 同じVCN内または異なるVCN内の2つのOracleベース・データベース・サービス。
  3. これらのDBシステムが別のVCNVCNピアリング上にある場合、VCNピアリング。
  4. 次に、このチュートリアルで使用する環境名を示します。
    • ソースDBシステム名: SOURCE
    • 宛先DBシステム名: 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のローカルUNDOおよびアーカイブ・ログの詳細の確認

  3. 宛先DBシステム・ノードの$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はマウント・モードになります。Oracle Databaseで新しいPDBを宛先CDBに統合するには、クローニングした新しいPDBを読取り/書込みモードでオープンする必要があります。

    alter pluggable database CLONE_PDB1 open read write;
    
  3. すべてのオブジェクト・データがクローンPDBにクローニングされているかどうかを確認します。

    クローニングされたPDBの検証

データがソースPDBから宛先DBシステムのクローンPDBに正常にコピーされたことがわかります。

承認

その他の学習リソース

docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。