Amazon web services AWS DMS正在进行的复制落后?

Amazon web services AWS DMS正在进行的复制落后?,amazon-web-services,aws-dms,Amazon Web Services,Aws Dms,我们正在使用AWS DMS将特定表从一个Oracle RDS数据库实例持续复制到另一个Oracle RDS数据库(均为11g) 复制似乎间歇性地落后或不同步。日志中没有错误,所有操作都报告为成功,但缺少数据 我们可以开始全面刷新,数据就会显示出来,但这不是一个可行的定期选择。这是一个生产系统,完全刷新需要14小时以上 我们希望监控目标数据库是否[至少大部分]是最新的。也就是说,不超过2-3小时 我发现,您可以使用“SELECT current_SCN from V$database”从源数据库获

我们正在使用AWS DMS将特定表从一个Oracle RDS数据库实例持续复制到另一个Oracle RDS数据库(均为11g)

复制似乎间歇性地落后或不同步。日志中没有错误,所有操作都报告为成功,但缺少数据

我们可以开始全面刷新,数据就会显示出来,但这不是一个可行的定期选择。这是一个生产系统,完全刷新需要14小时以上

我们希望监控目标数据库是否[至少大部分]是最新的。也就是说,不超过2-3小时

我发现,您可以使用“SELECT current_SCN from V$database”从源数据库获取当前SCN,也可以从“awsdms_txn_state”表中的目标获取当前SCN

但是,该表不存在,在创建或修改任务时,我看不到任何启用TaskRecoveryTableEnabled的选项

是否存在自动监控这些值的现有功能?可以通过Lambda完成吗

如果DMS报告成功,那么在有人打电话投诉之前,我们无法知道我们的数据落后了数小时或数天

我确实在DMS任务中看到了“启用验证”的选项,但直觉告诉我,这将产生大量不必要的开销


提前谢谢

这里有几个问题:

  • CDC延迟的任务监控
  • 如何设置TaskRecoveryTableEnabled
  • 首先,提供了许多CloudWatch指标(请参阅所有CDC*指标)

    可以在这些指标上查看目标何时与源不同步,以及这些更改在复制实例的过程中的位置。AWS解释这些的详细博客值得一读

    一种选择是在CDCLatencySource上放置一个

    或者,您可以在CloudWatch时间表上创建自己的Lambda,在源和目标上运行SCN查询,并使用PutMetricData输出自定义CloudWatch度量。如果它们不同步,您可以在此指标上创建CloudWatch警报

    对于第二个问题,要通过控制台设置TaskRecoveryTableEnabled,请勾选选项“在目标数据库上创建恢复表”

    勾选此选项后,通过查看任务的Overview选项卡,可以确认TaskRecoveryTableEnabled设置为Yes。底部是任务设置json,其内容如下:

        "TargetMetadata": {
            "TargetSchema": "",
            "SupportLobs": true,
            "FullLobMode": false,
            "LobChunkSize": 0,
            "LimitedSizeLobMode": true,
            "LobMaxSize": 32,
            "InlineLobMaxSize": 0,
            "LoadMaxFileSize": 0,
            "ParallelLoadThreads": 0,
            "ParallelLoadBufferSize": 0,
            "BatchApplyEnabled": false,
            "TaskRecoveryTableEnabled": true
      }
    

    嘿@Sirentec,你找到问题的根源了吗?我们在DMS复制(postgres->redshift)中也看到了同样的情况。DMS中没有错误,但复制延迟了几个小时,或者某些表中缺少数据。如果你知道了,请告诉我。