Oracle® Zero Downtime Migration

リリース・ノート

リリース19c

F25770-03(原本部品番号:F19479-03)

2020年3月

このリリース・ノートでは、最新の製品ソフトウェアおよびドキュメントのダウンロード方法を示し、既知の問題およびトラブルシューティング情報について説明します。

1.1 Zero Downtime Migrationのインストール・ソフトウェアのダウンロード

最新のZero Downtime Migrationソフトウェア・バージョンを新規インストールする場合は、https://www.oracle.com/database/technologies/rac/zdm-downloads.htmlにアクセスします。

1.2 Zero Downtime Migrationのドキュメントのダウンロード

Zero Downtime Migrationのドキュメントは、https://docs.oracle.com/en/database/oracle/zero-downtime-migration/で参照してダウンロードできます。

1.3 Zero Downtime Migrationのランブック

Zero Downtime Migrationのランブックは、https://docs.oracle.com/en/database/oracle/zero-downtime-migration/19.2/books.htmlにあります。

ランブックは、Zero Downtime Migrationを使用したOracle Cloudへの移行の短縮形式です。Zero Downtime Migrationの概念および詳細は、Zero Downtime Migrationを使用したOracle Cloudへの移行を参照してください。

1.4 一般情報

このリリースの時点では、Zero Downtime Migrationの動作について、留意する必要がある詳細および考慮事項がいくつかあります。

1.4.1 ソース・データベースとターゲット・データベース間のパッチ・レベルの相違

ソースおよびターゲットのデータベースのメジャー・データベース・リリース番号は、移行ジョブが正常に終了するために一致する必要があります。ただし、ターゲット・データベースのパッチ・レベルがソース・データベース以上である場合、ソース・データベースとターゲット・データベース間でパッチ・レベルの相違が存在することがあります。

たとえば、ソース・データベースがOracle Database 12cリリース1 (12.1.0.2)の場合、ターゲット・データベースもリリース12.1.0.2である必要があります。ただし、ターゲット・データベースのパッチ・レベルがソース・データベースのパッチ・レベルより高い場合があります。たとえば、ターゲット・データベースがJan 2019 PSU/BPであり、ソース・データベースがOct 2018 PSU/BPである場合は、データベースの移行後にdatapatchを実行する必要があります。

移行プロシージャの一環としてのパッチチェックを回避するには、ZDMCLI MIGRATE DATABASEコマンドで-ignore PATCH_CHECKオプションを使用できます。

1.4.2 インストール・ユーザーによるZDMSERVICEスクリプトの実行のみ可能

zdmserviceスクリプトの実行を妨げられる場合は、インストール・ユーザーのみがzdmserviceスクリプトを実行する必要があることに注意してください。セキュリティ上の理由から、zdmserviceスクリプトはzdmserviceユーザー以外のユーザーが実行しないでください。zdmservice以外のインストール・ユーザーによるzdmserviceの実行を回避するには、zdmserviceバイナリ権限を700に変更します。

1.4.3 ソース・データベースに追加されたUNDO表領域

Zero Downtime Migrationでは、本番データベースに含まれるインスタンスが少なくなると、ターゲット・インスタンス数と一致するようにUNDO表領域が本番データベースに追加されます。

Zero Downtime MigrationによってUNDO表領域がソース・データベースに追加されるのを防ぐには、スイッチオーバーまでターゲット・データベースのノード数をソース・データベースのノード数と一致させ、スイッチオーバー後に追加ノードをターゲット・データベースに追加できます。

1.4.4 クロス・エディションの移行はサポートされていません

Zero Downtime Migrationは、Enterprise EditionのデータベースからStandard Editionのデータベースへの移行には使用できません。その逆も同様です。

1.5 既知の問題

このリリースの時点では、Zero Downtime Migrationには、まれな状況で発生する可能性がある問題がいくつかあります。各問題の回避策が提供されます。

1.5.1 接続の問題

1.5.1.1 一般的な接続の問題

問題: Zero Downtime Migrationサービス・ノードとソース環境またはターゲット環境の間、またはソース環境とターゲット環境の間で接続の問題が発生した場合は、次の領域を確認してください。

解決策: SSH構成ファイル(/root/.ssh/config)に適切なエントリがあることを確認します。

Host *
  ServerAliveInterval 10
  ServerAliveCountMax 2

Host rptest
  HostName 192.0.2.9
  IdentityFile ~/.ssh/rptest.ppk
  User opc
  ProxyCommand /usr/bin/nc -X connect -x www-proxy.example.com:80 %h %p

プロキシ・サーバーを接続に使用していない場合は、プロキシの設定が必要ないことがあります。たとえば、ソース・データベース・サーバーがOracle Cloud Infrastructure Classic上にある場合、ProxyCommandで始まる行を削除またはコメントにすることができます。

ソースがOracle RACデータベースの場合は、必ず~/.ssh/configファイルをすべてのソースOracle RACサーバーにコピーします。SSH構成ファイルは、最初のOracle RACサーバーのホスト名、パブリックIPアドレスおよび秘密鍵の属性を参照します。

