スキップしてコンテンツを表示

AWS DMS を使用してソースデータベースを Amazon Redshift に移行する場合、データレプリケーションの問題と CDC 障害をトラブルシューティングする方法を教えてください。

所要時間2分
0

AWS Database Migration Service (AWS DMS) を使用してソースデータベースを Amazon Redshift に移行すると、データレプリケーションの問題と変更データキャプチャ (CDC) 障害が発生します。

解決策

CDC 障害

CDC 障害が発生した場合は、AWS DMS タスクログで特定のテーブルに関連するエラーメッセージがないか確認してください。AWS DMS タスクの CDCLatencySourceCDCLatencyTarget Amazon CloudWatch メトリクスを確認することもできます。

表示されたエラーメッセージに応じて次のいずれかの手順を実行します。

  • ソーステーブルにプライマリキーがあることを確認します。PostgreSQL ソースの場合、AWS DMS が DELETE および UPDATE オペレーションを処理するには、キャプチャされたテーブルにプライマリキーが必要です。
  • ソースデータベースの変更ログの保持期間を 24 時間以上に設定していることを確認します。
  • AWS DMS が使用する AWS アカウントに、ソースデータベースとターゲットデータベースの両方に必要なアクセス許可があることを確認します。

データの不一致

データの不一致を解決するには、次の手順を実行します。

  1. ソースとターゲットの間で一致しないレコードを識別するための検証専用タスクを作成します。詳細については、「Redshift validation performance」(Redshift 検証パフォーマンス) を参照してください。
  2. ターゲットデータベースの awsdms_validation_failures_v1 テーブルにクエリを実行して、不一致を確認します。
  3. ターゲットデータベースの awsdms_apply_exceptions テーブルで、移行の失敗に関する詳細なエラー情報がないか確認します。
  4. 複製されたすべてのターゲットテーブルにプライマリキーまたは一意のインデックスがあることを確認します。
    注: Amazon Redshift では、一意のキー、プライマリキー、および外部キーの制約は適用されません。そのため、重複が発生する可能性があります。
  5. PostgreSQL をソースとして使用する場合、ソーステーブルとターゲットテーブルのプライマリキーを定義する必要があります。
  6. テーブルに矛盾がある場合は、AWS DMS タスクを使用してテーブルを再ロードします。

タイプ変換の問題

タイプ変換の問題を解決するには、次の手順を実行します。

  1. AWS DMS タスクログを確認して、データ切り捨てに関連するエラーや、データ定義言語 (DDL) の長さを超える文字列の長さがないかどうかを確認します。

  2. awsdms_apply_exceptions テーブルで移行の失敗がないか確認します。

  3. ターゲットの Redshift データベースの列データ型を調整して、より大きなデータに対応できるようにします。例えば、長さの問題がある列の場合は varchartext に変更します。

  4. 次の例に示すように、より大きなデータサイズを処理するには、タスク設定で MaxLobSize パラメータを変更します。

    {
      "TargetMetadata": {
        "MaxLobSize": 32
      }
    }
  5. サポートされているデータ型を使用していることを確認し、ソースとターゲットを正しくマップしていることを確認します。

パフォーマンスの問題と高レイテンシー

パフォーマンスを向上させ、レイテンシーを減らすには、次のアクションを実行します。

重複レコード

レコードの重複を防ぐには、次の操作を行います。

  • 複製されたターゲットテーブルにプライマリキーまたは一意のインデックスがあることを確認します。
  • プライマリキーを使用してターゲット上にテーブルを手動で作成し、タスク設定で TargetTablePrepModeDO_NOTHING または TRUNCATE_BEFORE_LOAD に設定します。
  • primary-key-def AWS DMS テーブルマッピングルールを使用して、プライマリキーを明示的に定義します。

データが欠落している、または不完全

欠落しているデータや不完全なデータを解決するには、次の操作を行います。

  • AWS DMS タスクログで、特定のテーブルに関連する警告やエラーがないか確認します。
  • CDCIncomingChanges メトリクスを確認して、AWS DMS がソースからのすべての変更をキャプチャするかどうかを判断します。
  • AWS DMS が使用するソースデータベースのユーザーアカウントに、必要なすべてのテーブルとスキーマへのアクセスに必要なアクセス許可があることを確認します。
  • 不一致レコードを識別するための検証専用タスクを作成します。詳細については、「Redshift validation performance」(Redshift 検証パフォーマンス) を参照してください。
  • 問題が一貫しているテーブルの場合は、個別の AWS DMS タスクを作成して、より詳細なトラブルシューティングを行うことができます。

関連情報

Best practices for AWS Database Migration Service (AWS Database Migration Service のベストプラクティス)

Troubleshooting migrations tasks in AWS Database Migration Service (AWS Database Migration Service での移行タスクのトラブルシューティング)

AWS DMS data validation (AWS DMS データ検証)

AWS公式更新しました 4ヶ月前
コメントはありません

関連するコンテンツ