Dynamiczne widoki zarządzania i widoki katalogowe systemu (Always On Availability Groups)

Dotyczy:SQL Server

Ten temat pokazuje niektóre z typowych zapytań w dynamicznych widokach zarządzania Always On (DMV), które możesz wykorzystać do monitorowania i rozwiązywania problemów z grupami dostępności.

Wskazówka

W Always On Dashboard możesz łatwo skonfigurować interfejs graficzny tak, aby wyświetlał wiele DMV dla replik dostępności i baz danych dostępności, klikając prawym przyciskiem myszy odpowiedni nagłówek tabeli i wybierając DMV, które chcesz wyświetlić lub ukryć.

Więcej informacji o widokach DMV grup dostępności można znaleźć w temacie Always On Availability Groups — dynamiczne widoki i funkcje zarządzania (Transact-SQL). Więcej informacji na temat widoków katalogowych grup dostępnych można znaleźć w widokach katalogowych Always On Availability Groups (Transact-SQL).

Sprawdź konfigurację węzłów klastra WSFC

Następujące zapytanie Transact-SQL (T-SQL) pobiera status wszystkich węzłów w obecnym klastrze Windows Server Failover Clustering (WSFC).

use master  
go  
select * from sys.dm_hadr_cluster_members  
go  

Ten zestaw wyników raportuje status każdego węzła członkowskiego obecnego klastra WSFC. Jeśli kworum jest zdefiniowane jako większość w udziale węzłów i plików, raportowane jest nawet udostępnianie plików. Możesz zobaczyć status każdego węzła, w tym wagę głosów każdego węzła (wartość number_of_quorum_votes ).

Poznaj sieć klastrów

Poniższe zapytanie pobiera konfigurację sieci obecnego klastra WSFC.

select * from sys.dm_hadr_cluster_networks  

Zestaw wyników zawiera jeden wiersz dla każdej karty sieciowej w klastrze WSFC. Na przykład w klastrze dwuwęzłowym, który zawiera po dwie karty sieciowe na każdym węźle, to zapytanie zwraca cztery wiersze.

Poznaj grupy dostępności

Poniższe zapytanie pobiera informacje o grupie dostępności.

select primary_replica, primary_recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_group_states  
go  
select * from sys.availability_groups  
go  
select * from sys.availability_groups_cluster  
go  

DMV sys.dm_hadr_availability_group_states (Transact-SQL), sys.availability_groups (Transact-SQL) i sys.availability_groups_cluster wszystkie zwracają informacje o grupach dostępności w obecnym klastrze WSFC. W rzeczywistości sys.availability_groups (Transact-SQL) i sys.availability_groups_cluster wydają się zwracać identyczne informacje.

Jednak sys.availability_groups_cluster raportuje metadane grup dostępności przechowywane w klastrze WSFC, podczas gdy sys.availability_groups (Transact-SQL) raportuje metadane grupy dostępności, które są buforowane w przestrzeni procesów SQL Server. Ponadto te dwa DMV raportują informacje konfiguracyjne, podczas gdy sys.dm_hadr_availability_group_states (Transact-SQL ) raportuje aktualny stan zdrowia grup dostępności.

Ważna

Ta nomenklatura jest kontynuowana w DMV, które dokumentują repliki dostępności i bazy danych dostępności.

Poznaj repliki wysokiej dostępności

Poniższe zapytanie pobiera informacje o replikach dostępności zdefiniowanych w twoich grupach dostępności.

select replica_id, role_desc, connected_state_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states  
go  
select replica_server_name, replica_id, availability_mode_desc, endpoint_url from sys.availability_replicas  
go  
select replica_server_name, join_state_desc from sys.dm_hadr_availability_replica_cluster_states  
go  

Podobnie jak w przypadku widoków DMV grupy dostępności, można znaleźć trzy widoki DMV dostarczające informacje o replikach dostępności. sys.dm_hadr_availability_replica_states udostępnia informacje o stanie replik dostępności, które są lokalnie przechowywane w pamięci podręcznej programu SQL Server, a sys.dm_hadr_availability_replica_cluster_states udostępnia informacje o stanie replik dostępności z klastra WSFC. Na koniec sys.availability_replicas raportuje dane konfiguracyjne na replikach dostępności, które są lokalnie buforowane w SQL Server.

Sprawdź dostępność repliki zdrowia

Poniższe zapytanie pobiera aktualne informacje o kondycji replik dostępności.

select replica_id, role_desc, recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states  
go  

Porównaj wyniki zapytań dla repliki pierwotnej i repliki wtórnej i zauważ, że na repliki wtórnej informacje o stanie są raportowane tylko dla tej repliki, a nie dla żadnej innej repliki w grupie dostępności.

Sprawdź bazy danych dostępności

Poniższe zapytanie pobiera informacje o replikach dostępności zdefiniowanych w twojej grupie dostępności. Możesz zaobserwować zmiany w wynikach zapytań przed i po zawieszeniu ruchu danych w bazie dostępności.

select * from sys.availability_databases_cluster  
go  
select group_database_id, database_name, is_failover_ready  from sys.dm_hadr_database_replica_cluster_states  
go  
select database_id, synchronization_state_desc, synchronization_health_desc, last_hardened_lsn, redo_queue_size, log_send_queue_size from sys.dm_hadr_database_replica_states  
go  

I tutaj trzy DMV Always On raportują bazy danych dostępności. sys.availability_databases_cluster raportuje informacje konfiguracyjne dotyczące baz danych dostępności z klastra WSFC. sys.dm_hadr_database_replica_cluster_states zawiera informacje o stanie replik baz danych, buforowane lokalnie w programie SQL Server. Zawiera ważne informacje o stanie, takie jak gotowość repliki dostępności. Wreszcie, sys.dm_hadr_database_replica_states jest bardzo rozbudowanym zestawem wyników, który raportuje informacje o tożsamości i stanie w każdej dostępnościowej bazie danych, takie jak informacje o postępach LSN dla logów replik bazy głównej i wtórnej.

Sprawdź kondycję bazy danych dostępności

Poniższe zapytanie pobiera informacje o stanie kondycji baz danych dostępności na replikach. Możesz zaobserwować zmiany w wynikach zapytań przed i po zawieszeniu ruchu danych w bazie dostępności.

select dc.database_name, dr.database_id, dr.synchronization_state_desc,   
dr.suspend_reason_desc, dr.synchronization_health_desc  
from sys.dm_hadr_database_replica_states dr  join sys.availability_databases_cluster dc  
on dr.group_database_id=dc.group_database_id   
where is_local=1  
go