1.5.1.2 フェーズZDM_GET_TGT_INFOで評価が失敗

問題: 移行プロセスの評価(-eval)フェーズ中、ZDM_GET_TGT_INFOフェーズで、Oracle RACインスタンスの移行に関する次のエラーで評価が失敗します。

Executing phase ZDM_GET_TGT_INFO
Retrieving information from target node "trac11" ...
PRGZ-3130 : failed to establish connection to target listener from nodes [srac11, srac12]
PRCC-1021 : One or more of the submitted commands did not execute successfully.
PRCC-1025 : Command submitted on node srac11 timed out after 15 seconds.
PRCC-1025 : Command submitted on node srac12 timed out after 15 seconds.

解決策:

  1. ソース・データベースのSCAN名を取得し、ソース・データベース・サーバーのパブリックIPアドレスおよびソース・データベースのSCAN名を使用して、両方のターゲット・データベース・サーバー上にある/etc/hostsファイルに追加します。次に例を示します。
    192.0.2.1 source-scan
  2. ターゲット・データベースのSCAN名を取得し、ターゲット・データベース・サーバーのパブリックIPアドレスおよびターゲット・データベースのSCAN名を使用して、両方のソース・データベース・サーバー上にある/etc/hostsファイルに追加します。次に例を示します。
    192.0.2.3  target-scan

ノート:

SCAN IPアドレスが/etc/hostsファイルに追加されないこの問題は、場合によってはSCAN IPアドレスがプライベートIPアドレスとして割り当てられているために解決できないことがあるため、発生する可能性があります。
1.5.1.3 フェーズZDM_GET_SRC_INFOで評価が失敗

問題: 移行プロセスの評価(-eval)フェーズ中、ZDM_GET_SRC_INFOフェーズで、ソースのシングル・インスタンスがGrid Infrastructureなしでデプロイされていることに関する次のエラーで評価が失敗します。

Executing phase ZDM_GET_SRC_INFO
retrieving information about database "zdmsidb" ...
PRCF-2056 : The copy operation failed on node: "zdmsidb".
Details: {1}
PRCZ-4002 : failed to execute command "/bin/cp" using the privileged
execution plugin "zdmauth" on nodes "zdmsidb"
scp: /etc/oratab: No such file or directory

解決策: /etc/oratabファイル内にORACLE_HOME値エントリを、値db_name:$ORACLE_HOME:Nを使用して作成します。次に例を示します。

zdmsidb:/u01/app/oracle/product/12.2.0.1/dbhome_1:N
1.5.1.4 Object Storageがアクセス不可
問題: ソースまたはターゲットのデータベース・サーバーからObject Storageにアクセスすると、次のエラーが発生して失敗することがあります。
About to connect() to swiftobjectstorage.xx-region-1.oraclecloud.com port 443 (#0)
Trying 192.0.2.1... No route to host
Trying 192.0.2.2... No route to host
Trying 192.0.2.3... No route to host
couldn't connect to host
Closing connection #0
curl: (7) couldn't connect to host

解決策: ソース・データベース・サーバーからObject Storageに接続するのにプロキシが必要である場合は、Zero Downtime Migrationサービス・ノードで、レスポンス・ファイル・テンプレート($ZDM_HOME/rhp/zdm/template/zdm_template.rsp)に、次に示すObject Storage Serviceのプロキシ・ホストおよびポートのパラメータを設定します。次に例を示します。

SRC_OSS_PROXY_HOST=www-proxy-source.example.com
SRC_OSS_PROXY_PORT=80

ターゲット・データベース・サーバーからObject Storageに接続するのにプロキシが必要である場合は、レスポンス・ファイル・テンプレート($ZDM_HOME/rhp/zdm/template/zdm_template.rsp)に、次に示すObject Storage Serviceのプロキシ・ホストおよびポートのパラメータを設定します。次に例を示します。

TGT_OSS_PROXY_HOST=www-proxy-target.example.com
TGT_OSS_PROXY_PORT=80

1.5.2 全体バックアップ・フェーズ(ZDM_BACKUP_FULL_SRC)の問題

1.5.2.1 ORA-19836でバックアップが失敗

問題: 次のいずれかのエラーで、ソース・データベースの全体バックアップが失敗します。

</ERRLINE><ERRLINE>ORA-19836: cannot use passphrase encryption for this backup
</ERRLINE><ERRLINE>RMAN-03009: failure of backup command on C8 channel at 04/29/2019
      20:42:16
</ERRLINE><ERRLINE>ORA-19836: cannot use passphrase encryption for this backup
</ERRLINE><ERRLINE>RMAN-03009: continuing other job steps, job failed will not be
      re-run

解決策1: この問題は、誤ったケースで-sourcedb値を指定した場合に発生する可能性があります。たとえば、SQLコマンドSHOW PARAMETER DB_UNIQUE_NAMEから取得した値がzdmsdbの場合は、次の例に示すように小文字でzdmsdbと指定する必要があり、大文字でZDMSDBと指定しません。

zdmuser> ./zdmcli migrate database -sourcedb zdmsdb -sourcenode srcnode -srcroot
-targetnode rptest -targethome /u01/app/oracle/product/12.1.0.2/dbhome_1
-backupuser backup_user@example.com -rsp /scratch/zdm/zdm_template_zdmsdb.rsp
-tgtauth zdmauth -tgtarg1 user:opc
-tgtarg2 identity_file:/home/oracle/.ssh/zdm_service_node.ppk
-tgtarg3 sudo_location:/usr/bin/sudo

解決方法2: Oracle Database 12cリリース1以降では、次に示すように、$ORACLE_HOME/network/admin/sqlnet.oraがTDEウォレットの正しい場所を指していることを確認します。

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

Oracle Database 11gリリース2 (11.2.0.4)のみでは、次に示すように$ORACLE_HOME/network/admin/sqlnet.oraがTDEウォレットの正しい場所を指していることを確認し、SQL文SHOW PARAMETER DB_UNIQUE_NAMEを使用して取得した値で変数$ORACLE_UNQNAMEを置換します。

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

次に例を示します。

SQL> show parameter db_unique_name
db_unique_name    string      oci112_region
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/oci112_region)))

