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. --@@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   @server=@@servername
  17. EXEC  sp_dropserver @server=@server
  18. SET   @server=cast(serverproperty('servername') AS SYSNAME)
  19. EXEC  sp_addserver @server=@server,@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,这样基本上都可以解决了

  • 上一篇如何删除发布服务器distribution
  • 下一篇timestamp应用(解决并发问题)——乐观锁和悲观锁【转】

转载于:https://www.cnblogs.com/hongb/p/3989031.html

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

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

    服务器级的urn筛选器无效:筛选器必须为空,或服务器属性必须等于实际的服务器名称 这个问题是出在本地连接还是远程连接上,这个问题可能是由于修改过服务器名称导致的.你可以尝试在本地的服务器和SQL Se ...

  2. 局域网内无法使用UDL文件获取SQL Server服务器名称

    问题: 局域网内无法使用UDL文件获取SQL Server服务器名称 环境: 1.本地windows10操作系统笔记本一台 2.本地计算机开的windows xp虚拟机一台 描述: 1本地计算机安装了 ...

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

    SQL Server服务器名称填写IP不能访问问题解决 参考文章: (1)SQL Server服务器名称填写IP不能访问问题解决 (2)https://www.cnblogs.com/mwduoduo ...

  4. 怎么修改SQL Server服务器选项,Analysis Services 实例的 SPN 注册 | Microsoft Docs

    SPN registration for an Analysis Services instance 05/02/2018 本文内容 适用于: SQL Server Analysis Services ...

  5. SQL Server服务器名称

    SQL Server的服务器名格式是 主机名\实例名 此主机名是WIN10-20180501C (计算机名), 实例名是SQLEXPRESS (2008版默认是这个) 本地:主机名可以使用localh ...

  6. sql server服务器位置,SQL语句实现查询SQL Server服务器名称和IP地址

    获取服务器名称: SELECT SERVERPROPERTY('MachineName') select @@SERVERNAME select HOST_NAME() 获取IP地址可以使用xp_cm ...

  7. SQL语句实现查询SQL Server服务器名称和IP地址_MsSql

    转载:https://edu.aliyun.com/a/12773 获取服务器名称: SELECT SERVERPROPERTY('MachineName') select @@SERVERNAME ...

  8. SQL SERVER 服务器名称的更改

    1.当前数据库的服务器名 :   select @@ServerName 2.查看当前的所有服务器名:    select * From Sys.SysServers 3.删除服务器名:    sp_ ...

  9. 【问】默认实例名是多少?

    [问题描述] SQL 2012R2安装时的默认实例名是多少? [答] SQL 安装的默认实例名都是MSSQLSERVER.

最新文章

  1. vue数组转Excel表格导出
  2. c语言实现结构体变量private,C语言中结构体变量私有化详解
  3. 使用JAX-RS和Spring构建HATEOAS API
  4. 一文搞懂物联网Modbus通讯协议
  5. python3 一些常用的数学函数
  6. verp之增加接近传感器(proximity sensor)
  7. VM : linux虚拟机上挂在U盘
  8. jfinal mysql存储过程_jfinal调用mysql存储过程
  9. layui下拉框怎么获取自定义值_layui如何得到select下拉框选中的值?
  10. 怎样保证linux内核安全性,技术|如何做好 Linux 内核安全处理
  11. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_23-页面预览-页面预览开发
  12. Android 开发横屏App或创建横屏布局
  13. 是什么限制了你的成功?
  14. 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
  15. 划水总结剑指offer 链表系列1
  16. 推荐四款常见的电子教室软件,大家觉得哪款好用
  17. Mac和Linux平台抓包工具的配置和使用
  18. 彻底理解数据库ER模型(CDM)中的强实体与弱实体:追根到底
  19. 6个常见的开源人脸数据库及其数据特征
  20. MySQL 索引结构

热门文章

  1. 从手工测试转自动化测试前,你必须知道的9大内容
  2. day037 listener Timer 发送邮件工具类
  3. CDN加速原理的那些事
  4. Ansys EM支持的GPU加速详细列表
  5. ContentWindow属性的用法及作用
  6. 基于Centos7.2的自选域名配置实现正向和反向解析以及部署并测试缓存DNS服务器
  7. ღ_★古今最有霸气的名句★_ღ
  8. ThinkPad T440s
  9. linux awk命令NR详解,Linux awk 命令详解
  10. MongoDB启动失败