谁能帮我获取 SQL 查询以获取服务器为辅助的数据库列表。前任。在高可用性组 SERVER S1 中,对于可用性组 AV1(DB1,DB2) 是主要的,对于 AV2 (DB3,DB4) 是次要的。我想查询以获取 S1 为次要的数据库列表。这里是 DB3 和 DB4。
请帮帮我。
谁能帮我获取 SQL 查询以获取服务器为辅助的数据库列表。前任。在高可用性组 SERVER S1 中,对于可用性组 AV1(DB1,DB2) 是主要的,对于 AV2 (DB3,DB4) 是次要的。我想查询以获取 S1 为次要的数据库列表。这里是 DB3 和 DB4。
请帮帮我。
以下查询将返回一个表,其中包含可用性组中的数据库的数据库名称,并且是查询服务器上的辅助副本。
SELECT db.name FROM master.sys.dm_hadr_database_replica_states rs
JOIN master.sys.databases db ON rs.database_id = db.database_id
WHERE is_local = 1 AND is_primary_replica = 1
所以,我没有给你一个确切的查询,但它不应该太难做,有 2 个 DMV 可以查看:
sys.dm_hadr_availability_group_states - 这将告诉您可用性组以及哪些服务器是每个服务器的主要/次要副本
sys.dm_hadr_database_replica_states - 这将告诉您每个可用性组中的数据库以及它们处于什么状态
在 group_id 列上将这两个连接在一起,您将能够看到哪些数据库位于哪个可用性组中,哪些服务器充当主要/次要副本。
此处的文档链接: