数据库镜像会话以同步操作或异步操作运行。 在异步操作下,事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。 在同步操作下,事务将在伙伴双方处提交,但会延长事务滞后时间。
有两种镜像运行模式。 一种是高安全性模式,它支持同步操作。 在高安全性模式下,当会话开始时,镜像服务器将使镜像数据库尽快与主体数据库同步。 一旦同步了数据库,事务将在伙伴双方处提交,这会延长事务滞后时间。
第二种运行模式,即高性能模式,以异步方式运行。 镜像服务器尝试与主体服务器发送的日志记录保持同步。 镜像数据库可能稍微滞后于主体数据库。 但是,数据库之间的时间间隔通常很小。 但是,如果主体服务器的工作负荷过高或镜像服务器系统的负荷过高,则时间间隔会增大。
在高性能模式中,主体服务器向镜像服务器发送日志记录之后,会立即再向客户端发送一条确认消息。 它不会等待镜像服务器确认。 这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交。 此异步操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据。
所有数据库镜像会话都只支持一台主体服务器和一台镜像服务器。 下图显示了该配置。
具有自动故障转移功能的高安全性模式要求使用第三个服务器实例,称为见证服务器。 与这两个伙伴不同的是,见证服务器并不能用于数据库。 见证服务器通过验证主体服务器是否已启用并运行来支持自动故障转移。 只有在镜像服务器和见证服务器与主体服务器断开连接之后而保持相互连接时,镜像服务器才启动自动故障转移。
下图显示了包含见证服务器的配置。
在数据库镜像会话上下文中,通常可以使用一个称为“角色切换” 的过程来互换主体角色和镜像角色。 角色切换涉及将主体角色转换给镜像服务器的操作。 在角色切换中,镜像服务器充当主体服务器的“故障转移伙伴 ”。 进行角色切换时,镜像服务器将接管主体角色,并使其数据库的副本联机以作为新的主体数据库。 以前的主体服务器(如果有)将充当镜像角色,并且其数据库将变为新的镜像数据库。 这些角色可以反复地来回切换。
存在以下三种角色切换形式。
自动故障转移
这要求使用高安全性模式并具有镜像服务器和见证服务器。 数据库必须已同步,并且见证服务器必须连接到镜像服务器。
见证服务器的作用是验证给定的伙伴服务器是否已启动并运行。 如果镜像服务器与主体服务器断开连接,但见证服务器仍与主体服务器保持连接,则镜像服务器无法启动故障转移。 有关详细信息,请参阅 数据库镜像见证服务器。
手动故障转移
这要求使用高安全性模式。 伙伴双方必须互相连接,并且数据库必须已同步。
强制服务(可能造成数据丢失)
在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器出现故障而镜像服务器可用,则可以强制服务运行。
重要
高性能模式用于在没有见证服务器的情况下运行。 但如果存在见证服务器,则强制服务将要求见证服务器连接到镜像服务器。
在任何一种角色切换情况下,一旦新的主体数据库联机,客户端应用程序便会通过重新连接到数据库来快速恢复。