Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 维护数据库 » SQL Anywhere 高可用性 » 设置数据库镜像

 

数据库镜像情形

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

数据库镜像系统示例,其中包括服务器 1、服务器 2 和仲裁服务器。

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

第 1 种情形:主服务器变为不可用
  1. 主服务器(服务器 1)变为不可用。所有客户端断开连接。

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

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

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

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

有关在主服务器变为不可用的情况下进行恢复的详细信息,请参见从主服务器故障恢复

第 2 种情形:主服务器变为不可用后重新启动
  1. 仲裁服务器和镜像服务器(服务器 2)检测到主服务器(服务器 1)不再可用。

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

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

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

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

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

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

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

有关在主服务器变为不可用的情况下进行恢复的详细信息,请参见从主服务器故障恢复

第 3 种情形:镜像服务器变为不可用
  1. 镜像服务器(服务器 2)变为不可用。

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

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

第 4 种情形:镜像服务器变为不可用后重新启动
  1. 镜像服务器(服务器 2)变为不可用。

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

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

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

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

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

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

第 5 种情形:仲裁服务器变为不可用
  1. 服务器 1(主服务器)和服务器 2(镜像服务器)检测到仲裁服务器不可用。

  2. 而这两个服务器仍然可用。客户端不会断开连接。

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

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

第 6 种情形:仲裁服务器重新启动
  1. 仲裁服务器恢复在线并重新连接到服务器 1 和服务器 2。

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