7 付録

次の付録で説明する情報は、これまでのトピックの要件を満たすために必要になる可能性があります。

7.1 透過的データ暗号化ウォレットの設定

Oracle Database 12cリリース2以降では、ソース・データベースでTDEが有効になっていない場合、移行を開始する前に、TDEウォレットを構成する必要があります。Oracle Database 11gリリース2 (11.2.0.4)およびOracle Database 12cリリース1でのTDEの有効化は必要ありません。

ソースおよびターゲットのデータベースで透過的データ暗号化(TDE)が必須としてまだ構成されていない場合、次の手順に従って(TDE)ウォレットを設定します。TDEは有効になっている必要があり、ソースとターゲットの両方のデータベースのWALLETステータスはOPENに設定する必要があり、WALLET_TYPEAUTOLOGINに設定する必要があります。
  1. $ORACLE_HOME/network/admin/sqlnet.oraファイルにENCRYPTION_WALLET_LOCATIONを設定します。
    $ cat /u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/sqlnet.ora 
    
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
      (METHOD_DATA=(DIRECTORY=/u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/)))
    
  2. データベースに接続してキーストアを構成します。
    $ sqlplus "/as sysdba"
    SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin'
     identified by **********;
    keystore altered.

    非CDB環境の場合は、次のコマンドを実行します。

    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY **********;
    keystore altered.

    CDB環境の場合は、次のコマンドを実行します。

    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY ********** container = ALL;

    非CDB環境の場合は、次のコマンドを実行します。

    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY ********** with backup;
    keystore altered.

    CDB環境の場合は、次のコマンドを実行します。

    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY ********** with backup container = ALL;

    その後で、次を実行します。

    
    SQL> select * FROM v$encryption_keys;
    
  3. 自動ログインを設定します。
    SQL> SELECT * FROM v$encryption_wallet;
    
    WRL_TYPE	WRL_PARAMETER
    --------------------	--------------------------------------------------------------------------------
    STATUS                         WALLET_TYPE          WALLET_OR FULLY_BAC	CON_ID
    ------------------------------ -------------------- --------- ---------			----------
    FILE		/u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/
    OPEN                           PASSWORD             SINGLE    NO         0
    
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
     '/u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/' IDENTIFIED BY **********;
    keystore altered.
    

    Oracle RACデータベースを使用している場合は、各クラスタ・ノードの同じ場所の下または共有ファイル・システムにファイルをコピーします。

    /u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/ew* 
    /u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/cw*   
    
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE	WRL_PARAMETER
    --------------------	--------------------------------------------------------------------------------
    STATUS                         WALLET_TYPE          WALLET_OR FULLY_BAC	    CON_ID
    ------------------------------ -------------------- --------- ---------			----------
    FILE		/u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/
    OPEN                           PASSWORD             SINGLE    NO	         	0
    

    この段階で、PASSWORDベースのウォレットが有効になっています。AUTOLOGINベースのウォレットを有効にするには、この手順の残りのステップを完了します。

    パスワード・ウォレットを閉じます。

    SQL> administer key management set keystore close identified by **********;
    keystore altered.

    次に、autologinが構成されていることを確認します。TDE WALLETステータスをOPENに、WALLET_TYPEAUTOLOGINに設定します。そうしないと、ウォレット構成が正しく設定されません。

    $ sqlplus "/as sysdba"
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE WRL_PARAMETER
    -------------------- --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR FULLY_BAC CON_ID
    ------------------------------ -------------------- --------- --------- ---------
    FILE /u01/app/oracle/product/12.2.0.1/dbhome_2/network/admin/
    OPEN AUTOLOGIN SINGLE NO 

Oracle DatabaseをOracle Cloudに移行する際、Oracle Cloud内のOracleデータベースではTDEがデフォルトで有効になっていることに留意してください。Zero Downtime Migrationでは、ソースOracle DatabaseでTDEがデフォルトで有効になっている場合でも、ターゲット・データベースの暗号化を処理します。ただし、移行のスイッチオーバー・フェーズが発生すると、Oracle Cloud内の新しいプライマリ・データベースがオンプレミスの新しいスタンバイ・データベースに送信するREDOログは暗号化されます。そのため、スイッチ・バックと再度のロール・スワップによって、オンプレミス・データベースをプライマリに戻し、Oracle Cloud内のデータベースをスタンバイにすることにした場合、TDEがオンプレミスで有効になっていないかぎり、オンプレミス・データベースでは、REDOログによって適用された、新しく暗号化された変更済のブロックを読み取ることができなくなります。移行後の不一致を避けるために、移行プロセスの一環として最初のスイッチオーバーを実行する前に、適切なテストと検証を実行することをベスト・プラクティスとしてお薦めします。スナップショット・スタンバイ・データベースでのテストにはZero Downtime Migration以外のオプションがあり、続行する準備ができたら、スナップショット・スタンバイ・データベースを削除し、スイッチオーバーの実行および移行プロセスの完了をZero Downtime Migrationに指示します。

