繁体   English   中英

尝试将 Oracle 复制到 PostgreSQL 时出现 AWS DMS 错误

[英]AWS DMS Error when trying to replicate Oracle to PostgreSQL

我正在尝试将 Oracle 数据库中的多个模式复制到 PostgresSQL 数据库。 当 DMS 任务以完全加载、持续复制类型启动时,任务有时会在表处于加载前状态时失败。 这是我在任务失败时收到的错误

Last Error Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2673] [1022301] 
Oracle CDC stopped; Error executing source loop; Stream component failed at subtask 0, 
component st_0_LBI2ND3ZI65BF6DQQYK4ITPYAY ; Stream component 'st_0_LBI2ND3ZI65BF6DQQYK4ITPYAY' 
terminated [reptask/replicationtask.c:2680] [1022301] Stop Reason FATAL_ERROR Error Level FATAL

但是,当将相同的表添加到具有Full Load类型的任务时,它可以正常工作。 只有在尝试运行复制正在进行的更改的任务时才会发生错误。 我尝试搜索此错误,但找不到确切原因。 我已正确配置端点,源端点和目标端点都具有复制更改所需的权限。 我怎样才能解决这个问题?

为了使复制正常工作,您需要在源数据库中的所有必需表中启用 SUPPLEMENTAL LOGGING

所以这可能是由于多种原因造成的。 尽管基本原因保持不变,但DMS 无法读取您的 oracle 数据库中的日志并且超时 在继续之前,我假设您已按照 aws 文档中提到的所有步骤进行操作,以在此处设置 CDC。

  1. 如上面的回答所述,应该在数据库级别以及表级别的所有列和主键上启用补充日志记录,例如:

    改变数据库添加补充日志数据(主键)列; ALTER TABLE schema_name.table_name 添加补充日志数据(所有)列; 更改表 PCUSER.PC_POLICY 添加补充日志数据(主键)列;

  2. 日志保留期应足够 CDC ke 在删除之前读取日志。 这是 aws 文档上针对此问题的故障排除链接

  3. 您正在使用的 DMS 用户应该对您尝试读取的所有模式具有读/写/更改访问权限。 在我的例子中,它发生了好几次,因为将新表添加到架构中我再次遇到此错误,因为我使用的用户无权读取新添加的表。

  4. 它还取决于您使用什么来挖掘日志。 如果是 LogMiner,则设置非常简单,对于二进制文件,您需要执行的额外命令很少。 安装文档中提到了哪些。

  5. 使用您在 DMS 上使用的同一用户登录数据库,并检查重做日志是否存在于 -

    SELECT * 来自 V$ARCHIVED_LOG;

在此处输入图像描述

  1. 还要检查上面屏幕截图中突出显示的 DEST_ID。 据我所知,DMS 上的默认值为 0。 您可以为您的数据库检查这个并在额外的连接属性中添加设置 -

archivedLogDestId=1;

  1. 检查您的日志是否有多个 DEST_ID,例如,如果您看到 DEST_ID 为 1,如上图所示,确认使用 -

    SELECT * 来自 V$ARCHIVED_LOG,其中 dest_id 不在 (1)

    这应该什么都不返回,但如果返回记录,复制那些额外的 DEST_ID 并将它们粘贴到下面的连接属性中 -

additionalArchivedLogDestId=[0,2,3, ...,n]

  1. 最后,如果这不起作用,请启用详细的调试日志记录, 您可以在此处进行操作 在我们的例子中,logminer 和 DMS 用户无权读取重做日志。

我使用的一些额外的连接属性可以帮助你使用 logminer-

addSupplementalLogging=Y;useLogminerReader=Y;archivedLogDestId=1;additionalArchivedLogDestId=[0,2,3];ignoreTxnCtxValidityCheck=false;cdcTimeout=1200

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM