共用方式為


監視可用性群組(Transact-SQL)

若要使用 Transact-SQL 監視可用性群組和複本和相關聯的資料庫,Always On 可用性群組提供一組目錄和動態管理檢視和伺服器屬性。 使用 Transact-SQL SELECT 語句,您可以使用檢視來監視可用性群組及其複本和資料庫。 針對指定可用性群組傳回的信息取決於您是否連接到裝載主要複本或次要複本的 SQL Server 實例。

小提示

其中許多檢視都可以使用ID欄位連結,以在單一查詢中回傳多個檢視的資訊。

權限

AlwaysOn 可用性群組目錄檢視需要伺服器實例的 VIEW ANY DEFINITION 許可權。 AlwaysOn 可用性群組動態管理檢視需要伺服器上的 VIEW SERVER STATE 許可權。

監視伺服器實例上的 AlwaysOn 可用性群組功能

若要監視伺服器實例上的 AlwaysOn 可用性群組功能,請使用下列內建函式:

SERVERPROPERTY 函式
傳回伺服器屬性資訊,說明是否已啟用 Always On 可用性群組,如果是的話,是否已在伺服器實例上啟動。

數據行名稱: IsHadrEnabled、HadrManagerStatus

監視 WSFC 叢集上的可用性群組

若要監控裝載已啟用 Always On 高可用性群組的本機伺服器實例之 Windows Server 故障轉移叢集 (WSFC) 叢集,請使用下列視圖:

sys.dm_hadr_cluster
如果裝載啟用了 Always On 可用性群組之 SQL Server 實例的 Windows Server 故障轉移叢集(WSFC)節點具有 WSFC 仲裁,sys.dm_hadr_cluster 會傳回一行資料,顯示叢集名稱和有關仲裁的信息。 如果 WSFC 節點沒有仲裁,則不會傳回任何數據列。

數據行名稱: cluster_name、quorum_type、quorum_type_desc、quorum_state、quorum_state_desc

sys.dm_hadr_cluster_members
如果裝載啟用 AlwaysOn 的本機 SQL Server 實例的 WSFC 節點具有 WSFC 仲群,則針對構成仲群的每一個成員及其狀態返回一列資料。

數據行名稱: member_name、member_type、member_type_desc、member_state、member_state_desc、number_of_quorum_votes

sys.dm_hadr_cluster_networks
針對參與可用性群組子網組態的每個成員,傳回一個數據列。 您可以使用此動態管理檢視來驗證針對每個可用性複本所設定的網路虛擬網路IP。

欄位名稱: member_name、network_subnet_ip、network_subnet_ipv4_mask、network_subnet_prefix_length、is_public、is_ipv4

主鍵: 成員名稱 + 網路子網路IP + 網路子網路前綴長度

sys.dm_hadr_instance_node_map
針對裝載加入其 AlwaysOn 可用性群組之可用性複本的每個 SQL Server 實例,傳回裝載伺服器實例的 Windows Server 故障轉移叢集 (WSFC) 節點名稱。 此動態管理檢視具有下列用途:

  • 此動態管理檢視適用於偵測裝載於相同 WSFC 節點上多個可用性複本的可用性群組,如果可用性群組設定不正確,則為 FCI 故障轉移之後可能發生的不支援設定。

  • 當多個 SQL Server 實例裝載在相同的 WSFC 節點上時,資源 DLL 會使用此動態管理檢視來判斷要連接的 SQL Server 實例。

數據行名稱: ag_resource_id、instance_name、node_name

sys.dm_hadr_name_id_map
顯示目前 SQL Server 實例已加入之 AlwaysOn 可用性群組的對應關係,包含三個唯一的識別碼:可用性群組 ID、WSFC 資源 ID 和 WSFC 群組 ID。 此對應的目的是要處理 WSFC 資源/群組重新命名的情境。

數據行名稱: ag_name、ag_id、ag_resource_id、ag_group_id

備註

另請參閱sys.dm_hadr_availability_replica_cluster_nodessys.dm_hadr_availability_replica_cluster_states,在監視可用性復本節,以及本主題稍後的sys.availability_databases_clustersys.dm_hadr_database_replica_cluster_states,在監視可用性資料庫節。

如需 WSFC 叢集和 AlwaysOn 可用性群組的相關信息,請參閱 Windows Server 故障轉移叢集 (WSFC) 與 SQL Server和故障轉移叢集和 AlwaysOn 可用性群組 (SQL Server)

監視可用性群組

若要監視伺服器實例上承載可用性複本的可用性群組,請使用以下檢視:

sys.availability_groups
針對裝載可用性複本的 SQL Server 主機本機執行個體的每一個可用性群組,各傳回一個資料列。 每個資料列都包含可用性群組中繼資料的快取副本。

資料行名稱: group_id、name、resource_id、resource_group_id、failure_condition_level、health_check_timeout、automated_backup_preference、automated_backup_preference_desc

sys.availability_groups_cluster
針對 WSFC 叢集中的每一個可用性群組,各傳回一個資料列。 每個資料列都包含來自 Windows Server 容錯移轉叢集 (WSFC) 的可用性群組中繼資料。

資料行名稱: group_id、name、resource_id、resource_group_id、failure_condition_level、health_check_timeout、automated_backup_preference、automated_backup_preference_desc

sys.dm_hadr_availability_group_states
關於每個在 SQL Server 本地執行個體上擁有可用性複本的可用性群組,返回一個資料列。 每個資料列會顯示定義給定之可用性群組健全狀況的狀態。

資料行名稱: group_id、primary_replica、primary_recovery_health、primary_recovery_health_desc、secondary_recovery_health、secondary_recovery_health_desc、synchronization_health、synchronization_health_desc

監視可用性複本

若要監視可用性複本,請使用下列檢視和系統函式:

sys.availability_replicas
針對每一個可用性群組中的每一個可用性複本 (SQL Server 本機執行個體裝載此群組的可用性複本),各傳回一個資料列。

資料行名稱: replica_id、group_id、replica_metadata_id、replica_server_name、owner_sid、endpoint_url、availability_mode、availability_mode_desc、failover_mode、failover_mode_desc、session_timeout、primary_role_allow_connections、primary_role_allow_connections_desc、secondary_role_allow_connections、secondary_role_allow_connections_desc、create_date、modify_date、backup_priority、read_only_routing_url

系統.可用性_唯讀_路由_表
針對WSFC故障轉移叢集中AlwaysOn可用性群組中每個可用性複本的唯讀路由清單,傳回一個數據列。

資料行名稱: replica_id、routing_priority、read_only_replica_id

sys.dm_hadr_availability_replica_cluster_nodes
針對 Windows Server 故障轉移叢集 (WSFC) 中的 AlwaysOn 可用性群組中的每個可用性複本(不論聯結狀態為何),返回一行數據。

資料行名稱: group_name、replica_server_name、node_name

sys.dm_hadr_availability_replica_cluster_states
傳回 Windows Server 故障轉移叢集 (WSFC) 叢集中所有 AlwaysOn 可用性群組之每個復本的數據列(不論聯結狀態為何)。

資料行名稱: replica_id、replica_server_name、group_id、join_state、join_state_desc

sys.dm_hadr_availability_replica_states
傳回顯示每個本機可用性複本之狀態的資料列,並針對同一個可用性群組中每一個遠端可用性複本,各傳回一個資料列。

資料行名稱: replica_id、group_id、is_local、role、role_desc、operational_state、operational_state_desc、connected_state、connected_state_desc、recovery_health、recovery_health_desc、synchronization_health、synchronization_health_desc、last_connect_error_number、last_connect_error_description 和 last_connect_error_timestamp

sys.fn_hadr_backup_is_preferred_replica
判斷目前的複本是否為慣用的備份複本。

備註

如需可用性複本效能計數器 (SQLServer: Availability Replica 效能物件) 的相關資訊,請參閱 SQL Server、可用性複本

監視可用性資料庫

若要監視可用性資料庫,請使用下列檢視:

sys.availability_databases_cluster
針對屬於叢集中所有 AlwaysOn 可用性群組之 SQL Server 實例上的每個資料庫,各包含一個數據列,不論本機複製資料庫是否已加入可用性群組。

備註

當資料庫加入至可用性群組時,主資料庫會自動加入群組。 輔助資料庫必須在每個次要復本上備妥,才能加入可用性群組。

