SQL Server 2005 只能看到命名实例 无法看到默认实例

问题描述
==========
Enumerating sql server using SMO doesnot list default instance if it is installed after named instance:
SQL Server 2005服务器有两个实例,一个是默认实例ABC,一个是命名实例ABC\KDHR,在management studio的bowser more中,在local services中可以看到这两个实例,在network services中只能看到命名实例ABC\KDHR,无法看到默认实例ABC,但是通过实例名称可以成功连接SQL Server。
故障排查
==========
通过查看Management Studio的dump文件,发现问题出现在以下函数:
Enumerating with either SmoApplication.EnumAvailableSqlServers() or
SqlDataSourceEnumerator.Instance.GetDataSources() doesn't list the default
instance, if default instance is installed after the named instance.
(SmoApplication.EnumAvailableSqlServers() actully called
SqlDataSourceEnumerator.Instance.GetDataSources() )
经确认,这是SQL Server 2005的一个已知问题:SQL BU Defect Tracking 408441, SOX070206700032
出现这个问题的原因,是由于在安装SQL Server 2005时,先安装了命名实例ABC\KDHR,后安装了默认实例,这使得默认实例在注册表的信息排在了命名实例的后面,由于SQL Server 2005不能很好的识别这些注册表信息,以至于不能显示出默认实例。
解决办法
==========
1.打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server下面的InstalledInstances
2.发现InstalledInstances的值为KDHR MSSQLSERVER,改成MSSQLSERVER KDHR
3.重新使用SQL Server 2005 Management Sudio的“Network Services”查看是否能够看到默认实例
Tags: 

延伸阅读

最新评论

发表评论