SQL Server服务器名称与默认实例名不一致的修复方法

SQL Server服务器名称与默认实例名不一致的修复方法

分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报

sql server服务器sqlservermicrosoftserver远程连接

[sql] view plaincopy

  1. --原因分析:
  2. --SERVERPROPERTY 函数的 ServerName 属性与@@SERVERNAME 返回相似的信息。
  3. --ServerName 属性提供Windows 服务器和实例名称,两者共同构成唯一的服务器实例;
  4. [email protected]@SERVERNAME 提供当前配置的本地服务器名称。
  5. --如果安装时未更改默认服务器名称,则 ServerName 属性和 @@SERVERNAME 返回相同的信息。如果在安装时已将本地服务器名称从默认服务器名称更改为其他名称,则 @@SERVERNAME 返回更改后的新名称。
  6. --如果安装时未更改默认服务器名称,但是安装完成后更改过Windows 服务器名称,则@@SERVERNAME仍然返回安装时的服务器名称,ServerName 属性返回更改过后的Windows 服务器名称。也就是说,@@SERVERNAME不会报告Windows 服务器名称的更改,ServerName 属性会报告Windows 服务器名称的更改。这就会造成SQL Server默认实例的@@SERVERNAME和ServerName 属性不一致。这种情况在一些应用中常常会出现无法连接的问题,有时我们需要修复这种情况。
  7. --修复方法:(修复方法很简单,直接执行以下语句即可)
  8. use master
  9. go
  10. select @@servername
  11. select serverproperty(‘servername‘)
  12. ------
  13. IF serverproperty(‘servername‘)<>@@servername
  14. BEGIN
  15. DECLARE  @server SYSNAME
  16. SET   @[email protected]@servername
  17. EXEC  sp_dropserver @[email protected]
  18. SET   @server=cast(serverproperty(‘servername‘) AS SYSNAME)
  19. EXEC  sp_addserver @[email protected],@local=‘LOCAL‘
  20. END
  21. ELSE
  22. PRINT ‘实例名与主机名一致,无需修改!‘

若,安装SQL之后 服务器修改主机名,造成不一致,且之前有存在复制发布:

机器名与实例名不同,解决办法

在执行 exec sp_addlinkedserver ‘DMGZSRV10‘ 的时候一直提示

消息 15190,级别 16,状态 1,过程 sp_dropserver,第 56 行
仍有对服务器 ‘DMGZSRV10‘ 的远程登录或链接登录。

又执行

exec sp_dropserver ‘DMGZSRV10‘, ‘droplogins‘

这时提示

无法删除服务器 ‘LC04‘,因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)

下面是解决的方案

原始状态
1、服务器名LC04 MSSQL实例名MSSQLSERVER
2、在LC04上建立了发布,在另一台服务器上订阅或者用SQLServer管理器远程访问LC04上的SQLServer,出现错误:
无法连接到 LC04。
-----------------------------
其他信息:

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (Microsoft SQL Server,错误: 53)

解决处理

将LC04的计算机名称改为MSSQLSERVER与MSSQL实例名相同
此时状态
SQLServer管理器远程可以访问LC04的数据库,但不能订阅,出现错误:
SQL Server 复制需要有实际的服务器名称才能连接到服务器。不支持通过服务器别名、IP 地址或任何其他备用名称进行连接。请指定实际的服务器名称“LC04”。 (Replication.Utilities)

解决处理

在LC04(现在应当名为MSSQLSERVER)的服务器上,执行如下代码
SELECT @@SERVERNAME ,serverproperty(‘servername‘)
发现两个不同,分别为LC04和MSSQLSERVER

执行如下代码

exec sp_droplinkedsrvlogin ‘LC04‘,null
exec sp_dropserver ‘LC04‘,‘droplogins‘
exec sp_addserver ‘MSSQLSERVER‘ , ‘LOCAL‘

出现错误
无法删除服务器 ‘LC04‘,因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)

解决处理

select * from msdb.dbo.MSdistpublishers
DELETE FROM msdb.dbo.MSdistpublishers
select * from msdb.dbo.MSdistpublishers
exec sp_droplinkedsrvlogin ‘LC04‘,null
exec sp_dropserver ‘LC04‘,‘droplogins‘
exec sp_addserver ‘MSSQLSERVER‘ , ‘LOCAL‘ 
重启SQLServer服务

