AWS DMS 任务在 CDC 模式下一段时间后失败

     2023-02-19     160

关键词:

【中文标题】AWS DMS 任务在 CDC 模式下一段时间后失败【英文标题】:AWS DMS task failing after some time in CDC mode 【发布时间】:2021-08-10 12:43:14 【问题描述】:

在初始迁移 + CDC 模式下,我无法设置将 RDS 数据库(PostgreSQL,引擎 10.15)中的数据迁移到 S3 存储桶的任务。 两个端点均已成功配置和测试。 我已经创建了两次任务,两次最多运行了几个小时,第一次初始转储正常并且一些增量转储也发生了,第二次只有初始转储完成并且没有增量转储在任务失败之前执行。

现在的错误信息是:

Last Error Task 'data-migration-bp-dev' was suspended after 9 successive recovery failures Stop Reason FATAL_ERROR Error Level FATAL_

但就在它第一次失败之后:

Last Error An internal WAL conversational protocol error has occurred. Task error notification received from subtask 0, thread 0 reptask/replicationtask.c:2859 1020452 Error executing source loop; Stream component failed at subtask 0, component st_0_data-migration-rds-bp-dev; Stream component 'st_0_data-migration-rds-bp-dev' terminated reptask/replicationtask.c:2866 1020452 Stop Reason RECOVERABLE_ERROR Error Level RECOVERABLE

在 CloudWatch 日志中,我看到以下错误消息:

SOURCE_CAPTURE I: Streaming initiated successfully (postgres_pglogical.c:274)
SOURCE_CAPTURE I: #1 : Non-monotonic LSN sequence: Current LSN '00000000/00000000' < Previous LSN '000001E3/94016430'. Event is ignored. (postgres_endpoint_wal_engine.c:710)
SOURCE_CAPTURE I: Unable to resolve attributes for relation id '28804'. Aborting action. (postgres_pglogical.c:1643)
SOURCE_CAPTURE I: End of CDC / CAPTURE events for POSTGRES endpoint. (postgres_endpoint_capture.c:520)
SOURCE_CAPTURE I: CAPTURE ended with exceptions. (postgres_endpoint_capture.c:527)
SOURCE_CAPTURE E: Could not find relation id '28804' in hash. 1020483 (postgres_pglogical.c:1470)
SOURCE_CAPTURE E: Failed to parse relation from dml command 1020483 (postgres_pglogical.c:2515)
SOURCE_CAPTURE E: Failed to find relation id on target while processing message from source 1020452 (postgres_endpoint_wal_engine.c:805)
SOURCE_CAPTURE E: WAL stream loop ended abnormally. (STATUS_PROTOCOL_ERROR) 1020452 (postgres_endpoint_wal_engine.c:992)
SOURCE_CAPTURE E: WAL reader terminated with irrecoverable error. 1020452 (postgres_endpoint_capture.c:496)
TASK_MANAGER I: Task - data-migration-bp-dev is in ERROR state, updating starting status to AR_NOT_APPLICABLE (repository.c:5102)
SOURCE_CAPTURE E: Error executing source loop 1020452 (streamcomponent.c:1870)
TASK_MANAGER E: Stream component failed at subtask 0, component st_0_data-migration-rds-bp-dev 1020452 (subtask.c:1409)
SOURCE_CAPTURE E: Stream component 'st_0_data-migration-rds-bp-dev' terminated 1020452 (subtask.c:1578)
TASK_MANAGER E: Task error notification received from subtask 0, thread 0 1020452 (replicationtask.c:2859)
TASK_MANAGER E: Error executing source loop; Stream component failed at subtask 0, component st_0_data-migration-rds-bp-dev; Stream component 'st_0_data-migration-rds-bp-dev' terminated 1020452 (replicationtask.c:2866)
TASK_MANAGER E: Task 'data-migration-bp-dev' encountered a recoverable error, retry attempt # 0 (repository.c:5184)

