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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 数据库管理 » 数据库维护 » SQL Anywhere 高可用性 » 数据库镜像系统设置

 

数据库镜像断开连接的情形

在数据库镜像系统中,当数据库服务器间的连接断开时,以下注释适用:

  • 服务器发现网络连接已断开所需的时间取决于:

    1. 连接的中断方式。如果网络电缆已从计算机上拔下,某些操作系统会立即检测到该问题,这会导致连接中断。如果该问题是由网络交换机故障导致的,那么服务器很可能不会立即检测到该问题。

    2. 在镜像连接字符串中指定的活动超时设置。请参见LivenessTimeout 连接属性

  • 为使主服务器保持对镜像数据库的所有权,它必须至少连接到一个其它服务器(镜像服务器或仲裁服务器)。当与其它两个服务器的连接都丢失时,数据库会重新启动,主服务器会一直等待,直到它至少能够重新建立一个这种连接以验证其状态。

  • 当导致连接断开的问题得到更正时,会自动重新建立服务器间的连接。

  • 在服务器检测到断开的连接之前,它会一直保持其先前分配的角色。如果先前是镜像服务器的服务器在主服务器检测到自身与镜像服务器间的连接已断开之前就检测到与主服务器间的连接已断开,那么此行为会导致在短时间内两个服务器都试图充当主服务器。当服务器试图将其更改发送到其它服务器时,在原主服务器上所做的第一次更新会发生阻塞,这样就会避免发生这种情况时可能发生的事务丢失的情况。

    当原主服务器检测到与原镜像服务器的连接已断开并检查仲裁服务器的状态时,它会发现已发生故障转移并会重新启动数据库。

  • 如果充当镜像服务器的服务器必须重新启动其数据库,那么在与主服务器的连接得到重新建立之前,将不允许对该服务器上的数据库进行访问。

  • 根据网络拓扑的不同,网络故障可能会影响客户端连接和镜像服务器连接。

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

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

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

 第 7 种情形:主服务器与仲裁服务器间的连接断开
 第 8 种情形:镜像服务器与仲裁服务器间的连接断开
 第 9 种情形:主服务器和镜像服务器间的连接断开
 第 10 种情形:主服务器与镜像服务器和仲裁服务器间的连接断开
 第 11 种情形:镜像服务器与主服务器和仲裁服务器间的连接断开
 第 12 种情形:仲裁服务器与主服务器和镜像服务器间的连接断开
 第 13 种情形:所有服务器间的连接都断开