web-dev-qa-db-ja.com

AWS DMS |エラー:ファイル「pglogical」にアクセスできませんでした:そのようなファイルまたはディレクトリはありません

エラー-

2019-06-17T05:00:11 [SOURCE_CAPTURE ]E: RetCode: SQL_ERROR SqlState: 58P01 NativeError: 1 Message: ERROR: could not access file "pglogical": No such file or directory;, Error while executing the query [1022502] (ar_odbc_stmt.c:2546)
2019-06-17T05:00:11 [SOURCE_CAPTURE ]E: RetCode: SQL_ERROR SqlState: 42P01 NativeError: 1 Message: ERROR: relation "pglogical.replication_set" does not exist;, No query has been executed with that handle [1022502] (ar_odbc_stmt.c:3722)

このエラーは3か月ごとに発生します。タスクを再起動すると問題は解決しますが、再開は機能しません。

複製スロットは存在しますが、非アクティブ状態のようです-

   postgres=> select * from pg_replication_slots ;
                               slot_name                            |    plugin     | slot_type | datoid |   database    | active | active_pid | xmin | catalog_xmin | restart_lsn
    ----------------------------------------------------------------+---------------+-----------+--------+---------------+--------+------------+------+--------------+--------------
     juvmrynv47ajpwrc_00016389_f28d6802_db75_43d6_8058_315783e9b1b2 | test_decoding | logical   |  16389 | postgres | f      |            |      |    148271120 | 8DF/B292FB48
    (1 row)
9
vivekyad4v

私たちの場合、アクティブなトランザクションがこの失敗の原因でした。そのため、DMSタスクは、障害後に手動で再開されるか、手動でソースデータベースにアクティブなトランザクションを必要としないダミーのレプリケーションスロットを作成しようとしますが、デフォルトでは、DMSはアクティブなトランザクションが完了するまで10分間待機します。エラー。

2019-09-02T06:48:10 [SOURCE_CAPTURE  ]E:  RetCode: SQL_ERROR  SqlState: 57014 NativeError: 1 Message: ERROR: canceling statement due to statement timeout;
Error while executing the query [1022502]  (ar_odbc_stmt.c:2581)

ソリューション-

  • タスク設定TransactionConsistencyTimeoutを600秒から1800秒に増やします。
  • レプリケーションインスタンスがメモリを消費しすぎていないか確認してください。
  • タスク設定でデバッグモードを有効にして、失敗に関する詳細を取得します-

    "LogComponents": [
      {
        "Id": "SOURCE_UNLOAD",
        "Severity": "LOGGER_SEVERITY_DETAILED_DEBUG"
      },
      {
        "Id": "SOURCE_CAPTURE",
        "Severity": "LOGGER_SEVERITY_DETAILED_DEBUG"
      },
      {
        "Id": "TARGET_LOAD",
        "Severity": "LOGGER_SEVERITY_DETAILED_DEBUG"
      },
      {
        "Id": "TARGET_APPLY",
        "Severity": "LOGGER_SEVERITY_DETAILED_DEBUG"
      },
      {
        "Id": "TASK_MANAGER",
        "Severity": "LOGGER_SEVERITY_DETAILED_DEBUG"
      }
    ]
    
2
vivekyad4v

OPと同じエラーが発生しています。私が実行している環境は次のとおりです。-DMSバージョン3.1.4を使用-Postgresql Aurora 10.7としてターゲットとソースを使用

後で https://docs.aws.Amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html でこれを設定する方法に関するドキュメントを確認しているときに、実際にPostgresバージョンの> 10、私はDMSバージョン3.3.0以降を使用する必要があります。

バージョンを変更して実際に機能させるため、ここに来る前にAmazonのドキュメントを確認してください。