失而复得的事务

使用异步更新时,在主数据库服务器上落实的事务可能未在辅助数据库服务器上复制。如果在主数据库服务器将落实记录复制到 HDR 缓冲区之后但在主数据库服务器将该落实记录发送至辅助数据库服务器之前发生故障,就会产生这种情况。

如果在主数据库服务器故障后将辅助数据库服务器更改为标准数据库服务器,它会回滚所有打开的事务。这些事务包括任何在主数据库服务器上落实但辅助数据库服务器未接收到其落实记录的事务。因此,事务在主数据库服务器上但未在辅助数据库服务器上落实。当您在故障后重新启动数据复制,那么数据库服务器在主数据库服务器的逻辑恢复期间将丢失的事务中的所有逻辑日志记录放置在某文件(DRLOSTFOUND 配置参数指定)中。下图说明了该过程。

图: 使用失而复得的文件


在此图之前的段描述了此图的内容。

如果在重新启动数据复制后的运行主数据库服务器的计算机上创建不失而复得的文件,那么表示已丢失事务。数据库服务器无法重新应用失而复得文件中的事务记录,因为在辅助数据库服务器充当标准数据库服务器时可能发生了有冲突的更新。

为了减少不用同步方式运行数据复制而丢失事务的风险,请为所有数据库使用未缓冲日志记录。该方法减少了从主数据库服务器到辅助数据库服务器的写入和事务记录传送之间所需的时间量。