设置发布服务器属性,发现发布服务器的服务器名还是为LC04,造成发布执行错误:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (Microsoft SQL Server,错误: 53)

使用 exec sp_helpserver
发现name为repl_distributor的服务器的network_name还是LC04

解决处理

执行exec sp_setnetname ‘repl_distributor‘,‘MSSQLSERVER‘

再次设置发布服务器,并发布,完成

实际上在SQLServer和其他应用中还有可能用到原有的数据库名LC04
可以建立SQLServer的新别名为LC04,这样基本上都可以解决了

时间: 2024-12-08 16:58:25

SQL Server服务器名称与默认实例名不一致的修复方法的相关文章

清理SQL Server服务器名称列表

SQL2008: C:\Users\TQ\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin SQL2012: C:\Users\TQ\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin TQ为本人计算机名 清理SQL Server服务器名称列表

Sql Server 服务器名称\实例名称 无法连接 Server Name\Instance Name

  解决步骤: 1:  Sql Server是否已经启动. 2:  检查Sql Server服务器是否开启TCP/IP协议. 侦听的默认端口为1433          3:     ping 数据库服务器. 看网络是否可通 4:     Telnet 服务器IP 1433, 检查是否防火墙原因导致端口不通 5:  服务器是否允许远程连接          6:   如果IP 可以ping通,但是机器名ping不通, 那么需要改host 文件. 7:   如果采用IP+端口连接数据库,那么此时已

sql server 服务器和数据库默认角色

服务器角色:按照从最低级别角色(bulkadmin)到最高级别角色(sysadmin)的顺序进行描述:1.bulkadmin:这个角色可以运行BULK INSERT语句.该语句允许从文本文件中将数据导入到SQL Server2008数据库中,为需要执行大容量插入到数据库的域帐号而设计.2.dbcreator:这个角色可以创建,更改,删除和还原任何数据库.不仅适合助理DBA角色,也可能适合开发人员角色.3.diskadmin:这个角色用于管理磁盘文件,比如镜像数据库和添加备份设备.适合助理DBA4

SQL Server服务器名称填写IP不能访问问题解决

针对SQL Server数据库在安装完毕后,服务器名称填写IP地址(包括127.0.0.1)不能访问,提示拒绝访问处理流程: 计算机→管理→服务和应用程序→SQL Server配置管理器→SQL Server网络配置→MSSQLSERVER的协议→TCP/IP更改为启用 在开始栏输入"services.msc",进入服务,找到SQL Server,重新启动即可.

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连

sql server服务器sqlserver远程连接数据库防火墙在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导 致此失败. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 为什么.我已经在SQL的外围配置设置中把他的

SQL Server 服务器磁盘测试之SQLIO篇(二)

上次放出了一篇文章,针对磁盘卷簇大小默认4KB和自定义64KB进行了测试,测试内容为随机和顺序读写,大小为8KB和64KB,有人觉得这并没有照顾到SQL Server所有的IO使用情景.这篇测试文章,我们就来尽可能模拟一下SQL Server IO的行为,全方位对簇大小4KB.8KB和64KB做一次验证,注意:本次我们增加了簇为8KB的大小. 重点说明:本测试使用的是两块SSD组成的RAID1 首先,我们先来分析SQL Server的IO行为,参考网址:Choosing what SQLIO t

Delphi下检查SQL Server服务器当前运行状态!

Delphi下检查SQL Server服务器当前运行状态!要求:Delphi下随时监控SQL Server状态.1.命令提示符下可用:TELNET <SQL Server IP> 1433 检查.2.Delphi下如何模拟实现上述功能.----------原来做过:function GetSqlServerStatus(lpszComputerName: LPCTSTR): Integer;var  ssStatus: SERVICE_STATUS;  dwOldCheckPoint: DWO

sql server 查询数据库所有的表名+字段

原文:sql server 查询数据库所有的表名+字段 SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空       a.colorder as 字段序号,       a.name as 字段名,       (case when COLUMNPROPER

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.