解決策3: 次の問合せを実行して、ウォレットのステータスがOPENであることを確認します。

SQL> select * from v$encryption_wallet
WRL_TYPE
-------------
WRL_PARAMETER
-------------
STATUS
-------------
file
/opt/oracle/dcs/commonstore/wallets/tde/abc_test
OPEN
1.5.2.2 ORA-19914およびORA-28365でバックアップが失敗

問題: 次のエラーで、ソース・データベースの全体バックアップが失敗します。

channel ORA_SBT_TAPE_3: backup set complete, elapsed time: 00:00:15
channel ORA_SBT_TAPE_3: starting compressed full datafile backup set
channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set
input datafile file number=00005 name=+DATA/ODA122/7312FA75F2B202E5E053050011AC5977/DATAFILE/system.382.1003858429
channel ORA_SBT_TAPE_3: starting piece 1 at 25-MAR-19
RMAN-03009: failure of backup command on ORA_SBT_TAPE_3 channel at 03/25/2019 19:09:30
ORA-19914: unable to encrypt backup
ORA-28365: wallet is not open
continuing other job steps, job failed will not be re-run
channel ORA_SBT_TAPE_3: starting compressed full datafile backup set
channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set

解決策: ウォレットがデータベースでオープンされていることを確認し、CDBの場合は、ウォレットがCDB、すべてのPDBおよびPDB$SEEDでオープンされていることを確認します。TDEの設定の詳細は、Zero Downtime Migrationドキュメントの透過的データ暗号化ウォレットの設定を参照してください。

1.5.2.3 Object Storage Bucket Nameという名前のバケットがネームスペースNamespaceに存在しないか、アクセスする権限がない

この問題の説明および回避策については、Oracle Supportナレッジ・ベースの記事『'<Object Storage Bucket Name>'という名前のバケットがネームスペース'<Namespace>'に存在しないか、アクセスする権限がありません(ドキュメントID 2605518.1)』を参照してください。

https://support.oracle.com/rs?type=doc&id=2605518.1

1.5.3 透過的データ暗号化に関連する問題

1.5.3.1 透過的データ暗号化の一般情報

ソース・データベースのリリースによっては、透過的データ暗号化(TDE)構成が必要な場合があります。

  • Oracle Database 12cリリース2以降

    Oracle Database 12cリリース2以降のリリースの場合、TDE構成は必須であり、ソース・データベースで有効になっている必要があります。

    TDEが有効になっていない場合、データベースの移行は失敗します。

    リストア時に、データベース表領域はウォレットを使用して暗号化されます。

  • Oracle Database 12cリリース1以前

    Oracle Database 12cリリース1およびOracle Database 11gリリース2 (11.2.0.4)では、TDE構成は必須ではありません。

Oracle Cloud環境でのTDEの動作の詳細は、My Oracle SupportドキュメントOracle CloudでのOracle Database表領域暗号化の動作(ドキュメントID 2359020.1)を参照してください。

1.5.3.2 フェーズZDM_SETUP_TDE_TGTでジョブが失敗

問題: フェーズZDM_SETUP_TDE_TGTが次のいずれかのエラーで失敗します。

Executing phase ZDM_SETUP_TDE_TGT
Setting up Oracle Transparent Data Encryption (TDE) keystore on the target node oci1121 ...
oci1121: <ERR_FILE><Facility>PRGZ</Facility><ID>ZDM_KEYSTORE_NOT_SETUP_ERR</ID><ARGS><ARG>oci112_phx1z3</ARG></ARGS></ERR_FILE>
PRGO-3007 : failed to migrate database "db11204" with zero downtime
PRCZ-4002 : failed to execute command "/u01/app/18.0.0.0/grid/perl/bin/perl" using the privileged execution plugin "zdmauth" on nodes "oci1121"
PRCZ-2103 : Failed to execute command "/u01/app/18.0.0.0/grid/perl/bin/perl" on node "oci1121" as user "root". Detailed error:
<ERR_FILE><Facility>PRGZ</Facility><ID>ZDM_KEYSTORE_NOT_SETUP_ERR</ID><ARGS><ARG>oci112_phx1z3</ARG></ARGS></ERR_FILE>
Error at target server in /tmp/zdm749527725/zdm/log/mZDM_oss_standby_setup_tde_tgt_71939.log
2019-06-13 10:00:20: Keystore location /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME does not exists for database 'oci112_region'
2019-06-13 10:00:20: Reporting error:
<ERR_FILE><Facility>PRGZ</Facility><ID>ZDM_KEYSTORE_NOT_SETUP_ERR</ID><ARGS><ARG>oci112_region</ARG></ARGS></ERR_FILE>

