首页 > 代码库 > Alwayson--SYS.dm_hadr_instance_node_map 返回null

Alwayson--SYS.dm_hadr_instance_node_map 返回null

 

 

 

下面是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就可以了