此时我要提一下,我们必须配置 pglogical 插件并重新启动数据库,但最终我们得到了一个错误,我们忽略了该操作,因为 DMS 任务在该操作之后启动。

ERROR: current database is not configured as pglogical node
HINT: create pglogical node first

我们的 DMS 任务失败的问题与 pglogical 插件配置有关吗?如果是这样,我们如何配置它以使其工作(我们的数据库引擎应该与它兼容,不是吗?)?如果没有,如何解决?

提前谢谢你!

【问题讨论】:

【参考方案1】:

如果以后有人遇到同样的错误,以下是 AWS 技术专家告诉我们的:

pglogical 插件存在一个已知(AWS)问题。该解决方案需要使用 test_decoding 插件。

    通过在 Extra Connection Attributes 中指定 pluginName=test_decoding 来强制使用 DMS 端点上的 test_decoding 插件 使用此端点创建一个新的 DMS 任务(使用旧任务可能会因为任务和日志不同步而导致它失败)

它确实解决了问题,但我们仍然不知道 DMS 文档中到处强烈建议的插件的真正问题是什么(目前)。

【讨论】:

AWS DMS 交换文件占用所有空间

...迁移许多数据库,但我发现我的大小超过50GB的数据库在一段时间后由于存储空间不足而在CDC中失败。我正在使用一个复制实例类dms.r5.large并且一切运行顺利,直到完全加载完成。当CDC启动时,我收到如下日志消息:D:Thereare188swap... 查看详情

在创建 aws_dms_replication_task 资源-terraform 中使用“cdc_start_position”参数时出错

...ot;argumentinthecreatingaws_dms_replication_taskresource-terraform【发布时间】:2022-01-2013:15:48【问题描述】:我在Mac64位上使 查看详情

AWS DMS 不支持 RDS SQL Server 的 CDC/更改跟踪。

...标题】:AWSDMSdoesnotsupportCDC/ChangetrackingforRDSSQLServer.【发布时间】:2016-09-2716:46:09【问题描述】:AWSDMS(数据库迁移服务)似乎不支持RDSSQLServer的CDC(更改跟踪)。我正在尝试创建RDSSQLServer只读副本以卸载主副本以进行报告。还需... 查看详情

AWS DMS 复制任务交换使用问题

】AWSDMS复制任务交换使用问题【英文标题】:AWSDMSReplicationTaskSwapUsageissue【发布时间】:2021-04-1811:10:00【问题描述】:我创建了AWSDMS复制任务,该任务卡在70%并在日志中显示一条消息,该任务以前运行平稳,上周一直卡住。2021-01... 查看详情

AWS DMS 迁移问题

】AWSDMS迁移问题【英文标题】:AWSDMSMigrationQuestions【发布时间】:2021-06-1723:15:36【问题描述】:我是AWSDMS的新手,并试图了解一些细节但无法找到答案,因此非常感谢任何帮助。Q1-如果您在公司数据中心(本地)有分布式数据库... 查看详情

AWS DMS oracle 完全加载失败

...:56【问题描述】:我正在运行RDSoracle12TORDSOracle12。但我的任务失败并出现以下错误。无法理解问题所在。**上次错误无法连接到数据库。从子任务2线程1收到任务错误通知[reptask/replicationtask.c:2822][1020414]执行创建PK语句失败 查看详情

AWS DMS:复制任务已停止。停止原因 FULL_LOAD_ONLY_FINISHED

】AWSDMS:复制任务已停止。停止原因FULL_LOAD_ONLY_FINISHED【英文标题】:AWSDMS:Replicationtaskhasstopped.StopReasonFULL_LOAD_ONLY_FINISHED【发布时间】:2022-01-1907:52:44【问题描述】:面临DMS中停止复制等问题。eventserrorDMS任何人知道如何解决这... 查看详情

AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?

...全加载)将数据从RDS(SQLServer)复制到S3。但是,在运行任务时,DMS会复制源表并在S3中为单个表创建多个csv文件。有什么办法可以确保对于1个表,DMS 查看详情