7.2 パスフレーズなしの秘密SSH鍵の生成

Zero Downtime Migrationサービス・ホスト、ソース・データベース・サーバーまたはターゲット・データベース・サーバーで、Zero Downtime Migrationソフトウェア・インストール・ユーザーに認証鍵ペアがパスフレーズなしで使用できない場合は、次の手順に従って新しいSSH鍵を生成できます。

Zero Downtime Migrationの操作時のSSH接続では、Zero Downtime Migrationサービス・ホストとソースおよびターゲットのデータベース・サーバーの間と、ソース・データベース・サーバーとターゲット・データベース・サーバー間に、パスフレーズの入力を必要としない非対話型の直接アクセスが必要です。

注意:

次の手順に、ソフトウェア・インストール・ユーザー用に秘密SSH鍵を生成する例を示します。この手順は、opcユーザーにも使用できます。

Zero Downtime Migrationソフトウェア・インストール・ユーザーとして、次のコマンドをZero Downtime Migrationサービス・ホストで実行します。

zdmuser> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/opc/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/opc/.ssh/id_rsa.
Your public key has been saved in /home/opc/.ssh/id_rsa.pub.
The key fingerprint is:
c7:ed:fa:2c:5b:bb:91:4b:73:93:c1:33:3f:23:3b:30 opc@rhost1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         . . .   |
|        S o . =  |
|         . E . * |
|            X.+o.|
|          .= Bo.o|
|          o+*o.  |
+-----------------+

このコマンドにより、id_rsaファイルおよびid_rsa.pubファイルがzdmuserホーム(/home/zdmuser/.sshなど)に生成されます。

Oracle Cloud Infrastructureコンソールを使用して公開鍵(/home/zdmuser/.ssh/id_rsa.pubなど)をソースおよびターゲットのデータベース・サーバーに追加することも、次に示すように、それらのサーバー上にあるauthorized_keysファイルに手動で追加することもできます。

次に示すように、Zero Downtime Migrationサービス・ホストの/home/zdmuser/.ssh/id_rsa.pubファイルの内容をOracle Cloud Infrastructureサーバーのopcユーザーの/home/opc/.ssh/authorized_keysファイルに追加します。

[opc@rptest.ssh]$ export PS1='$PWD>'
/home/opc/.ssh>ls
authorized_keys  authorized_keys.bkp  id_rsa  id_rsa.pub  known_hosts  zdmkey
/home/opc/.ssh>cat id_rsa.pub >> authorized_keys

秘密鍵を別のセキュアなファイルに保存し、ソースおよびターゲットのデータベース・サーバーへの接続に使用します。たとえば、権限を600に設定してzdm_service_node.ppkファイルを作成し、Zero Downtime Migrationサービス・ホストのソフトウェア・インストール・ユーザーのhome/.sshのファイルに秘密鍵ファイルを挿入し、ソースおよびターゲットのデータベース・サーバーに接続します。

7.3 事前チェックの検証

$ZDM_HOME/bin/zdmcli query job -jobid 5
rachu3dom.hu.oracle.com: Audit ID: 79
Job ID: 5
User: zdmuser
Client: rachu3dom
Scheduled job command: "zdmcli migrate database -sourcedb ZDM12201_phx1sp
 -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc
 -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1
 -targethome /u02/app/oracle/product/12.2.0/dbhome_3
 -backupuser backup_user@example.com
 -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp
 -tgtauth zdmauth -tgtarg1 user:opc
 -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL -eval"
Scheduled job execution start time: 2019-07-31T13:21:39+02.
 Equivalent local time: 2019-07-31 13:21:39
Current status: SUCCEEDED
Result file path:
 "/u01/app/zdmbase/chkbase/scheduled/job-5-2019-07-31-13:21:39.log"
