使用 Oracle 数据库重做日志文件

Database Migration Service 利用 Oracle LogMiner API(Oracle 数据库的一部分)来查询归档的重做日志文件。这些文件包含有关数据库活动历史记录的信息。每个 Oracle 数据库都有一组在线重做日志文件。 数据库中的所有事务记录都记录在文件中。

当前重做日志文件被轮替(或被切换)时,归档过程 会将此文件复制到归档存储。同时,数据库会将另一个文件提升为当前文件。

当 Database Migration Service 使用 Oracle LogMiner API 时,它不会访问在线重做日志文件,而只会使用归档的日志文件。 访问归档的重做日志文件会给迁移过程带来一些延迟。本页介绍了针对 Oracle 源数据库的建议配置,以控制延迟影响。

为 Oracle 重做日志文件设置配置参数

此设计对 Database Migration Service 的潜在延迟时间有着深远的影响。如果 Oracle 重做日志文件频繁切换或保持较小的大小(例如 < 256 MB),则 Database Migration Service 可以更快地复制更改。

您可以设置配置参数来控制日志文件轮替频率:

  • 大小:在线重做日志文件的大小下限为 4 MB, 默认大小取决于您的操作系统。您可以通过创建新的在线日志文件并删除旧的日志文件来修改日志文件的大小 。

    要查找在线重做日志文件的大小,请运行以下查询:

    SELECT GROUP#, STATUS, BYTES/1024/1024 MB FROM V$LOG
  • 时间ARCHIVE_LAG_TARGET 参数提供主数据库的当前日志可跨越的时长上限(以秒为单位)。

    这不是确切的日志切换时间,因为需要考虑归档日志所需的时间 。默认值为 0(无上限), 建议使用合理的值 1800(或 30 分钟)或更小的值。

    您可以在初始化期间或数据库启动后使用以下命令来设置 ARCHIVE_LAG_TARGET 参数:

    • SHOW PARAMETER ARCHIVE_LAG_TARGET; 此命令会显示 当前日志跨越所需的时间(以秒为单位)。
    • ALTER SYSTEM SET ARCHIVE_LAG_TARGET = number-of-seconds; 使用此命令可更改上限。

      例如,如需将上限设置为 10 分钟(或 600 秒), 请输入 ALTER SYSTEM SET ARCHIVE_LAG_TARGET = 600;