解決策:

  • Oracle Database 12cリリース1以降

    ターゲット・データベースで、$ORACLE_HOME/network/admin/sqlnet.oraがTDEウォレットの正しい場所を指していることを確認します。次に例を示します。

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)
  • Oracle Database 11gリリース2 (11.2.0.4)のみ

    ターゲット・データベースで、$ORACLE_HOME/network/admin/sqlnet.oraがTDEウォレットの正しい場所を指していることを確認し、$ORACLE_UNQNAME変数をSHOW PARAMETER DB_UNIQUE_NAME SQLコマンドから取得した値で置き換えます。

    たとえば、次を実行します。

    SQL> show parameter db_unique_name
    db_unique_name         string      oci112_region

    次を

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

    次で置き換えます。

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/oci112_region)))

1.5.4 移行後の自動バックアップの問題

1.5.4.1 移行後の自動バックアップ障害のトラブルシューティング

問題: 移行後、ターゲット・データベースで自動バックアップが失敗することがあります。

コンソールを使用して、「Bare Metal」、「VM and Exadata」→「DB Systems」→「DB System Details」→「Database Details」→「Backups」で障害を確認できます。

解決策: 次のいずれかの場所からRMAN構成設定を取得します。

たとえば、2番目のオプションを使用すると、/opt/oracle/dcs/log/ocidb1/rman/bkup/ocidb1_abc127/rman_configure*.logからRMAN構成設定を取得し、問題なく自動バックアップが機能するように、ターゲット・データベースの変更されたRMAN構成設定をリセットできます。

この回避策が役に立たない場合は、DBCLIコマンドlist-jobsを実行してRMANジョブIDを取得してさらにデバッグを行い、データベース・サーバーからrootユーザーとしてDBCLIコマンドdescribe-job -i JOB IDを実行してエラーの詳細をさらに得るためにジョブの詳細を記述します。

たとえば、テスト時に、自動バックアップが機能するように次の強調表示されている設定が変更されました。

rman target /
Recovery Manager: Release 12.2.0.1.0 - Production on Mon Jul 8 11:00:18 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ORCL (DBID=1540292788)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name OCIDB1_ABC127 are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT '%d_%I_%U_%T_%t' PARMS
 'SBT_LIBRARY=/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs/libopc.so ENV=(OPC_PFILE=/opt/oracle/dcs/commonstore/objectstore/opc_pfile/1245080042/opc_OCIDB1_ABC127.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/ OCIDB1_ABC127/controlfile/snapcf_ocidb1_abc127.f';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK clear;
RMAN>
1.5.4.2 DCS-10045で移行後の自動バックアップが失敗

問題: 移行後、TDEが有効になっていない移行済のOracle Databaseリリース11.2.0.4および12.1.0.2について、次のエラーで自動バックアップが失敗します。

DCS-10045: Validation error encountered: Backup password is mandatory to take OSS backup for non-tde enabled database...

DBCLIコマンドlist-jobsを実行してRMANジョブIDを取得してこのエラーを検証し、データベース・サーバーからrootユーザーとしてDBCLIコマンドdescribe-job -i JOB IDを実行してエラーの詳細を取得するためにジョブの詳細を記述します。

