物理移行を使用した移行

これらの手順では、オンラインまたはオフラインの物理移行を実行する方法について説明します。物理的移行を実行する前に、次の点に注意してください。

  • x86サーバーのソース・データベースを暗号化する必要はありません。ゼロ・ダウンタイム移行では、移行中にターゲット・データベースが暗号化されます。
  • Transparent Data Encryption (TDE)ウォレットは、ソース・データベースが暗号化されていない場合でも、移行前にソース・データベースで定義する必要があります。
  • ソース・データベースとターゲット・データベースのsysパスワード、ウォレット・パスワード、データベース・バージョンおよびパッチ・レベルは同じである必要があります。
  • ダウンタイムなしの移行では、コンテナ・データベース(CDB)CDBに移行され、非CDBが非CDBに移行されます。

ゼロ・ダウンタイム移行で物理移行を実行するには:

  1. 別のサーバーにZero Downtime Migrationソフトウェアをダウンロードしてインストールします。zdmuserを使用してゼロダウンタイム移行ソフトウェアを実行します。
  2. zdmuserとしてZDMサーバーにログインします。
  3. sshキー・ペアを生成します。
  4. zdmuserからソースx86サーバー(root/privilege-sudoer user)およびターゲットOracle Exadata Database Service on Cloud@Customerデータベース(opc user)上のすべてのVMクラスタ・ノードへのパスワードなしのsshを有効にします。
  5. Oracle ZFS Storage Appliance (NAS)で、移行の進行中にソースデータベースの RMANバックアップのプレースホルダーとして使用するネットワークファイルシステム(NFS)共有を作成します。
    ターゲットデータベースは、このNFS共有に保存されているバックアップから復元されます。
  6. ソース・データベースとターゲット・データベースのすべてのノードで、同じマウント・ポイントにNFS共有をマウントします。すべてのユーザーが、ソースとターゲットの両方で読取り、書込みおよび実行(rwx)権限を持っていることを確認します。
  7. OCI GUIまたはREST APIを使用して、Oracle Exadata Database Service on Cloud@Customerターゲット・データベースを作成します。次のようにターゲット・データベースを構成します。
    • ターゲット・データベースとソース・データベースの名前が同じで、DB_UNIQUE_NAMEが異なる必要があります。
    • ソース・データベースとターゲット・データベースのsysパスワード、ウォレット・パスワード、データベース・バージョンおよびパッチ・レベルは同じである必要があります。
    • バックアップの保存先を選択したり、自動バックアップを有効にしないでください。これらの設定は、データベースがソースからターゲットに移行された後に有効にできます。
  8. ソース・データベースがArchivelogモードで構成されていることを確認します。Archivelogが有効になっていない場合は、後述のEnable Archivelog Modeを参照してください。
  9. ソース・データベースが暗号化されていない場合は、後述のTransparent Data Encryption (TDE)キーストアの構成を参照してください。データは暗号化する必要はなく、物理移行に必要なのはTDEキーストアのみです。Make sure the keystore (wallet) password is the same as the sys/wallet password used to create the target database in Oracle Exadata Database Service on Cloud@Customer.
  10. ゼロ・ダウンタイム移行のレスポンス・ファイルを作成して移行を実行します。主要なパラメータは次のとおりです。
    • TGT_DB_UNIQUE_NAME: Database unique name for the target Oracle Exadata Database Service on Cloud@Customer database.
    • MIGRATION_METHOD: OFFLINE_PHYSICALまたはONLINE_PHYSICAL
    • DATA_TRANSFER_MEDIUM: NFS
    • PLATFORM_TYPE: EXACC
    • BACKUP_PATH: ステップ4のソースおよびターゲットでのネットワーク・ファイル・システム(NFS)共有のマウント・ポイント。
    • SHUTDOWN_SRC: TRUE
  11. ゼロ・ダウンタイム移行の予行演習移行ジョブ(-eval)を実行して、移行の前提条件をすべて検証します。次に例を示します。
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10 \
    -eval
  12. ゼロ・ダウンタイム移行ジョブを実行します。次に例を示します。
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10
物理的なオンライン移行中、ゼロ・ダウンタイム移行では、移行中にデータベースが常にオンラインになるように、ソースとターゲットの間でOracle Data Guardが構成されます。Oracle Data Guardは、ソース・データベースの変更をターゲット・データベースに同期します。
これで物理的な移行が完了します。

