数据库镜像和日志传送 (SQL Server)

给定的数据库可以进行镜像或日志传送;它还可以同时进行镜像和日志传送。 若要选择使用哪种方法,请考虑以下事项:

  • 需要多少个目标服务器?

    如果只需要单个目标数据库,建议使用数据库镜像解决方案。

    如果需要多个目标数据库,则需要单独使用日志传送或数据库镜像。 结合这些方法,您可以享有数据库镜像的优势,同时也能支持日志传送到多个目标。

  • 如果需要延迟还原目标数据库上的日志(通常为防止逻辑错误),请单独使用日志传送或数据库镜像。

本主题讨论合并日志传送和数据库镜像的注意事项。

注释

有关这些技术的简介,请参阅数据库镜像(SQL Server)关于日志传送(SQL Server)。

合并日志传送和数据库镜像

镜像会话中的主体数据库还可以充当日志传送配置中的主数据库,反之亦然,因为日志传送备份共享保持不变。 数据库镜像会话在任何作模式下运行,无论是同步(事务安全设置为 FULL)还是异步(事务安全设置为 OFF)。

注释

若要在数据库上使用数据库镜像,始终需要完全恢复模式。

通常,在合并日志传送和数据库镜像时,镜像会话是在日志传送之前建立的,尽管这不是必需的。 然后,将当前主体数据库配置为日志传送主数据库( 主体/主数据库),以及一个或多个远程辅助数据库。 此外,必须将镜像数据库配置为日志传送主数据库( 镜像/主数据库)。 日志传送辅助数据库应与主体/主服务器或镜像/主服务器位于不同的服务器实例上。

注释

进行日志传送时,相关服务器的大小写敏感设置应保持一致。

在日志传送会话期间,主数据库上的备份作业会在备份文件夹中创建日志备份。 从那里,备份通过次级服务器的复制任务进行复制。 要使备份作业和复制作业成功,它们必须有权访问日志传送备份文件夹。 若要最大程度地提高主服务器的可用性,建议在单独的主计算机上的共享备份位置中建立备份文件夹。 确保所有日志传送服务器(包括镜像/主服务器)都可以访问共享备份位置(称为 备份共享)。

若要允许日志传送在数据库镜像故障转移后继续,还必须将镜像服务器配置为主服务器,并使用用于主体数据库上的主服务器的相同配置。 镜像数据库处于还原状态,这会阻止备份作业备份镜像数据库上的日志。 这可确保镜像/主数据库不会干扰辅助服务器当前正在复制其日志备份的主体/主数据库。 为防止出现虚假警报,备份作业在镜像/主数据库上执行后,备份作业会将消息记录到 log_shipping_monitor_history_detail 表中,代理作业将返回成功状态。

镜像/主数据库在日志传送会话中处于非活动状态。 但是,如果镜像故障转移失败,以前的镜像数据库将作为主数据库上线。 此时,该数据库也会作为日志传送主数据库处于活动状态。 先前无法进行日志传送的数据库对应的备份作业已开始进行日志传送。 相反,故障切换会导致以前的主数据库成为新的镜像数据库,并进入还原状态,该数据库上的备份作业将停止日志备份。

注释

发生自动故障转移时,当以前的主体/主数据库重新加入镜像会话时,将切换到镜像角色。

为了在高安全模式下运行并启用自动故障转移,镜像会话配置了一个称为 见证的附加服务器实例。 如果在同步数据库后由于任何原因而丢失主体数据库,并且镜像服务器和见证服务器仍可以相互通信,则会发生自动故障转移。 自动故障转移会使镜像服务器担任主节点角色,并将其数据库作为主数据库联机。 如果新的主体/主服务器可以访问日志传送备份位置,则其备份作业开始将日志备份寄送到该位置。 数据库镜像同步模式确保日志链不会因镜像故障转移而受到影响,并且仅恢复有效日志。 辅助服务器继续复制日志备份,而无需知道其他服务器实例已成为主服务器。

使用本地日志传送监视器时,无需采取特殊注意事项来适应此方案。 有关将远程监视实例用于此方案的信息,请参阅本主题后面的“数据库镜像对远程监视实例的影响”。

从主数据库失败后切换到镜像数据库

下图显示了使用自动故障转移在高安全模式下运行镜像时日志传送和数据库镜像如何协同工作。 最初, Server_A 既是镜像的主体服务器,也是用于日志传送的主服务器。 Server_B 是镜像服务器,并且还配置为主服务器,该服务器当前处于非活动状态。 Server_CServer_D 是日志传送辅助服务器。 为了最大限度地提高日志传送会话的可用性,备份位置位于单独的主计算机上的共享目录中。

日志传送和数据库镜像

镜像故障转移后,辅助服务器上定义的主服务器名称保持不变。 .

数据库镜像对远程监视实例的影响

当日志传送与远程监视实例一起使用时,合并日志传送会话和数据库镜像会影响监视表中的信息。 有关主数据库的信息是主体/主数据库上配置的信息和在每个辅助副本上配置的监视器的组合。

若要尽可能无缝地监视,在使用远程监视器时,建议在辅助位置配置主数据库时指定原始主名称。 此方法还有助于从 Microsoft SQL Server 代理更改日志传送配置。 有关监视的详细信息,请参阅“监视日志传送”(Transact-SQL)。

将镜像和日志传送设置在一起

若要一起设置数据库镜像和日志传送,需要执行以下步骤:

  1. 使用 NORECOVERY 将主体/主数据库的备份还原到另一个服务器实例上,以便稍后用作主体/主数据库的数据库镜像镜像数据库。 有关详细信息,请参见准备镜像数据库用于镜像 (SQL Server)

  2. 设置数据库镜像。 有关详细信息,请参阅 使用 Windows 身份验证(SQL Server Management Studio)建立数据库镜像会话设置数据库镜像 (SQL Server)

  3. 将主数据库的备份还原到其他服务器实例,以便稍后用作主数据库的日志传输辅助数据库。

  4. 将主体数据库上的日志传送设置为一个或多个辅助数据库的主数据库。

    应将单个共享设置为备份目录(备份共享)。 这可确保在主体服务器和镜像服务器之间切换角色后,备份作业将继续写入到与以前相同的目录。 最佳做法是确保此共享位于与托管镜像和日志传送中涉及的数据库的服务器不同的物理服务器上。

    有关详细信息,请参阅配置日志传送 (SQL Server)

  5. 手动将主服务器切换故障到镜像服务器。

    若要执行手动故障转移,请执行以下操作:

  6. 将新主体(以前镜像)上的日志传送设置为主数据库。

    重要

    不要从从属设备执行任何设置。

    必须使用在步骤 4 中使用的同一个备份共享。

    SQL Server Management Studio 中的 事务日志传送 接口仅支持每个日志传送配置一个主数据库。 因此,必须使用存储过程将新主体设置为主要主体。

  7. 执行另一次手动故障转移以切换回原始主库。