解決策:

  1. TDEウォレットの場所を見つけます。

    Oracle Cloud Infrastructureのプロビジョニング済のデータベース・インスタンスは、sqlnet.oraに次のエントリがあります。

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  2. ウォレットの場所からcwallet.ssoファイルを削除します。

    たとえば、/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAMEです。

  3. Oracle Database 11gリリース2の場合、次の手順を実行します。
    1. sysdbaとしてSQL*Plusを使用してデータベースに接続し、現在のウォレットの場所を確認します。
      SQL> select * from v$encryption_wallet;
      WRL_TYPE    WRL_PARAMETER                                            STATUS
      file        /opt/oracle/dcs/commonstore/wallets/tde/ocise112_region  OPEN
    2. データベースのウォレットを閉じます。
      SQL> alter system set wallet close;
    3. ウォレット・パスワードを使用してウォレットを開きます。
      SQL> alter system SET WALLET open IDENTIFIED BY "walletpassword"
    4. マスター暗号化キーを設定します。
      SQL> alter system set encryption key identified by "walletpassword"
    5. 自動ログインSSOファイルを再作成します。
      /home/oracle>orapki wallet create -wallet /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME -auto_login
      Oracle PKI Tool : Version 11.2.0.4.0 - Production
      Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
      Enter wallet password:            #
    6. 自動バックアップを再試行します。
  4. Oracle Database 12cの場合、次の手順を実行します。
    1. sysdbaとしてSQL*Plusを使用してデータベースに接続し、現在のウォレットの場所およびステータスを確認します。
      SQL> SELECT wrl_parameter, status, wallet_type FROM v$encryption_wallet;
      WRL_PARAMETER                                            STATUS              WALLET_TYPE
      /opt/oracle/dcs/commonstore/wallets/tde/ocise112_region  OPEN_NO_MASTER_KEY  OPEN

      STATUS列に値OPEN_NO_MASTER_KEYが含まれる場合、マスター暗号化鍵を作成してアクティブにする必要があります。

    2. データベースのウォレットを閉じます。
      SQL> alter system set wallet close;
    3. パスワードを使用してウォレットを開きます。
      SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE open IDENTIFIED BY "walletpassword" CONTAINER=all;
    4. マスター暗号化キーを設定します。
      SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "walletpassword" with backup;

      各PDBにログインして実行します。

      SQL> ALTER SESSION SET CONTAINER = PDB_NAME;
      SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "walletpassword" with backup;
    5. 自動ログイン・キーストアを作成します。
      SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE 'path to wallet directory' IDENTIFIED BY "walletpassword";
    6. 自動バックアップを再試行します。
1.5.4.3 DCS-10045で移行後の自動バックアップが失敗

問題: 移行後、次のエラーで自動バックアップが失敗します。

DCS-10096:RMAN configuration 'Retention policy' must be configured as 'configure retentio n
      policy to recovery window of 30 days'

DBCLIコマンドlist-jobsを実行してRMANジョブIDを取得してこのエラーを検証し、データベース・サーバーからrootユーザーとしてDBCLIコマンドdescribe-job -i JOB IDを実行してエラーの詳細をさらに得るためにジョブの詳細を記述します。

解決策: RMANプロンプトにログインし、保存ポリシーを構成します。

[oracle@racoci1 ~]$ rman target /
Recovery Manager: Release 12.2.0.1.0 - Production on Wed Jul 17 11:04:35 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
connected to target database: SIODA (DBID=2489657199)
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;

old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;

new RMAN configuration parameters are successfully stored

自動バックアップを再試行します。

1.5.5 その他の問題

1.5.5.1 MIGRATE DATABASEコマンドを再実行できない

問題: Zero Downtime Migrationブロックでは、データベースがすでに進行中の移行ジョブの一部である場合、指定されたデータベースに対してMIGRATE DATABASEコマンドの再実行が試行されます。

回避策: データベース移行を再発行する場合は、次のようにZDMCLI ABORT JOBコマンドを使用して、EXECUTINGまたはPAUSED状態の進行中の移行ジョブを停止できます。
-bash-4.2$ ./zdmcli abort job -jobid 70
server.example.com: Audit ID: 189
1.5.5.2 ZDM_PREPARE_TGTでOracle RAC移行ジョブが失敗

問題: 次のエラーで、Oracle RAC移行ジョブがフェーズZDM_PREPARE_TGTで失敗します。

Executing phase ZDM_PREPARE_TGT
Setting up standby on the target node oci1121 ...
oci1121: 2019-06-13 09:54:20: Copy '/u01/app/oracle/admin/oci112_region' to remote node 'oci1122' failed
oci1121: 2019-06-13 09:54:27: Copy '/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwoci1121' to remote node 'oci1122:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwoci1122' failed
PRCZ-4002 : failed to execute command "/u01/app/18.0.0.0/grid/perl/bin/perl" using the privileged execution plugin "zdmauth" on nodes "oci1121"
PRCZ-2103 : Failed to execute command "/u01/app/18.0.0.0/grid/perl/bin/perl" on node "oci1121" as user "root". Detailed error:
2019-06-13 09:54:20: Copy '/u01/app/oracle/admin/oci112_phx1z3' to remote node 'oci1122' failed
2019-06-13 09:54:27: Copy '/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwoci1121' to remote node 'oci1122:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwoci1122' failed

解決策: oracleユーザーのターゲットOracle RACサーバー間に、パスフレーズなしのSSH接続を設定する必要があります。

1.5.5.3 インストール時にINS-42505警告が表示される
問題: インストール中に、次の警告が表示されます。
/stage/user/ZDM_KIT_relnumber>./zdminstall.sh setup
oraclehome=/stage/user/grid oraclebase=/stage/user/base
ziploc=/stage/user/ZDM_KIT_relnumber/rhp_home.zip -zdm
---------------------------------------
Unzipping shiphome to gridhome
---------------------------------------
Unzipping shiphome...
Shiphome unzipped successfully..
---------------------------------------
##### Starting GridHome Software Only Installation #####
---------------------------------------
Launching Oracle Grid Infrastructure Setup Wizard...

[WARNING] [INS-42505] The installer has detected that the Oracle Grid
Infrastructure home software at (/stage/user/grid) is not complete.
   CAUSE: Following files are missing:
