运行 2 个月没有问题后,我的 AWS DMS 任务失败并出现以下错误:
Last failure message
Last Error Stream Component Fatal error. Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2880] [1020101] Error executing source loop; Stream component failed at subtask 0, component; Stream component terminated [reptask/replicationtask.c:2888] [1020101] Stop Reason FATAL_ERROR Error Level FATAL
在我的 CloudWatch 日志中,我发现:
NativeError: 1 Message: ERROR: could not access file "pglogical": No such file or directory; Error while executing the query
和后来的ERROR: relation "pglogical.replication_set" does not exist; No query has been executed with that handle
.
我注意到我没有在我的
postgresql.conf
中启用pglogical所以我更新了shared_preload_libraries
:
shared_preload_libraries = 'pglogical'
Postgres 不以该设置启动,只是失败。 同时,我认为每次尝试启动 DMS 任务时都失败可能还有另一个原因,因为之前我没有遇到过这个问题。
我还能尝试什么来解决这个问题?
这是我的 postgres.conf 中的一些设置
wal_level = logical
max_wal_senders = 10 # max number of walsender processes
wal_sender_timeout = 0 # in milliseconds; 0 disables
max_replication_slots = 10 # max number of replication slots
来源:PostgreSQL 13.4 (Ubuntu 13.4-1.pgdg18.04+1) 目标:Aurora PostgreSQL 13.7 DMS 任务类型:满载,持续复制
将
pglogical
添加到shared_preload_libraries
后,您需要重启您的实例。然后,确保通过运行启用扩展:
CREATE EXTENSION pglogical;
然后检查它是否正在运行:
select * FROM pg_catalog.pg_extension;
最后一件事是:确保设置源端点额外参数
PluginName=pglogical
。不过,这应该是在安装时默认使用的。