AWS DMS Redshift 作为目标

...DMSRedshift作为目标【英文标题】:AWSDMSRedshiftastarget【发布时间】:2019-10-2212:33:16【问题描述】:我计划使用DMS将RDS持续迁移到Redshift。根据文档,如果目标是redshift,则DMS在复制到redshift之前使用S3存储桶临时存储数据。我找不到... 查看详情

AWS DMS 添加新列以跟踪更改

...踪更改【英文标题】:AWSDMSaddinganewcolumntotrackchanges【发布时间】:2017-02-1623:15:44【问题描述】:我们正在使用DMS将数据从MySQL迁移到Redshift(作为持续迁移)。我们在MySQL中有一些大表-太大而无法添加任何新列。但是,现有表中... 查看详情

AWS DMS:如何处理 Presto/Athena 中的 TIMESTAMP_MICROS parquet 字段

...间】:2019-10-1905:08:12【问题描述】:目前,我们有一个DMS任务,它将获取MySQLDB的内容并将文件以parquet格式转储到S3。parquet中时间戳的格式最终为TI 查看详情

使用 AWS DMS 加载数据时如何修剪列

...【英文标题】:HowtodotrimcolumnswhenloadingdatausingAWSDMS【发布时间】:2021-08-0818:09:14【问题描述】:我必须使用AWSDMS迁移表。加载时,我必须修剪源表中的列并将其加载到目标。我无法在AWSDMS中找到任何用于修剪的转换规则。如何实... 查看详情

DMS 任务在 Oracle 正在进行的复制中失败(完全加载工作正常)

】DMS任务在Oracle正在进行的复制中失败(完全加载工作正常)【英文标题】:DMStaskgettingfailedonOracleon-goingreplication(Fullloadworksfine)【发布时间】:2021-09-1100:39:09【问题描述】:我们正在使用AWSDMS将oracle数据库迁移到s3存储桶中,并... 查看详情

AWS ECS Fargate 模式 - 自动扩展

...有一个在Fargate模式下运行的AWSECS服务。我的设置有两个任务运行在端口80上侦听的httpd映像(Apache2)。我有一个将端口80重定向到目标组的应用程序负载平衡器。该目标组配置了两个IP(每个任务都暴露在私有IP上,因此目标组中有... 查看详情

AWS DMS - Oracle 到 PG RDS 完全加载操作错误 - 无法从 csv 文件加载数据

...MS-OracletoPGRDSfullloadoperationerror-failedtoloaddatafromcsvfile【发布时间】:2019-12-2223:21:27【问题描述】:我正在尝试使用DMS将数据从oracle实例移动到postgresRDS。我只是在做一个完整的加载操作,我已经禁用了目标上的所有外键。我还确 查看详情

MYSQL 8.0.19 (ON PREMISE) 作为 AWS DMS 中的源?

...源?【英文标题】:MYSQL8.0.19(ONPREMISE)assourceinAWSDMS?【发布时间】:2020-05-0809:11:37【问题描述】:有人可以确认我的本地MYSQL8.0.19实例是否可以用作Aws数据库迁移服务中的源,目标为awsredshift。我阅读的文章仅显示受支持的MySQL版本... 查看详情

如何调试 aws fargate 任务内存不足?

】如何调试awsfargate任务内存不足?【英文标题】:Howtodebugawsfargatetaskrunningoutofmemory?【发布时间】:2020-10-1323:54:09【问题描述】:我正在Fargate运行一个任务,CPU为2048,内存为8192。运行一段时间后任务因错误而停止容器因内存不... 查看详情

使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql

...】:migratemongodbtablebyspeceficcolumnsonlytomysqlusingawsdms【发布时间】:2021-04-3005:47:50【问题描述】:我在mongo中有一个名为reports的架构和一个名为totals的集合。其中的键如下所示:"_id":"dt":"2018-12-02","dt2":"2018-04-08","n 查看详情