アーカイブ・ログ・モードの有効化

ゼロ・ダウンタイムの物理移行では、ソース・データベースでアーカイブ・ログ・モードを有効にする必要があります。これらのステップでは、ソース・データベースでArchivelogモードを構成する方法について説明します。

  1. ソース・データベースがArchivelogモードで構成されていないことを確認します。
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    NOARCHIVELOG
  2. ソース・データベース・ログのアーカイブ先を構成します。次の例は、Linuxファイル・システムにDBファイルがあるソース・データベースからのものです。DBファイルがOracle ASMディスク・グループに格納されている場合、LOCATIONは異なります。
    SQL> alter system set 
    log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/db_name/arc' 
    scope=both;
    System altered.
    SQL> select destination,STATUS from v$archive_dest where status='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    /u01/app/oracle/oradata/db_name/arc
    VALID
  3. データベースを停止してから、データベースをマウントします。
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started
  4. アーカイブ・ログ・モードを有効にします。
    alter database archivelog;
  5. データベースをオープンします。
    alter database open;
  6. データベースがArchivelogモードであることを確認します。
    SQL> select destination,STATUS from v$archive_dest where statuS='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    /u01/app/oracle/oradata/db_name/arc
    VALID
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    ARCHIVELOG

Transparent Data Encryption (TDE)キーストアの構成

ゼロ・ダウンタイム移行の物理移行には、(ソース・データベースが暗号化されていない場合でも)auto_login TDE暗号化キーストア/ウォレットが必要です。このキーストアは、ターゲット・データベース・キーストアと同じパスワードで構成する必要があります。これらのステップでは、ソース・データベースでキーストアを構成する方法について説明します。

  1. データベースにデフォルトのキーストアの場所が構成されているかどうかを確認します。
    SQL> select * from v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    NOT_AVAILABLE UNKNOWN SINGLE NONE UNDEFINED
    1
    SQL>
  2. キーストアのディレクトリがまだ存在しない場合は、キーストアのディレクトリを作成します。
    mkdir -p /u01/app/oracle/admin/db_name/wallet
  3. sqlnet.oraファイルを格納するディレクトリを作成します。
    mkdir -p $ORACLE_HOME/network/admin/
  4. ステップ1のキーストア情報を使用して、ディレクトリ$ORACLE_HOME/network/admin/sqlnet.oraファイルを作成します。
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
     (METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/db_name/wallet)))
  5. パスワードで保護されたキーストアを作成します。ターゲットのOracle Exadata Database Service on Cloud@Customerデータベース・キーストアもこのパスワードで構成する必要があることに注意してください。
    SQL>administer key management create keystore 
    '/u01/app/oracle/admin/db_name/wallet' identified by keystore_password;
  6. キーストアを開きます。
    ソース・データベースが非CDBの場合は、container = ALLを削除します。
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY 
    keystore_password container = ALL;
  7. キーストアのバックアップを作成します。
    ソース・データベースが非CDBの場合は、container = ALLを削除します。
    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password
    with backup container = ALL;
  8. キーストアが作成され、バックアップされたことを確認します。
    SQL> SELECT * FROM v$encryption_keys;
    Snip…
    ACTIVATING_PDBNAME
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    ATOlrcGaa0/iv/dFeRSkNSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    db_name
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    1 86B637B62FDF7A65E053F706E80A27CA
    Snip…
  9. ステップ5で作成したキーストアからauto_loginキーストアを作成します。
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM 
    KEYSTORE '/u01/app/oracle/admin/db_name/wallet' IDENTIFIED BY 
    keystore_password ;
  10. ステップ5のキーストアを閉じます。
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY 
    keystore_password;
  11. auto_loginキーストアがまだ開いていることを確認します。
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    OPEN AUTOLOGIN SINGLE NONE NO