...

解決策: この警告メッセージは無視してかまいません。インストールに影響したり、移行の問題を引き起こすことはありません。

1.5.5.4 Java例外の無効なキー書式による移行評価の失敗

問題: 次の条件が表示されます。

  • Zero Downtime Migrationのmigration -evalコマンドが次のエラーで失敗します。

    Result file path contents:
    "/u01/app/zdmbase/chkbase/scheduled/job-19-2019-12-02-03:46:19.log"
    zdm-server.ocitoolingsn.ocitooling.oraclevcn.com: Processing response
    file ...
    null
  • ファイル$ZDM_BASE/<zdm service host>/rhp/rhpserver.log.0には、次のエントリが含まれています。

    Verify below error message observed in file $ZDM_BASE/<zdm service
    host>/rhp/rhpserver.log.0
    rhpserver.log.7:[pool-58-thread-1] [ 2019-12-02 02:08:15.178 GMT ]
    [JSChChannel.getKeyPair:1603]  Exception :
    java.security.spec.InvalidKeySpecException:
    java.security.InvalidKeyException: invalid key format
  • Zero Downtime Migrationインストール・ユーザー(例: zdmuser)の秘密鍵(id_rsa)ファイルには次のエントリがあります。

    -----BEGIN OPENSSH PRIVATE KEY----------
    MIIEogIBAAKCAQEAuPcjftR6vC98fAbU4FhYVKPqc0CSgibtMSouo1DtQ06ROPN0
    XpIEL4r8nGp+c5GSDONyhf0hiltBzg0fyqyurSw3XfGJq2Q6EQ61aL95Rt9CZh6b
    JSUwc69T4rHjvRnK824k4UpfUIqafOXb2mRgGVUkldo4yy+pLoGq1GwbsIYbS4tk
    uaYPKZ3A3H9ZA7MtZ5M0sNqnk/4Qy0d8VONWozxOLFC2A8zbbe7GdQw9khVqDb/x
    END OPENSSH PRIVATE KEY-----

解決策: 認証キーのペア(秘密鍵と公開鍵)はssh-keygenユーティリティを使用して生成されないため、パスフレーズを使用しない秘密SSH鍵の生成のステップを使用して認証キーのペアを生成する必要があります。

認証キーのペアを生成した後、秘密鍵ファイルの内容は次のようになります。

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAuPcjftR6vC98fAbU4FhYVKPqc0CSgibtMSouo1DtQ06ROPN0
XpIEL4r8nGp+c5GSDONyhf0hiltBzg0fyqyurSw3XfGJq2Q6EQ61aL95Rt9CZh6b
JSUwc69T4rHjvRnK824k4UpfUIqafOXb2mRgGVUkldo4yy+pLoGq1GwbsIYbS4tk
uaYPKZ3A3H9ZA7MtZ5M0sNqnk/4Qy0d8VONWozxOLFC2A8zbbe7GdQw9khVqDb/x
-----END RSA PRIVATE KEY-----

新しく生成された認証キーのペアとの接続を設定し、移行ジョブを再開します。

1.5.5.5 移行評価がエラーPRCG-1022で失敗する

問題: 次の条件が表示されます。

[zdmuser@host bin]$  ./zdmcli migrate database -sourcedb ORCL -sourcenode source_node 
 -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/key/pvt.txt 
 -srcarg3 sudo_location:/bin/sudo -targetnode target_node
 -targethome /u01/app/oracle/product/18.0.0.0/dbhome_1
-backupuser  backupuser -rsp /home/zdmuser/respfile/zdm_template_ocic_oci.rsp
 -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/key/pvt.txt
 -tgtarg3 sudo_location:/bin/sudo -eval
PRCG-1238 : failed to execute the Rapid Home Provisioning action for command  'migrate database'
PRCG-1022 : failed to connect to the Rapid Home Provisioning daemon for cluster anandutest
Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException
[Root exception is java.rmi.ConnectException: Connection refused to host:
anandutest; nested exception is: java.net.ConnectException: Connection refused (Connection refused)]

解決策: $ZDM_HOME/bin/zdmservice startコマンドを使用してZero Downtime Migrationサービスを開始してから、任意のZDMCLIコマンドを実行します。

1.5.5.6 移行ジョブを再開できない

問題: Zero Downtime Migrationでは、ソースおよびターゲットのログ・ファイルが、それぞれのソースおよびターゲットのデータベース・サーバーの/tmp/zdm-unique idディレクトリに書き込まれます。

移行ジョブを一時停止してから、数日後(15~20日の場合もあります)にジョブを再開する場合、/tmp/zdm-unique idディレクトリがクリーン・アップまたはサーバー再起動の一環として削除またはパージされ、/tmpもクリーン・アップされることがあります。

解決策: 移行ジョブを一時停止した後、/tmp/zdm-unique idディレクトリをバックアップします。移行ジョブを再開する前に、/tmpディレクトリで/zdm-unique idを確認し、見つからない場合はディレクトリとその内容をバックアップとともにリストアします。

1.6 Oracle Cloud Infrastructureへの移行に関する追加情報

