AWS DMS | 错误:无法访问文件“ pgologic”:没有此类文件或目录

viv*_*d4v 6 postgresql amazon-web-services aws-dms

错误-

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)
Run Code Online (Sandbox Code Playgroud)

我们每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)
Run Code Online (Sandbox Code Playgroud)

viv*_*d4v 3

在我们的例子中,活动事务导致了此故障。因此,当 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)
Run Code Online (Sandbox Code Playgroud)

解决方案-

  • 将任务设置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"
      }
    ]
    
    Run Code Online (Sandbox Code Playgroud)