使用AWS DMS进行Postgres到Postgres数据迁移时,如何解决“列“ xlog_position”不存在”错误

时间:2019-12-13 13:30:18

标签: amazon-web-services aws-dms

我正在尝试使用AWS DMS迁移和同步PostgreSQL数据库,但出现以下错误。

size()

我正在使用两个PostgreSQL实例作为源和目标。我已经测试并验证了复制实例可以访问两个数据库实例。目标实例用户对数据库具有完全访问权限。我是否需要安装任何插件或进行其他配置才能使此迁移设置正常工作?

2 个答案:

答案 0 :(得分:1)

为Amazon RDS for PostgreSQL数据库实例启用逻辑解码

  1. 用户帐户需要rds_superuser角色才能启用逻辑 复制。该用户帐户还需要rds_replication角色 授予权限来管理逻辑插槽并使用 逻辑插槽。

  2. 将rds.logical_replication静态参数设置为1。 应用此参数,我们还设置参数wal_level, max_wal_senders,max_replication_slots和max_connections。这些 参数更改可以增加WAL的产生,因此您只应设置 使用逻辑时的rds.logical_replication参数 插槽。

  3. 重新启动数据库实例以获取静态rds.logical_replication 参数生效。

  4. 创建逻辑复制插槽,如下一节所述。 此过程要求您指定解码插件。目前 我们支持随附的test_decoding输出插件 PostgreSQL。

最后一项可以使用以下命令完成:

SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding');

参考:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication

答案 1 :(得分:1)

我设法按照下面提到的步骤解决了该问题 https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html

该问题是由于我使用的是DMS引擎v3.1.4,它需要一些其他配置才能启动复制过程。这些说明可以在https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10

中找到

如果遇到此问题,请仔细检查DMS复制引擎版本。可以在资源管理中的复制实例下查看。