Tampilan manajemen dinamis dan tampilan katalog sistem (Grup Ketersediaan AlwaysOn)
Berlaku untuk: SQL Server
Topik ini menunjukkan beberapa kueri umum pada tampilan manajemen dinamis AlwaysOn (DMV) yang dapat Anda gunakan untuk memantau dan memecahkan masalah grup ketersediaan.
Tip
Di Dasbor AlwaysOn, Anda dapat dengan mudah mengonfigurasi GUI untuk menampilkan banyak DMV untuk replika ketersediaan dan database ketersediaan dengan mengklik kanan header tabel masing-masing dan memilih DMV yang ingin Anda tampilkan atau sembunyikan.
Untuk informasi selengkapnya tentang DMV grup ketersediaan, lihat Tampilan dan fungsi manajemen dinamis Grup Ketersediaan AlwaysOn (Transact-SQL). Untuk informasi selengkapnya tentang tampilan katalog grup ketersediaan, lihat Tampilan katalog Grup Ketersediaan AlwaysOn (Transact-SQL).
Periksa konfigurasi node kluster WSFC
Kueri Transact-SQL (T-SQL) berikut mengambil status semua simpul di kluster Windows Server Failover Clustering (WSFC) saat ini.
use master
go
select * from sys.dm_hadr_cluster_members
go
Kumpulan hasil ini melaporkan status setiap simpul anggota dari kluster WSFC saat ini. Jika kuorum didefinisikan sebagai Node dan File Share Majority, bahkan berbagi file dilaporkan. Anda dapat melihat status setiap simpul, termasuk bobot pemungutan suara setiap simpul ( nilai number_of_quorum_votes ).
Menjelajahi jaringan kluster
Kueri berikut mengambil konfigurasi jaringan kluster WSFC saat ini.
select * from sys.dm_hadr_cluster_networks
Kumpulan hasil berisi satu baris untuk setiap adaptor jaringan di kluster WSFC. Misalnya, dalam kluster dua node yang berisi dua adaptor jaringan pada setiap simpul, kueri ini mengembalikan empat baris.
Menjelajahi grup ketersediaan
Kueri berikut mengambil informasi tentang grup ketersediaan.
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), dan sys.availability_groups_cluster semua mengembalikan informasi tentang grup ketersediaan di kluster WSFC saat ini. Bahkan, sys.availability_groups (Transact-SQL), dan sys.availability_groups_cluster tampaknya mengembalikan informasi yang identik.
Namun, sys.availability_groups_cluster melaporkan metadata grup ketersediaan yang disimpan di Kluster WSFC, sedangkan sys.availability_groups (Transact-SQL) melaporkan metadata grup ketersediaan yang di-cache di ruang proses SQL Server. Selain itu, kedua DMV ini melaporkan informasi konfigurasi sedangkan sys.dm_hadr_availability_group_states (Transact-SQL) melaporkan status kesehatan grup ketersediaan saat ini.
Penting
Nomenklatur ini diteruskan dengan DMV yang mendokumen replika ketersediaan dan database ketersediaan.
Menjelajahi replika ketersediaan
Kueri berikut mengambil informasi tentang replika ketersediaan yang ditentukan dalam grup ketersediaan Anda.
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
Mirip dengan DMV grup ketersediaan, Anda menemukan tiga DMV yang melaporkan replika ketersediaan. sys.dm_hadr_availability_replica_states melaporkan informasi status tentang replika ketersediaan yang di-cache secara lokal di SQL Server, dan sys.dm_hadr_availability_replica_cluster_states melaporkan informasi status tentang replika ketersediaan dari kluster WSFC. Terakhir, sys.availability_replicas melaporkan data konfigurasi pada replika ketersediaan, yang di-cache secara lokal di SQL Server.
Menjelajahi kesehatan replika ketersediaan
Kueri berikut mengambil informasi kesehatan saat ini tentang replika ketersediaan.
select replica_id, role_desc, recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states
go
Bandingkan hasil kueri pada replika utama dan pada replika sekunder dan perhatikan bahwa pada replika sekunder, informasi kesehatan hanya dilaporkan untuk replika tersebut dan bukan untuk replika lain dalam grup ketersediaan.
Menjelajahi database ketersediaan
Kueri berikut mengambil informasi tentang replika ketersediaan yang ditentukan dalam grup ketersediaan Anda. Anda dapat mengamati perubahan dalam hasil kueri sebelum dan sesudah Anda menangguhkan pergerakan data pada database ketersediaan.
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
Di sini lagi, tiga DMV AlwaysOn melaporkan database ketersediaan. sys.availability_databases_cluster melaporkan informasi konfigurasi tentang database ketersediaan dari kluster WSFC. sys.dm_hadr_database_replica_cluster_states melaporkan informasi status tentang replika database, yang di-cache secara lokal di SQL Server. Ini berisi beberapa informasi status penting, seperti kesiapan failover replika ketersediaan. Terakhir, sys.dm_hadr_database_replica_states adalah kumpulan hasil yang sangat verbose yang melaporkan informasi identitas dan status pada setiap database ketersediaan, seperti informasi kemajuan LSN untuk log replika database utama dan sekunder.
Menjelajahi kesehatan database ketersediaan
Kueri berikut mengambil informasi tentang kesehatan setiap database ketersediaan pada replika. Anda dapat mengamati perubahan dalam hasil kueri sebelum dan sesudah Anda menangguhkan pergerakan data pada database ketersediaan.
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