共计 1274 个字符,预计需要花费 4 分钟才能阅读完成。
下面是 MSDN 关于 SYS.dm_hadr_instance_node_map 的解释,我就不在翻译了
For every instance of SQL Server that hosts an availability replica that is joined to its AlwaysOn availability group, returns the name of the Windows Server Failover Clustering (WSFC) node that hosts the server instance. This dynamic management view has the following uses:
•This dynamic management view is useful for detecting an availability group with multiple availability replicas that are hosted on the same WSFC node, which is an unsupported configuration that could occur after an FCI failover if the availability group is incorrectly configured. For more information, see Failover Clustering and AlwaysOn Availability Groups (SQL Server).
•When multiple SQL Server instances are hosted on the same WSFC node, the Resource DLL uses this dynamic management view to determine the instance of SQL Server to connect to.
举例来说
Env
===
Nodes:
SQL108W2K8R21
SQL108W2K8R22
SQL108W2K8R23
Default instance
SQL Server 2012 SP1 RTM
Availability group:agTest1 and agTest2
AGTest1:
SQL108W2K8R21
SQL108W2K8R22
SQL108W2K8R23
AGTest2:
SQL108W2K8R21
SQL108W2K8R22
那么 SYS.dm_hadr_instance_node_map 返回值如下
相应的 ag_resource_id 我们可以从 sys.dm_hadr_name_id_map 找到
DMV SYS.dm_hadr_instance_node_map 会从下面的注册表中取值
如果您的 DMV 返回 NULL, 请检查注册表 HKEY_LOCAL_MACHINE\Cluster\HadrAgNameToIdMap,如果发现有 legacy/orphan 的键值存在,将他们删除。为了以防万一,请先备份。
之后再次运行 DMV 就可以了
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139769.htm