根据sys.database_mirroring查询镜像数据库同步状态
SELECT * FROM sys.database_mirroring WHERE database_id =DB_ID('dbname')
主要查看mirroring_state字段和值和mirroring_end_of_log_lsn字段的值
实例 SQL Server 中的每个数据库在表中占一行。如果数据库未联机,或未启用数据库镜像,则除 database_id 以外的所有列的值都将为 NULL。
若要查看除 master 或 tempdb 以外的数据库行,您必须是数据库所有者或至少在 master 数据库中拥有 ALTER ANY DATABASE 或 VIEW ANY DATABASE 服务器级别的权限或 CREATE DATABASE 权限。若要查看某一镜像数据库上的非 NULL 值,您必须是 sysadmin 固定服务器角色的成员。
注意 |
---|
如果数据库未参与镜像,则所有带有 mirroring_ 前缀的列将为 NULL。 |
列名 |
数据类型 |
说明 |
---|---|---|
database_id |
int |
数据库的 ID。在 SQL Server 实例中是唯一的。 |
mirroring_guid |
uniqueidentifier |
镜像合作关系的 ID。 NULL = 数据库不可访问或未镜像。 注意
如果数据库未参与镜像,则所有带有 mirroring_ 前缀的列将为 NULL。
|
mirroring_state |
tinyint |
镜像数据库的状态和数据库镜像会话的状态。 0 = 已挂起 1 = 与其他伙伴断开 2 = 正在同步 3 = 挂起故障转移 4 = 已同步 5 = 伙伴未同步。现在无法进行故障转移。 6 = 伙伴已同步。可以进行故障转移。有关故障转移要求的信息,请参阅同步数据库镜像(高安全性模式)。 NULL = 数据库不可访问或未镜像。 |
mirroring_state_desc |
nvarchar(60) |
镜像数据库状态和数据库镜像会话状态的说明,可以是下列值之一: DISCONNECTED SYNCHRONIZED SYNCHRONIZING PENDING_FAILOVER SUSPENDED UNSYNCHRONIZED SYNCHRONIZED NULL 有关详细信息,请参阅镜像状态。 |
mirroring_role |
tinyint |
本地数据库在数据库镜像会话中的当前角色。 1 = 主体 2 = 镜像 NULL = 数据库不可访问或未镜像。 |
mirroring_role_desc |
nvarchar(60) |
本地数据库在镜像中的角色说明,可以是以下值之一: PRINCIPAL MIRROR |
mirroring_role_sequence |
int |
由于故障转移或强制服务,导致镜像伙伴在主体数据库角色和镜像数据库角色之间进行切换的次数。 NULL = 数据库不可访问或未镜像。 |
mirroring_safety_level |
tinyint |
镜像数据库更新的安全设置: 0 = 未知状态 1 = 关闭 [异步] 2 = 完全 [同步] NULL = 数据库不可访问或未镜像。 |
mirroring_safety_level_desc |
nvarchar(60) |
镜像数据库更新的事务安全设置,可以是下列值之一: UNKNOWN OFF FULL NULL |
mirroring_safety_sequence |
int |
将更改的序列号更新为事务安全级别。 NULL = 数据库不可访问或未镜像。 |
mirroring_partner_name |
nvarchar(128) |
数据库镜像伙伴的服务器名称。 NULL = 数据库不可访问或未镜像。 |
mirroring_partner_instance |
nvarchar(128) |
其他伙伴的实例名和计算机名称。如果伙伴成为主体服务器,则客户端需要此信息以连接到该伙伴服务器。 NULL = 数据库不可访问或未镜像。 |
mirroring_witness_name |
nvarchar(128) |
数据库镜像见证服务器的服务器名称。 NULL = 不存在见证服务器。 |
mirroring_witness_state |
tinyint |
数据库的数据库镜像会话中的见证服务器状态,可以是下列值之一: 0 = 未知 1= 已连接 2 = 已断开 NULL = 见证服务器不存在,数据库未联机或未镜像。 |
mirroring_witness_state_desc |
nvarchar(60) |
状态说明,可以是下列值之一: UNKNOWN CONNECTED DISCONNECTED NULL |
mirroring_failover_lsn |
numeric(25,0) |
保证将被镜像到两个伙伴服务器磁盘中的最新事务日志记录的日志序列号 (LSN)。故障转移之后,伙伴服务器便会将 mirroring_failover_lsn 用作调解点,在这个调解点上,新的镜像服务器开始将新的镜像数据库与新的主体数据库进行同步。 |
mirroring_connection_timeout |
int |
镜像连接超时值(秒)。这是等待伙伴或见证服务器回复的秒数,超过该时间后,伙伴或见证服务器将被视为不可用。默认超时值为 10 秒。 NULL = 数据库不可访问或未镜像。 |
mirroring_redo_queue |
int |
对镜像服务器重做的最大日志量。如果 mirroring_redo_queue_type已设置为默认设置 UNLIMITED,则此列为 NULL。如果数据库未联机,则该列也为 NULL。 否则,该列包含最大日志量 (MB)。如果达到最大值,则当镜像服务器也达到同一值时,日志将在主体服务器上临时停止。此功能限制故障转移时间。 有关详细信息,请参阅估计角色切换过程中的服务中断。 |
mirroring_redo_queue_type |
nvarchar(60) |
UNLIMITED 指示镜像不会禁止重做队列。这是默认设置。 以兆字节为单位的重做队列的最大大小 (MB)。注意,如果队列大小以 KB 或 GB 形式指定,则 SQL Server 2005 数据库引擎会将该值转换为 MB。 如果数据库未联机,则该列为 NULL。 |
mirroring_end_of_log_lsn |
numeric(25,0) |
已刷新到磁盘的本地日志结束信息。这与镜像服务器的硬化 LSN 对应(请查看 mirroring_failover_lsn列)。 |
mirroring_replication_lsn |
numeric(25,0) |
复制可以发送的最大 LSN。 |