Zero Downtime Migrationを使用したOracle Cloud Infrastructureへのデータベースの移行に関する一般情報、考慮事項、参照先のリンクは、次を一読してください。

1.7 Exadata Cloud Serviceへの移行に関する追加情報

Zero Downtime Migrationを使用したExadata Cloud Serviceへのデータベースの移行に関する一般情報、考慮事項、参照先のリンクは、次を一読してください。

1.7.1 Exadata Cloud Serviceへの移行のための考慮事項

Zero Downtime Migrationのこのリリースでは、次の考慮事項に注意してください。

  • ソース・データベースがリリース18cの場合、バグ29445548 - "ORA-600でクラウド環境でのデータベースのオープンに失敗"などの問題を回避するために、ターゲット・ホームはリリース18.6以降にする必要があります。
  • -listphasesでPDB変換関連のフェーズがリストされますが、無視してもかまいません。これらは操作なしフェーズです。
  • レスポンス・ファイルの非CDBからPDBに関連する入力パラメータは、設定する必要がないプレースホルダです。NONCDBTOPDB_*入力をtrueに設定すると、移行が中断されます。
  • 構成されたインスタンスのいずれかが停止したときにバックアップが実行された場合は、バグ29863717 - "インスタンス1が停止したためソース・データベースの複製に失敗"が発生します。
  • TDEキーストア・パスワードは、資格証明ウォレットに設定する必要があります。Zero Downtime Migrationワークフローの一環としてパスワードを設定するには、ウォレットでAUTOLOGINまたはPASSWORDのどちらを使用するかに関係なく、-tdekeystorepasswd引数を指定します。どちらの場合も、パスワードは資格証明ウォレットに格納されます。-tdekeystorepasswd引数を指定しない場合、Zero Downtime Migrationでは資格証明ウォレット内のtde_ks_passwdキーの設定がスキップされ、エラーはスローされません。
  • ターゲット環境は、db_unique_name変更サポートがインストールされた最新のDBaaSツーリングRPMでインストールする必要があります。
  • 自動バックアップを有効にせずに、コンソールからターゲット・データベースをプロビジョニングします。「Configure database backups」セクションで、「Enable automatic backups」オプションを選択しないでください。

1.7.2 Exadata Cloud Serviceデータベースの登録

移行後、Exadata Cloud Serviceデータベースを登録し、すべての要件を満たしていることを確認します。

Exadata Cloud Serviceデータベース・サーバーでrootユーザーとして次のコマンドを実行します。

/root>dbaascli registerdb prereqs --dbname db_name --db_unique_name db_unique_name

/root>dbaascli registerdb begin  --dbname db_name --db_unique_name db_unique_name

次に例を示します。

/root>dbaascli registerdb prereqs --dbname ZDM122 --db_unique_name ZDM122_phx16n
DBAAS CLI version 18.2.3.2.0
Executing command registerdb prereqs --db_unique_name ZDM122_phx16n
INFO: Logfile Location: /var/opt/oracle/log/ZDM122/registerdb/registerdb_2019-08-14_05:35:31.157978280334.log
INFO: Prereqs completed successfully
/root>

/root>dbaascli registerdb begin --dbname ZDM122 --db_unique_name ZDM122_phx16n
DBAAS CLI version 18.2.3.2.0
Executing command registerdb begin --db_unique_name ZDM122_phx16n
Logfile Location: /var/opt/oracle/log/ZDM122/registerdb/registerdb_2019-08-14_05:45:27.264851309165.log
Running prereqs
DBAAS CLI version 18.2.3.2.0
Executing command registerdb prereqs --db_unique_name ZDM122_phx16n
INFO: Logfile Location: /var/opt/oracle/log/ZDM122/registerdb/registerdb_2019-08-14_05:45:29.000432309894.log
INFO: Prereqs completed successfully
Prereqs completed
Running OCDE .. will take time ..
OCDE Completed successfully.
INFO: Database ZDM122 registered as Cloud database
/root>

1.7.3 Exadata Cloud Serviceの自動バックアップの問題

コンソールから自動バックアップを有効にする前に、バックアップ構成を確認します。次の最初のステップに示すように、get configコマンドを使用できます。自動バックアップを有効にする前は、bkup_oss=noが表示されます。

コンソールに次のエラー・メッセージが表示される場合があります: A backup configuration exists for this database.You must remove the existing configuration to use Oracle Cloud Infrastructure's managed backup feature.

このエラーを修正するには、既存の構成を削除します。