數據行名稱: group_id、group_database_id、database_name

sys.databases
針對 SQL Server 執行個體中的每個資料庫,各包含一個資料列。 如果資料庫屬於可用性復本,該資料庫的數據列會顯示複本的 GUID 及其可用性群組內資料庫的唯一標識符。

AlwaysOn 可用性群組數據行名稱: replica_id、group_database_id

sys.dm_hadr_auto_page_repair(自動頁面修復)
伺服器實例中,每當針對任何可用性群組裝載的可用性複本上的任意可用性資料庫進行自動修復頁面嘗試時,均傳回一個資料列。 此檢視包含指定主要或輔助資料庫上最新自動修復頁面嘗試的數據列,每個資料庫最多 100 個數據列。 一旦資料庫達到最大容量,其下一次自動頁面修復嘗試的資料列就會取代其中一個現有的記錄。

數據行名稱: database_id、file_id、page_id、error_type、page_status、modification_time

sys.dm_hadr_database_replica_states
針對每個參與任何可用性群組的資料庫,若該群組由本地 SQL Server 實例裝載可用性副本,則傳回一個資料列。

數據行名稱: database_id、group_id、replica_id、group_database_id、is_local、synchronization_state、synchronization_state_desc、is_commit_participant、synchronization_health、synchronization_health_desc、database_state、database_state_desc、is_suspended、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、end_of_log_lsn、last_commit_lsn、last_commit_time、low_water_mark_for_ghosts

sys.dm_hadr_database_replica_cluster_states
傳回一個數據列,其中包含用來讓您深入瞭解 Windows Server 故障轉移叢集 (WSFC) 叢集上每個可用性群組中可用性資料庫健康情況的資訊。 此動態管理檢視在規劃或回應故障轉移以及發現可用性群組中的哪個次要複本在指定的主資料庫上導致日誌截斷延遲時很有用。

數據行名稱: replica_id、group_database_id、database_name、is_failover_ready、is_pending_secondary_suspend、is_database_joined、recovery_lsn、truncation_lsn

備註

主要複製品位置是可用性群組的權威性來源。

備註

如需可用性資料庫之 AlwaysOn 可用性群組性能計數器的相關信息( SQLServer:Database Replica 性能物件),請參閱 SQL Server 資料庫複本。 此外,若要監視可用性資料庫的交易記錄活動,請使用下列 SQLServer:Databases 性能物件的計數器:Log Flush Write Time (ms)Log Flushes/secLog Pool Cache Misses/secLog Pool Disk Reads/secLog Pool Requests/sec。如需詳細資訊,請參閱 SQL Server, Databases 物件

監視可用性群組接聽器

若要監視 WSFC 叢集子網上的可用性群組聆聽者,請使用下列視圖:

sys.availability_group_listener_ip_addresses
針對目前上線供可用性群組接聽程式使用的每個符合標準虛擬 IP 位址傳回一個資料列。

資料行名稱: listener_id、ip_address、ip_subnet_mask、is_dhcp、network_subnet_ip、network_subnet_prefix_length、network_subnet_ipv4_mask、state、state_desc

sys.availability_group_listeners
若為給定的可用性群組,傳回零個資料列,表示沒有網路名稱與可用性群組相關聯,或針對 WSFC 叢集中的每個可用性群組接聽程式組態傳回一個資料列。

資料行名稱 :group_id、listener_id、dns_name、port、is_conformant、ip_configuration_string_from_cluster

sys.dm_tcp_listener_states
針對每個 TCP 接聽程式傳回一個包含動態狀態資訊的資料列。

資料行名稱: listener_id、ip_address、is_ipv4、port、type、type_desc、state、state_desc、start_time

主鍵: listener_id

如需可用性群組接聽程式的詳細資訊,請參閱可用性群組接聽程式、用戶端連線能力及應用程式故障轉移(SQL Server)。

相關工作

AlwaysOn 可用性群組監視工作:

AlwaysOn 可用性群組監視參考 (Transact-SQL):

AlwaysOn 性能計數器:

AlwaysOn 可用性群組的原則式管理

另請參閱

AlwaysOn 可用性群組 (SQL Server)
AlwaysOn 可用性群組概觀 (SQL Server)
監視可用性群組 (SQL Server)