目录标题
-
- 语句
-
- 代码解释:
- 1. `sys.dm_hadr_database_replica_states` 视图字段详细解释及官网链接
-
- 官网链接
- 字段解释
- 2. `sys.availability_replicas` 视图字段详细解释及官网链接
-
- 官网链接
- 字段解释
- 查看视图的创建语句
-
- 方法一:使用 SQL Server Management Studio (SSMS)
- 方法二:使用系统视图 `sys.sql_modules`
-
- 代码解释:
- 方法三:使用 `sp_helptext` 存储过程
-
- 注意事项:
- `[dbo].[ha_status]`
-
- 1. 视图基本信息
- 2. 视图定义
- 3. 选择列及计算列
- 4. 表连接
- 总结
- `[master].[dbo].[ha_status]` 的全面解释
-
- 整体概述
- 1. 查询语句部分
-
- 各部分解释
- 2. 视图 `[ha_status]` 各列详细解释
-
- 标识信息
- 故障转移相关
- 副本角色与模式
- 恢复时间与性能指标
- 同步与状态信息
- 其他信息
- seeding
-
- Seeding 的主要作用
- 常见的 Seeding 状态及含义
-
- 1. `NOT_STARTED`
- 2. `IN_PROGRESS`
- 3. `COMPLETED`
- 4. `FAILED`
- 5. `CANCELLED`
- 查看 Seeding 状态的方法
-
- 使用系统视图 `sys.dm_hadr_automatic_seeding`
语句
sys.dm_hadr_database_replica_states
和 sys.availability_replicas
视图关联起来,
SELECT
ar.replica_id,
ar.replica_server_name,
ar.endpoint_url,
ar.failover_mode_desc,
ar.availability_mode_desc,
drs.database_id,
drs.group_database_id,
drs.is_local,
drs.is_primary_replica,
drs.synchronization_state,
drs.synchronization_state_desc,
drs.is_commit_participant,
drs.synchronization_health,
drs.synchronization_health_desc,
drs.database_state,
drs.database_state_desc,
drs.is_suspended,
drs.suspend_reason,
drs.suspend_reason_desc,
drs.recovery_lsn,
drs.truncation_lsn,
drs.last_sent_lsn,
drs.last_sent_time,
drs.last_received_lsn,
drs.last_received_time,
drs.last_hardened_lsn,
drs.last_hardened_time,
drs.last_redone_lsn,
drs.last_redone_time,
drs.log_send_queue_size,
drs.log_send_rate,
drs.redo_queue_size,
drs.redo_rate,
drs.filestream_send_rate,
drs.end_of_log_lsn,
drs.last_commit_lsn,
drs.last_commit_time,
drs.low_water_mark_for_ghosts,
drs.secondary_lag_seconds,
drs.quorum_commit_lsn,
drs.quorum_commit_time
FROM
sys.availability_replicas ar
JOIN
sys.dm_hadr_database_replica_states drs ON ar.replica_id = drs.replica_id;
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;
代码解释:
-
sys.availability_replicas
视图:- 该视图存储了 Always On 可用性组中每个副本的元数据信息。
replica_id
:副本的唯一标识符。replica_server_name
:副本所在的 SQL Server 实例名称。endpoint_url
:副本的端点 URL,用于副本之间的通信。failover_mode_desc
:副本的故障转移模式描述,例如自动故障转移、手动故障转移等。availability_mode_desc
:副本的可用性模式描述,如同步提交、异步提交。
-
sys.dm_hadr_database_replica_states
视图:- 这是一个动态管理视图,提供了关于可用性组中数据库副本的实时状态信息。
- 包含了你之前展示的众多列,如
database_id
、is_local
、is_primary_replica
、同步状态相关列、日志序列号相关列等。
-
JOIN
操作:- 通过
JOIN
语句将sys.availability_replicas
视图和sys.dm_hadr_database_replica_states
视图根据replica_id
进行关联。 - 这样可以把副本的元数据信息(如副本所在服务器名称)和数据库副本的实时状态信息结合起来,让你既能确认
replica_id
对应的具体副本,又能查看该副本上数据库的详细状态。
- 通过
1. sys.dm_hadr_database_replica_states
视图字段详细解释及官网链接
官网链接
sys.dm_hadr_database_replica_states (Transact - SQL)
字段解释
replica_id
:可用性副本的唯一标识符,对应sys.availability_replicas
中的replica_id
,用于关联两个视图。group_id
:可用性组的唯一标识符。database_id
:数据库的标识符,标识该副本中的数据库。group_database_id
:可用性组内数据库的唯一标识符。is_local
:指示该副本是否为本地副本。值为 1 表示是本地副本,0 表示不是。is_primary_replica
:指示该副本是否为主副本。1 表示主副本,0 表示辅助副本。synchronization_state
:数据库副本的同步状态的数字代码。例如 1 表示SYNCHRONIZING
(正在同步),2 表示SYNCHRONIZED
(已同步)等。synchronization_state_desc
:同步状态的文本描述,与synchronization_state
代码对应。is_commit_participant
:指示该副本是否参与事务提交。1 表示参与,0 表示不参与。synchronization_health
:同步健康状态的数字代码。synchronization_health_desc
:同步健康状态的文本描述。database_state
:数据库状态的数字代码。database_state_desc
:数据库状态的文本描述。is_suspended
:指示该副本是否已暂停。1 表示暂停,0 表示未暂停。suspend_reason
:暂停原因的数字代码。suspend_reason_desc
:暂停原因的文本描述。recovery_lsn
:恢复日志序列号,指示数据库恢复的起始点。truncation_lsn
:截断日志序列号,指示可以截断日志的位置。last_sent_lsn
:主副本上最后发送到辅助副本的日志序列号。last_sent_time
:主副本上最后发送日志的时间。last_received_lsn
:辅助副本上最后接收到的日志序列号。last_received_time
:辅助副本上最后接收日志的时间。last_hardened_lsn
:辅助副本上最后持久化到磁盘的日志序列号。last_hardened_time
:辅助副本上最后持久化日志到磁盘的时间。last_redone_lsn
:辅助副本上最后重做的日志序列号。last_redone_time
:辅助副本上最后重做日志的时间。log_send_queue_size
:日志发送队列的大小(以字节为单位)。log_send_rate
:日志发送速率(以字节/秒为单位)。redo_queue_size
:重做队列的大小(以字节为单位)。redo_rate
:重做速率(以字节/秒为单位)。filestream_send_rate
:FileStream 数据的发送速率(以字节/秒为单位)。end_of_log_lsn
:日志末尾的日志序列号。last_commit_lsn
:最后提交事务的日志序列号。last_commit_time
:最后提交事务的时间。low_water_mark_for_ghosts
:幽灵记录的低水位标记。secondary_lag_seconds
:辅助副本相对于主副本的延迟秒数。quorum_commit_lsn
:法定提交的日志序列号。quorum_commit_time
:法定提交的时间。
2. sys.availability_replicas
视图字段详细解释及官网链接
官网链接
sys.availability_replicas (Transact - SQL)
字段解释
replica_id
:可用性副本的唯一标识符,用于和sys.dm_hadr_database_replica_states
视图进行关联。group_id
:可用性组的唯一标识符。replica_metadata_id
:副本的元数据标识符。replica_server_name
:承载该可用性副本的 SQL Server 实例的名称。owner_sid
:副本所有者的安全标识符。endpoint_url
:副本的端点 URL,用于副本之间的通信。availability_mode
:可用性模式的数字代码,例如 1 表示同步提交,2 表示异步提交。availability_mode_desc
:可用性模式的文本描述。failover_mode
:故障转移模式的数字代码,例如 1 表示自动故障转移,2 表示手动故障转移。failover_mode_desc
:故障转移模式的文本描述。session_timeout
&