Oracle NoSQL Database Migratorのトラブルシューティング

使用中に直面する可能性のある一般的な課題とその解決方法について学習します。

移行に失敗しました。どうすれば解決できますか。

データ移行の失敗は、基礎となる複数の理由で発生する可能性があります。重要な原因を次に示します。

表7-4 移行失敗の原因

エラー・メッセージ 意味 解決方法
Failed to connect to Oracle NoSQL Database マイグレータはNoSQL Databaseとの接続を確立できませんでした。
  • 構成JSONファイルのstoreNameおよびhelperHosts属性の値が有効で、ホストにアクセスできることを確認します。
  • 保護されたストアの場合は、セキュリティ・ファイルが有効で、ユーザー名とパスワードの値が正しいかどうかを確認します。
Failed to connect to Oracle NoSQL Database Cloud Service マイグレータはOracle NoSQL Database Cloud Serviceとの接続を確立できませんでした。
  • 構成JSONファイルに指定されたエンドポイントURLまたはリージョン名が正しいかどうかを確認します。
  • OCI資格証明ファイルが、構成JSONファイルで指定されたパスで使用可能かどうかを確認します。
  • OCI資格証明で提供されているOCI資格証明が有効であることを確認します。
Table not found 移行用に指定された表がNoSQL Database Migratorで見つかりませんでした。

ソースの場合:

  • 表がソース・データベースに存在することを確認します。
  • 表がデフォルト以外のネームスペースに作成されている場合は、構成JSONファイルで表がそのネームスペースで修飾されていることを確認します。
  • 表へのアクセスに必要な読取り/書込み権限があるかどうかを確認します。
  • ソースがOracle NoSQL Database Cloud Serviceの場合は、構成JSONファイルで有効なコンパートメント名が指定されているかどうかを確認し、表へのアクセスに必要な権限があることを確認します。

シンクの場合:

  • 表がシンクに存在することを確認します。存在しない場合は、表を手動で作成するか、schemaInfo構成を使用して移行によって作成する必要があります。
DDL Execution failed 入力スキーマ定義ファイルに指定されたDDLコマンドが無効です。
  • schemaPathファイルのDDLコマンドの構文を確認します。
  • schemaPathファイルの行ごとにDDL文が1つのみであることを確認します。
failed to write record to the sink table with java.lang.IllegalArgumentException 入力レコードがシンクの表スキーマと一致しません。
  • ターゲット・シンク表に指定されているデータ型および列名がシンク表スキーマと一致するかどうかを確認します。
  • 変換を適用した場合は、変換されたレコードがシンク表スキーマと一致しているかどうかを確認します。
Request timeout ソースまたはシンクの操作が予想時間内に完了しませんでした。
  • ネットワークの接続を確認します。
  • NoSQL Databaseが稼働していることを確認します。
  • 構成JSONファイルのrequestTimeout値を増やします。

失敗した移行を再開する前に考慮する必要があることを教えてください。

データ移行タスクが失敗すると、シンクは実行中状態になり、障害が発生した時点までにインポートされたデータが含まれます。ログからエラーおよび障害の詳細を特定し、エラーの診断および修正後に移行を再開できます。移行を再開するともう一度やり直され、すべてのデータが最初から処理されます。移行をチェックポイント処理し、障害が発生した時点から再開する方法はありません。したがって、NoSQL Database Migratorは、シンクにすでに移行されているすべてのレコードを上書きします。

移行が遅すぎます。高速化するにはどうすればよいですか。

データ移行にかかる時間は、移行するデータ量、ネットワーク速度、データベースの現在の負荷などの複数の要因に依存します。クラウド・サービスの場合、移行の速度は、読取りスループットおよびプロビジョニングされた書込みスループットにも依存します。したがって、移行速度を向上させるために、次のことができます。
  • データの移行中に、Oracle NoSQL Databaseの現在のワークロードを減らします。
  • 移行、ソースおよびシンクを実行しているマシンがすべて同じデータ・センターにあり、ネットワーク待機時間が最小限であることを確認します。
  • Oracle NoSQL Database Cloud Serviceの場合は、高い読取り/書込みスループットをプロビジョニングし、表に割り当てられた記憶域が十分かどうかを確認します。NoSQL Database Migratorが表を作成していない場合は、書込みスループットを向上できます。マイグレータが表を作成している場合は、シンク構成のschemaInfo.writeUnitsパラメータに大きい値を指定することを検討します。データ移行が完了した後で、この値を小さくできます。スループットの変更に関する毎日の制限に注意してください。クラウド制限およびシンク構成テンプレートを参照してください。

大量のデータセットを含む長時間の移行があります。移行の進行状況を追跡するにはどうすればよいですか。

追加のロギングを有効にして、長時間実行される移行の進行状況を追跡できます。Oracle NoSQL Database Migratorのロギング動作を制御するには、logging.propertiesファイルで必要なロギング・レベルを設定する必要があります。このファイルはNoSQL Database Migratorパッケージに付属しており、Oracle NoSQL Database Migratorが解凍されたディレクトリで使用できます。ロギングの様々なレベルは、冗長性の低い方から順にOFF、SEVERE、WARNING、INFO、FINEおよびALLです。ログ・レベルをOFFに設定するとすべてのロギング情報が無効になる一方、ログ・レベルをALLに設定すると完全なログ情報が表示されます。デフォルトのログ・レベルはWARNINGです。すべてのロギング出力は、デフォルトでコンソールに出力されるように構成されます。各ログ・レベルに関するコメントは、logging.propertiesファイルに表示されます。