镜像状态 (SQL Server)

在数据库镜像会话期间,镜像数据库始终处于特定状态( 镜像状态)。 数据库的状态反映了通信状态、数据流以及合作伙伴之间的数据差异。 数据库镜像会话采用与主体数据库相同的状态。

在整个数据库镜像会话中,服务器实例相互监视。 合作伙伴使用镜像状态监视数据库。 除了PENDING_FAILOVER状态之外,主体数据库和镜像数据库始终处于相同的状态。 如果会议设置了见证,每个合作伙伴都会通过其连接状态(连接或断开连接)来监控见证。

数据库的可能镜像状态如下所示:

镜像状态 DESCRIPTION
同步 镜像数据库的内容滞后于主体数据库的内容。 主体服务器正在将日志记录发送到镜像服务器,该服务器将更改应用到镜像数据库以向前滚动。

在数据库镜像会话开始时,数据库处于同步状态。 主体服务器正在为数据库提供服务,镜像正在尝试赶上。
同步 当镜像服务器足够赶上主体服务器时,镜像状态将更改为 SYNCHRONIZED。 只要主体服务器继续向镜像服务器发送更改,镜像服务器将继续对镜像数据库应用更改,数据库将保持此状态。

如果事务安全设置为 FULL,自动故障转移和手动故障转移在 SYNCHRONIZED 状态下均受支持,则故障转移后不会丢失任何数据。

如果事务安全关闭,即使处于 SYNCHRONIZED 状态,也有可能丢失某些数据。
暂停 数据库镜像不可用。 主数据库正在运行,却没有向镜像服务器发送任何日志,这种情况称为运行公开。 这是故障转移后的状态。

会话可能因重做操作错误或管理员暂停而进入挂起状态。

SUSPENDED 是一种持久状态,在合作伙伴关闭和启动后幸存下来。
PENDING_FAILOVER 只有在故障转移开始后,才会在主体服务器上找到此状态,但服务器尚未转换为镜像角色。

启动故障转移后,主数据库进入PENDING_FAILOVER状态,迅速终止所有用户连接,并随后转为镜像角色。
断开 合作伙伴已与其他合作伙伴失去沟通。

另请参阅

监视数据库镜像 (SQL Server)