まず、UIから自動バックアップが無効になっていることを確認し、次の手順に従って既存のバックアップ構成を削除します。

  1. バックアップ構成ファイルを生成します。
    /var/opt/oracle/bkup_api/bkup_api get config --file=/tmp/db_name.bk --dbname=db_name

    次に例を示します。

    /var/opt/oracle/bkup_api/bkup_api get config --file=/tmp/zdmdb.bk --dbname=zdmdb
  2. 前のステップで作成した/tmp/db_name.bkファイルを開きます。

    たとえば、/tmp/zdmdb.bkを開きます。

    bkup_oss=yesをbkup_oss=noから変更します。

  3. bkup_oss=noを設定してOSSバックアップを無効にします。
    /var/opt/oracle/bkup_api/bkup_api set config --file=/tmp/db_name.bk --dbname=db_name

    次に例を示します。

    /var/opt/oracle/bkup_api/bkup_api set config --file=/tmp/zdmdb.bk --dbname=zdmdb
  4. 再構成ステータスを確認します。
    /var/opt/oracle/bkup_api/bkup_api configure_status --dbname=db_name

    次に例を示します。

    /var/opt/oracle/bkup_api/bkup_api configure_status --dbname=zdmdb

ここで、コンソールからの自動バックアップを有効にします。

コンソールからバックアップを確認します。「Create Backup」をクリックして手動バックアップを作成すると、問題なくバックアップが作成され、自動バックアップも成功します。

1.8 Exadata Cloud at Customerへの移行に関する追加情報

Zero Downtime Migrationを使用したExadata Cloud at Customerへのデータベースの移行に関する一般情報、考慮事項、参照先のリンクは、次を一読してください。

1.8.1 Exadata Cloud at Customerへの移行に関する考慮事項

Zero Downtime Migrationのこのリリースでは、次の考慮事項に注意してください。

  • すべてのExadata Cloud at Customerノードで、バグ29715950 - "db_nameと異なるdb_unique_nameを処理するようにregdbを変更する"のためのregDBパッチを適用する必要があります。これは、ZDM_MANIFEST_TO_CLOUDフェーズに必要です。regDBツールは、DBaaSツーリングの一部であることに注意してください。
  • ソース・データベースがリリース18cの場合、バグ29445548 - "ORA-600でクラウド環境でのデータベースのオープンに失敗"などの問題を回避するために、ターゲット・ホームはリリース18.6以降にする必要があります。
  • -listphasesでPDB変換関連のフェーズがリストされますが、無視してもかまいません。これらは操作なしフェーズです。
  • レスポンス・ファイルの非CDBからPDBに関連する入力パラメータは、設定する必要がないプレースホルダです。NONCDBTOPDB_*入力をtrueに設定すると、移行が中断されます。
  • バックアップ媒体がZero Data Loss Recovery Applianceの場合、すべての構成済インスタンスは、FULLまたはINCREMENTALバックアップが実行されるときにソースで稼働している必要があります。
  • 構成されたインスタンスのいずれかが停止したときにバックアップが実行された場合は、バグ29863717 - "インスタンス1が停止したためソース・データベースの複製に失敗"が発生します。
  • TDEキーストア・パスワードは、資格証明ウォレットに設定する必要があります。Zero Downtime Migrationワークフローの一環としてパスワードを設定するには、ウォレットでAUTOLOGINまたはPASSWORDのどちらを使用するかに関係なく、-tdekeystorepasswd引数を指定します。どちらの場合も、パスワードは資格証明ウォレットに格納されます。-tdekeystorepasswd引数を指定しない場合、Zero Downtime Migrationでは資格証明ウォレット内のtde_ks_passwdキーの設定がスキップされ、エラーはスローされません。
  • ターゲット環境は、db_unique_name変更サポートがインストールされた最新のDBaaSツーリングRPMでインストールする必要があります。

1.9 ドキュメントの補足

Zero Downtime Migrationを使用したOracle Cloudへの移行をサポートする追加のドキュメントの項を次に示します。

1.9.1 Zero Downtime Migrationソフトウェアのインストール

Zero Downtime Migrationを使用したOracle Cloudへの移行、第2章、Zero Downtime Migrationソフトウェアのインストールの更新を次に示します。

ステップ2aは次のように更新されます。

Zero Downtime Migrationソフトウェアがダウンロードされるディレクトリに移動し、ソフトウェアを解凍します。

zdmuser> cd zdm_download_directory
zdmuser> unzip zdm_home.zip 

1.9.2 実行中の移行ジョブの終了

Zero Downtime Migrationを使用したOracle Cloudへの移行、第4章、Zero Downtime Migrationを使用したデータベースの移行の補足を次に示します。

Zero Downtime Migrationでは、データベースがすでに進行中の移行ジョブの一部である場合、指定されたデータベースに対してMIGRATE DATABASEコマンドの再実行の試行をブロックします。

指定されたデータベースのデータベース移行ジョブを再発行する場合は、ZDMCLI ABORT JOBコマンドを使用して、移行ジョブの実行をEXECUTINGまたはPAUSED状態で終了する必要があります。

zdmuser> ./zdmcli abort job -jobid job-id

1.10 ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWeb サイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。


Oracle Zero Downtime Migrationリリース・ノート, リリース19c

F25770-03

Copyright © 2019, 2020, Oracle and/or its affiliates.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or “commercial computer software documentation” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.The terms governing the U.S. Government’s use of Oracle cloud services are defined by the applicable contract for such services.No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Insideは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Epyc、AMDロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社との間で該当する取決めにて別途規定しないかぎり、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社との間で該当する取決めにて別途規定する場合を除き、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。