疑难解答:数据库镜像系统中的服务器变得不可用

以下情形会帮助您了解当镜像系统中的服务器变为不可用时会发生什么情况。这些情形使用以下数据库镜像配置,其中包括在同步模式下运行的服务器 1、服务器 2 和仲裁服务器:

使用的镜像正在同步中 镜像不能用_服务器系统可以镜像不

您可以随时使用 MirrorState、PartnerState 和 ArbiterState 数据库属性来确定镜像系统中数据库服务器的状态

在镜像系统中会定期对主服务器、镜像服务器以及仲裁服务器间的通信进行检查。一个或多个服务器变得不可用和/或服务器间的网路中断可导致三个服务器间的通信发生中断。

主服务器(服务器 1)变为不可用。所有客户端断开连接。

仲裁服务器和服务器 2 检测到服务器 1 不再可用。

仲裁服务器和服务器 2 达到法定数目,服务器 2 成为主服务器。

服务器 2 开始接受客户端连接。

在这种情形下,如果在异步或异步满页模式下运行并且没有指定应该发生自动故障转移,则可能需要制作数据库的副本并重新启动仍在运行的服务器,之后客户端才能重新连接。

有关在主服务器变为不可用的情况下进行恢复的详细信息,请参见疑难解答:如何从主服务器故障中恢复。

主服务器(服务器 1)变为不可用。所有客户端断开连接。

仲裁服务器和镜像服务器(服务器 2)检测到主服务器(服务器 1)不再可用。

仲裁服务器和服务器 2 达到法定数目,服务器 2 成为主服务器。

服务器 2 开始接受客户端连接。

服务器 1 恢复在线并重新连接到服务器 2 和仲裁服务器。

服务器 1 请求法定数目,但服务器 2 已经是主服务器。

服务器 1 是镜像服务器,等待来自服务器 2 的更改。

服务器 2 向服务器 1 发送更改。

如果在服务器 1 还没有收到服务器 2 的所有事务的情况下,服务器 2 已变为不可用,那么服务器 1 无法达到已同步状态。它必须等待服务器 2 重新变为可用,才能够获得和应用目前还没拥有的事务。

有关在主服务器变为不可用的情况下进行恢复的详细信息,请参见疑难解答:如何从主服务器故障中恢复。

镜像服务器(服务器 2)变为不可用。

仲裁服务器和服务器 1 检测到镜像服务器(服务器 2)不再可用。

客户端连接不受影响。它们可以继续连接到主服务器。但是,如果服务器 1 或仲裁服务器变为不可用,客户端便无法连接。

镜像服务器(服务器 2)变为不可用。

客户端连接不受影响,因为可用性方面没有变化。它们可以继续连接到主服务器。但是,如果服务器 1 或仲裁服务器变为不可用,则客户端无法连接。

服务器 2 恢复在线并重新连接到服务器 1 和仲裁服务器。

服务器 2 请求法定数目,但服务器 1 已经是主服务器。

服务器 2 是镜像服务器,等待来自服务器 1 的更改。

服务器 1 向服务器 2 发送更改。

客户端连接不受影响,因为可用性方面没有变化。它们继续连接到服务器 1。

服务器 1(主服务器)和服务器 2(镜像服务器)检测到仲裁服务器不可用。

而这两个服务器仍然可用。客户端连接没有断开。

仲裁服务器恢复在线后,服务器 1 和服务器 2 会检测到它并开始与其通信。对于客户端来说,数据库可用性方面没有变化。

如果在没有仲裁服务器的情况下,服务器 1 或服务器 2 变为不可用,则另一个服务器自己无法达到法定数目,同时数据库将不可用。

仲裁服务器恢复在线并重新连接到服务器 1 和服务器 2。

客户端连接不受影响,因为可用性方面没有变化。