延迟应用日志记录

要在灾难恢复场景中进行协助,可以将 RS 辅助服务器配置为先等待指定的时间段,然后应用从主服务器接收的日志。

通过延迟日志文件的应用,可从 RS 辅助服务器复原数据库来迅速地从错误的数据库修改中恢复。也可在指定时间停止 RS 辅助服务器上的日志应用。

例如,假设数据库管理员希望根据行的存在时间从表中删除特定行。表中的每行包含一个时间戳记,指示该行的创建时间。如果数据库管理员不慎将过滤器设置为错误日期,删除的行可能超出意愿。通过延迟日志文件的应用,这些行仍将保留在 RS 辅助服务器中。 然后,数据库管理员可以从辅助服务器抽取这些行,并将其插入到主服务器。

现在假设需要数据库管理员通过重命名表来对模式执行更改,但是数据库管理员输入了错误的命令并删除了表 orders,而不是将表名更改为 store_orders。 如果配置了 RS 辅助服务器以延迟日志的应用,那么数据库管理员可从辅助服务器恢复 orders 表。

配置了日志文件延迟应用时,达到指定时间段之前,将不应用从主服务器发送的事务。从主服务器接收的日志文件将在 RS 辅助服务器上的指定安全目录中登台,然后在指定时间段之后应用。延迟应用日志文件的方法有两种:

可通过在 RS 辅助服务器的 onconfig 文件中设置配置参数来启用日志文件的延迟应用。启用日志文件延迟应用之前,必须通过设置 LOG_STAGING_DIR 配置参数来指定日志文件的登台目录。指定 LOG_STAGING_DIR 配置参数之后,可通过编辑 onconfig 文件或动态使用 onmode -wf 命令来配置 DELAY_APPLY 或 STOP_APPLY 配置参数。

日志记录的存储位置

服务器将在 LOG_STAGING_DIR 指定的目录内额外创建名为 ifmxlog_## 的目录,其中 ## 是 SERVERNUM 指定的实例。这些目录用于存储逻辑日志,也在恢复 RS 辅助服务器期间使用。如果必须恢复 RS 辅助服务器,而主服务器上已经包装了日志,那么可使用 ifmxlog_## 中的日志来恢复该服务器。ifmxlog_## 内的文件在不再需要时将清除。

延迟触发的条件

BEGIN WORK、COMMIT WORK 和 ROLLBACK WORK 日志记录中的时间值用于计算延迟或停止应用日志文件的时间。将日志页传递到恢复进程之前,将计算这些时间值。

如果发出 BEGIN WORK 语句,事务执行第一个更新活动之前,将不写入 BEGIN WORK 日志记录;因此,发出 BEGIN WORK 语句的时间与写入 BEGIN WORK 日志的时间之间可能存在延迟。

与辅助服务器更新交互

必须注意辅助服务器更新与日志文件延迟应用之间的交互。如果启用了更新,并且更新了辅助服务器,那么达到 DELAY_APPLY 指定的时间量之前,将不应用更新。但是,禁用辅助服务器更新也将禁用“已落实读取”,从而保证检索行时,在表中落实检索到的每个行。

要保留“已落实读取”隔离级别,请考虑使用 UPDATABLE_SECONDARY 配置参数启用辅助服务器更新,但是从连接管理器服务级别协议列表中除去用于延迟应用日志文件的 RS 辅助服务器。也可以考虑将 RS 辅助服务器移动到新 SLA。

有关更多信息,请参阅辅助服务器上的数据库更新GBase 8s 管理员参考