异步数据库镜像(高性能模式)

注意注意

只有 SQL Server 2005 Enterprise Edition Service Pack 1 (SP1) 和更高版本支持异步数据库镜像。

将事务安全设置为 OFF 时,数据库镜像会话便会异步运行。异步操作仅支持一种操作模式 - 高性能模式。此模式可增强性能,但要牺牲高可用性。高性能模式仅使用主体服务器和镜像服务器。镜像服务器上出现的问题不会影响主体服务器。在丢失主体服务器的情况下,镜像数据库将标记为 DISCONNECTED,但仍可以作为备用数据库。

高性能模式仅支持一种角色切换形式:强制服务(可能造成数据丢失),此服务使用镜像服务器作为备用服务器。强制服务是可能对主体服务器故障作出的响应之一。由于可能造成数据丢失,因此,应当在将服务强制到镜像之前考虑其他备选服务器。有关详细信息,请参阅本主题后面的“对主体失败做出响应”。

下图显示了使用高性能模式的会话的配置。

会话的仅伙伴配置

在高性能模式下,主体服务器向镜像服务器发送事务日志之后,就立即向客户端发送确认,而不会等待镜像服务器的确认。事务不等待镜像服务器将日志写入磁盘便提交。异步操作允许主体服务器的运行有一段最短事务滞后时间。

镜像服务器尝试与主体服务器发送的日志记录保持同步。但是镜像数据库可能在某种程度上滞后于主体数据库,尽管这两个数据库之间的时间间隔通常很小。但是,如果主体服务器的工作负荷过高或镜像服务器系统的负荷过高,则时间间隔会增大。

何时适合使用高性能模式?

高性能模式在严重故障恢复方案中非常有用,在这种方案中,主体服务器和镜像服务器之间的距离非常大,并且您不希望小错误影响主体服务器。

注意注意

日志传送可以作为数据库镜像的补充,最好用其替代异步数据库镜像。有关日志传送优点的信息,请参阅高可用性解决方案概述。有关结合使用数据库镜像和日志传送的信息,请参阅数据库镜像和日志传送

见证服务器对高性能模式的影响

如果使用 Transact-SQL 配置高性能模式,则当 SAFETY 属性设置为 OFF 时,我们极力建议也将 WITNESS 属性设置为 OFF。见证服务器可以与高性能模式共存,但是见证服务器没有优点并可导致风险。

当其中任何一个伙伴出现故障而导致见证服务器与会话断开连接时,数据库便无法使用。这是因为,尽管高性能模式不需要见证服务器,但如果设置了见证服务器,则会话便需要由两个或多个服务器实例组成的仲裁。如果会话将仲裁丢失,则不能为数据库服务。

在高性能模式会话中设置了见证服务器后,仲裁的实施便意味着:

  • 如果镜像服务器丢失,则主体服务器必须连接到见证服务器。否则,主体服务器将使其数据库脱机,直到见证服务器或镜像服务器重新加入会话。

  • 如果主体服务器丢失,则强制服务到镜像服务器时需要将镜像服务器连接到见证服务器。

注意注意

有关仲裁类型的信息,请参阅仲裁:见证服务器如何影响数据库可用性

对主体服务器故障的响应

当主体服务器出现故障时,数据库所有者有多种选择,如下所示:

  • 使数据库不可用,直到主体服务器再次变为可用。

    如果主体数据库及其事务日志保持不变,此选择将保留所有已提交的事务,但会牺牲可用性。

  • 停止数据库镜像会话,手动更新数据库,然后开始新的数据库镜像会话。

    如果主体数据库丢失但主体服务器仍在运行,它将立即尝试备份主体数据库的日志尾部。如果结尾日志备份成功,则删除镜像可能是最佳选择。删除镜像后,可以将日志还原到以前的镜像数据库中,从而保留所有数据。

    注意注意

    如果结尾日志备份失败并且无法等待主体服务器恢复,则请考虑强制服务,这样做的好处是可以保持会话状态。

  • 在镜像服务器上进行强制服务(可能造成数据丢失)。

    严格讲来,强制服务是一种灾难恢复方法,应尽量少使用此方法。只有当主体服务器关闭,会话为异步会话(事务安全设置为 OFF),并且再满足会话不包含任何见证服务器(WITNESS 属性设置为 OFF)或见证服务器连接到镜像服务器(就是它们包含仲裁)这两个条件中的一个时,便可使用强制服务。

    强制服务会导致镜像服务器成为主体角色,并将其数据库的副本提供给客户端。进行强制服务后,主体服务器未发送至镜像服务器的所有事务日志都将丢失。因此,您应将强制服务的使用限制在以下两种情况:可以接受可能造成的数据丢失以及立即使用数据库对您很重要。有关强制服务的原理以及最佳使用方法的信息,请参阅强制服务(可能造成数据丢失)