分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报
  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,这样基本上都可以解决了

 

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

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

    --原因分析: --SERVERPROPERTY 函数的 ServerName 属性与@@SERVERNAME 返回相似的信息. --ServerName 属性提供Windows 服务器和实例名称,两 ...

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

      解决步骤: 1:  Sql Server是否已经启动. 2:  检查Sql Server服务器是否开启TCP/IP协议. 侦听的默认端口为1433          3:     ping 数据库 ...

  3. 清理SQL Server服务器名称列表

    SQL2008: C:\Users\TQ\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin SQ ...

  4. 无法修改SQL Server 服务名称

    之前安装数据库的时候,默认的是机器名A,然后装完后我设置过数据库发布即[复制]里面的[本地发布] 后来我又把机器名改了,但是平时登陆数据库都是用ip登陆的 今天我要设置一个新的发布,但是发现只能用实例 ...

  5. SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

    SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...

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

    在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 sql server服务器sqlserver远程连接数据库防火墙在建立 ...

  7. SQL Server 2008 数据库镜像部署实例之一 数据库准备

    SQL Server 2008 数据库镜像部署实例之一 数据库准备 一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动 ...

  8. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...

  9. 链接SQL Server服务器

    链接SQL Server服务器:      1.使用 ODBC 的 Microsoft OLE DB 提供程序         EXEC sp_addlinkedserver '别名','','MSD ...

随机推荐

  1. .NET中的枚举(Enum)

    摘要:.NET中的枚举分为简单枚举和标志枚举,这次主要总结一下标志枚举适用条件,以及它的使用方法,并在文章的最后列举枚举使用的一些规范. 在刚接触.NET的枚举时,只用简单的枚举,对于标记枚举,只知道 ...

  2. Week4 结对编程

    1.照片 1.1  结对编程参与者:李文涛.黎柏文 1.2  展示照片 2.结对编程的优点&缺点 2.1 优点 2.1.1.两人分工合作,减少了工作量 2.1.2.结对编程的伙伴往往能提供不同 ...

  3. TortoiseSVN的bin目录下面没有svn.exe

    自己在idea联合svn时遇到这个问题,然后bd和gg,发现很多人都乱说,说什么TortoiseSVN是客户端,默认不包含svn.exe,需要安装Subversion.bullshit! 之所以没有, ...

  4. 如何快速开发树形列表和分页查询整合的WInform程序界面

    我在做Winform界面的时候,一般都是统一化处理,界面顶部放置一些字段条件供查询,下面就是分页查询列表,展示相关的数据.但有时候碰到一些表字段内容分类比较多,有一些特别重要,如果放在一个树形列表来进 ...

  5. 【WP8.1】富文本

    之前写过一篇WP8下的富文本的文章,但是写的不是很好,整理了一下,分享一下WP8.1下的富文本处理 富文本处理主要是对表情和链接的处理,一般使用RichTextBlock进行呈现 问题说明: 由于Ri ...

  6. kfreebsd不适用于实际环境

    debian搞的kfreebsd,其中有很多常用的软件包处于依赖破损的状态,个人觉得是无法用作日常开发或生产环境的. 当然,对于只使用其中几项完整可用功能的场景,基本上还是可以的. 当时看个这个东东的 ...

  7. FL2440驱动添加(3)LCD驱动添加学习笔记

    FL2440 LCD内置控制器,320*240 TFT型LCD. 自我理解总结的两种添加驱动模式: 非platform方式添加驱动: 加载驱动: 1,硬件初始化,申请内存,并作地址映射 2,分配设备号 ...

  8. 开源论坛MvcForum推荐

    MvcForum算是Asp.net中开源论坛佼佼者之一.主要使用ASP.NET MVC 5 &Unity & Entity Framework 6,有较强的可撸性.是论坛开发者的不二之 ...

  9. Angularjs,WebAPI 搭建一个简易权限管理系统 —— 系统业务与实现(三)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 系统业务与实现(二) 上一章我们讲解的 Angu ...

  10. 优秀程序设计的Kiss原则(keep it simple,stupid)

    优秀程序设计的Kiss原则(keep it simple,stupid) 良好的编程原则与良好的设计工程原则密切相关.本文总结的这些设计原则,帮助开发者更有效率的编写代码,并帮助成为一名优秀的程序员. ...