Oracle 端点故障排除 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Oracle 端点故障排除

本节包含特定于 Oracle 的复制场景。

源读取暂停

在以下情况下,Amazon DMS 会暂停从 Oracle 源读取。此行为是设计使然。您可以使用任务日志调查这种情况的原因。在任务日志中查找类似于以下内容的消息。有关使用任务日志的更多信息,请参阅查看和管理 Amazon DMS 任务日志

  • SORTER 消息:这表明 DMS 正在缓存复制实例上的事务。有关更多信息,请参阅下面的任务日志中的 SORTER 消息

  • 调试任务日志:如果 DMS 中断了读取进程,则您的任务会将以下消息重复写入调试任务日志,而不会更改上下文字段或时间戳:

    • Binary Reader

      [SOURCE_CAPTURE ]T: Produce CTI event: context '00000020.f23ec6e5.00000002.000a.00.0000:190805.3477731.16' xid [00000000001e0018] timestamp '2021-07-19 06:57:55' thread 2 (oradcdc_oralog.c:817)
    • Logminer

      [SOURCE_CAPTURE ]T: Produce INSERT event: object id 1309826 context '000000000F2CECAA010000010005A8F500000275016C0000000000000F2CEC58' xid [000014e06411d996] timestamp '2021-08-12 09:20:32' thread 1 (oracdc_reader.c:2269)
  • Amazon DMS 为每个新的重做或存档日志操作记录以下消息。

    00007298: 2021-08-13T22:00:34 [SOURCE_CAPTURE ]I: Start processing archived Redo log sequence 14850 thread 2 name XXXXX/XXXXX/ARCHIVELOG/2021_08_14/thread_2_seq_14850.22977.1080547209 (oradcdc_redo.c:754)

    如果源有新的重做或归档日志操作,并且 Amazon DMS 没有将这些消息写入日志,则这意味着任务没有处理事件。

重做生成速率高

如果您的任务正在处理重做或存档日志,但源延迟仍然很高,请尝试确定重做日志的生成速率和生成模式。如果您有很高的重做日志生成水平,这会增加源延迟,因为任务会读取所有重做和存档日志,以便提取与复制的表相关的更改。

要确定重做生成速率,请使用以下查询。

  • 每日重做生成速率:

    select trunc(COMPLETION_TIME,'DD') Day, thread#, round(sum(BLOCKS*BLOCK_SIZE)/1024/1024/1024) GB, count(*) Archives_Generated from v$archived_log where completion_time > sysdate- 1 group by trunc(COMPLETION_TIME,'DD'),thread# order by 1;
  • 每小时重做生成速率:

    Alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'; select trunc(COMPLETION_TIME,'HH') Hour,thread# , round(sum(BLOCKS*BLOCK_SIZE)/1024/1024) "REDO PER HOUR (MB)", count(*) Archives from v$archived_log where completion_time > sysdate- 1 group by trunc(COMPLETION_TIME,'HH'),thread# order by 1 ;

在此场景中要排除延迟问题,请检查以下内容:

  • 检查网络带宽和复制的单线程性能,确保底层网络可以支持源重做生成速率。有关网络带宽如何影响复制性能的信息,请参见前文中的网络速度和带宽

  • 检查您是否正确设置了补充日志记录。请避免在源上进行额外的日志记录,例如在表的所有列上启用日志记录。有关设置补充日志记录的信息,请参阅设置补充日志记录

  • 确认您使用了正确的 API 来读取重做或归档日志。您可以使用 Oracle LogMiner 或Amazon DMS二进制阅读器。 LogMiner 读取在线重做日志和存档的重做日志文件时,Binary Reader 会直接读取和解析原始重做日志文件。因此,Binary Reader 的性能更高。如果您的重做日志生成速率超过 10 GB/小时,建议您使用 Binary Reader。有关更多信息,请参见 在 CDC 中使用 Oracle LogMiner 或 Amazon DMS 二进制阅读器

  • 检查 ArchivedLogsOnly 是否设置为 Y。如果设置了此端点设置,则 Amazon DMS 会从存档重做日志进行读取。这会增加源延迟,因为 Amazon DMS 要等待在线重做日志存档后再读取。有关更多信息,请参阅ArchivedLogsOnly

  • 如果您的 Oracle 源使用自动存储管理 (ASM),有关如何正确配置数据存储的信息,请参阅 使用 Oracle 作为源时在 Oracle ASM 上存储 REDO Amazon DMS。您还可以使用 asmUsePLSQLArray 额外连接属性 (ECA) 进一步优化读取性能。有关使用 asmUsePLSQLArray 的信息,请参阅 使用 Oracle 作为来源时的终端节点设置 Amazon DMS