Job execution start time: 2019-07-31 13:21:39
Job execution end time: 2019-07-31 13:35:20
Job execution elapsed time: 13 minutes 40 seconds
ZDM_GET_SRC_INFO .......... COMPLETED
ZDM_GET_TGT_INFO .......... COMPLETED
ZDM_SETUP_SRC ............. COMPLETED
ZDM_SETUP_TGT ............. COMPLETED
ZDM_GEN_RMAN_PASSWD ....... COMPLETED
ZDM_PREUSERACTIONS ........ COMPLETED
ZDM_PREUSERACTIONS_TGT .... COMPLETED
ZDM_VALIDATE_SRC .......... COMPLETED
ZDM_VALIDATE_TGT .......... COMPLETED

7.4 移行ジョブのフェーズのリスト

$ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp
 -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc
 -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1
 -targethome /u02/app/oracle/product/12.2.0/dbhome_3
 -backupuser backup_user@example.com
 -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp
 -tgtauth zdmauth -tgtarg1 user:opc
 -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -tgtarg3 sudo_location:/usr/bin/sudo -listphases
rachu3dom.hu.oracle.com: Processing response file ...
pause and resume capable phases for this operation: "
ZDM_GET_SRC_INFO
ZDM_GET_TGT_INFO
ZDM_SETUP_SRC
ZDM_SETUP_TGT
ZDM_GEN_RMAN_PASSWD
ZDM_PREUSERACTIONS
ZDM_PREUSERACTIONS_TGT
ZDM_VALIDATE_SRC
ZDM_VALIDATE_TGT
ZDM_OBC_INST_SRC
ZDM_OBC_INST_TGT
ZDM_BACKUP_FULL_SRC
ZDM_BACKUP_INCREMENTAL_SRC
ZDM_DISCOVER_SRC
ZDM_COPYFILES
ZDM_PREPARE_TGT
ZDM_SETUP_TDE_TGT
ZDM_CLONE_TGT
ZDM_FINALIZE_TGT
ZDM_CONFIGURE_DG_SRC
ZDM_SWITCHOVER_SRC
ZDM_SWITCHOVER_TGT
ZDM_MANIFEST_TO_CLOUD
ZDM_NONCDBTOPDB_PRECHECK
ZDM_NONCDBTOPDB_CONVERSION
ZDM_POSTUSERACTIONS
ZDM_POSTUSERACTIONS_TGT
ZDM_CLEANUP_SRC
ZDM_CLEANUP_TGT"

7.5 移行ジョブの出力

$ZDM_HOME/bin/zdmcli query job -jobid 6
rachu3dom.hu.oracle.com: Audit ID: 80
Job ID: 6
User: zdmuser
Client: rachu3dom
Scheduled job command: "zdmcli migrate database -sourcedb ZDM12201_phx1sp
 -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc
 -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -srcarg3 sudo_location:/usr/bin/sudo -targetnode exacstarget1
 -targethome /u02/app/oracle/product/12.2.0/dbhome_3
 -backupuser backup_user@example.com
 -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp
 -tgtauth zdmauth -tgtarg1 user:opc
 -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL"
Scheduled job execution start time: 2019-07-31T13:47:27+02. Equivalent
 local time: 2019-07-31 13:47:27
Current status: SUCCEEDED
Result file path:
 "/u01/app/zdmbase/chkbase/scheduled/job-6-2019-07-31-13:47:39.log"
Job execution start time: 2019-07-31 21:37:13
Job execution end time: 2019-07-31 21:40:18
Job execution elapsed time: 23 minutes 5 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_GEN_RMAN_PASSWD ........... COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_OBC_INST_SRC .............. COMPLETED
ZDM_OBC_INST_TGT .............. COMPLETED
ZDM_BACKUP_FULL_SRC ........... COMPLETED
ZDM_BACKUP_INCREMENTAL_SRC .... COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_CLONE_TGT ................. COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ COMPLETED
ZDM_SWITCHOVER_TGT ............ COMPLETED
ZDM_MANIFEST_TO_CLOUD ......... COMPLETED
ZDM_NONCDBTOPDB_PRECHECK ...... COMPLETED
ZDM_NONCDBTOPDB_CONVERSION .... COMPLETED
ZDM_POSTUSERACTIONS ........... COMPLETED
ZDM_POSTUSERACTIONS_TGT ....... COMPLETED
ZDM_CLEANUP_SRC ............... COMPLETED
ZDM_CLEANUP_TGT ............... COMPLETED