2011-11-21 90 views

回答

36

我发现下面的链接解决http://www.cryer.co.uk/brian/sqlserver/replication_requires_actual_server_name.htm

感谢布赖恩·克莱尔,他有用的网站

从链接引用,以避免死链接:

原因:

在原始安装SQL Server后重命名的服务器上观察到此错误,并且whe重新SQL Server配置功能@@SERVERNAME仍然返回了服务器的原始名称。这可以通过以下确认:

select @@SERVERNAME 
go 

这应该返回服务器的名称。如果没有,请按照以下步骤进行更正。

补救措施:

解析服务器名称需要更新的问题。使用以下命令:

sp_addserver 'real-server-name', LOCAL 

,如果这给出了一个错误抱怨该名称已经存在,那么请按照以下顺序:“已经有一个本地服务器”

sp_dropserver 'real-server-name' 
go 

sp_addserver 'real-server-name', LOCAL 
go 

相反,如果报告的错误是然后使用以下顺序:

sp_dropserver old-server-name 
go 

sp_addserver real-server-name, LOCAL 
go 

其中“old-server-name”是原始错误正文中包含的名称。

停止并重新启动SQL Server。

+0

完全发现。 – dthree

+0

任何人都知道如何让这个工作与天蓝色? –

+0

@TomStickel我也有与Azure相同的问题,没有重命名服务器的问题 – Ricconnect

28

有这个问题,这是不是需要sp_dropserver将sp_addserver的或服务器重新启动的另一种解决方案。

步骤:

  1. 阅读错误信息,并记住SERVERNAME是在引号。
  2. 在安装了Management Studio的计算机上运行Sql Server Configuration Manager(通常为publisher/distributor side);
  3. 展开Sql原生10。0配置\别名节点;
  4. 从创建一个新的别名,该名称的确切名字是SERVERNAME。它应该是一个NetBIOS机器名称或NetBIOS \ instance_name命名实例。
  5. 指定别名(端口,服务器和协议)的其他选项。
  6. 重复和为32位本地客户端。
  7. 测试。在同一台机器上运行Management Studio并尝试连接到服务器(指定别名作为服务器名称)。

  8. (可选)对于将使用Management Studio进行复制设置的所有客户端计算机,重复2 - 7

就这样!

+1

是的!完成了!但为什么它必须在服务器和客户端中设置? – Cheung

+0

这些设置不是针对服务器的,而是针对SSMS客户端的。如果SSMS和sql-server安装在同一台机器上,那么你可以只设置一次,这个bug只会在这个SSMS客户端实例中消失。 – eLVik

+1

我只是对步骤2进行更正。谢谢! – eLVik

3

您需要在那里更改服务器名称,如机器名称。

  1. 检查服务器名:

@@servername

  • 删除似乎您在上述测试的名称服务器的旧名称:
  • sp_dropserver 'old_name'

  • 添加新的域名服务器:
  • sp_addserver 'new_name', 'local'

    3

    简短的回答:检查,如果你用错误的网络别名通过SSMS

    例如连接,您的服务器可能既是访问:

    • MyDataServer
    • MyDataServer.Company .Com

    当创建复制发布/订阅时与当时用于连接服务器的名称关联,如果使用不同的别名或完全限定名称进行连接,则会给出问题中指出的错误。

    详情: 我刚才遇到了这个问题,关于更改@@ servername的答案帮助我理解了这个问题,但我并不需要这么做。

    考虑一下:

    SQL Server框中被设置为{} my_system_name .local.domain

    在我们的网络,我们有一个网络化名,使得{} my_system_alias使我们能够到达服务器,避免必须输入完全限定的域名(FQDN)。

    Sql Server已安装,并且在使用{my_system_alias}名称进行连接时也设置了本地复制发布。

    然后,我使用指定FQDN的SSMS连接到服务器,如果右键单击此现有复制的属性 - >本地发布出现错误:“Sql Server复制需要实际的服务器名称”。

    我只需要做:使用别名(或其他方式)重新连接SSMS中的服务器,它将允许我查看复制发布的详细信息。

    PS:Phill在另一个答案中的评论也是一种替代方案,它使主机文件条目与您需要用于连接的名称相匹配。

    1

    不同的解决方案是使用附加参数el SQL Server management Studio连接到该数据库。

    为此,连接时,服务器名称将是通过@@ servername(或错误消息提示您提供的名称)获得的服务器名称,然后选择“选项>>”按钮

    Select Options >> button

    然后,在附加连接参数选项卡,您可以添加数据库的当前名称

    enter image description here

    问候,

    +0

    我觉得这会导致一个错误...你知道为什么吗? –

    +0

    这会导致连接错误“建立到SQL Server的连接时发生网络相关或实例特定的错误...(提供程序:命名管道提供程序,错误:40 ...)”。我可以不用SERVER ='xxx''参数连接到这台服务器。我远程连接,我也应该注意,这些查询'SELECT SERVERPROPERTY('MachineName')'和'SELECT @@ SERVERNAME'都返回相同的字符串 –

    +0

    嗨@ZachSmith,它为我工作,你确定在登录您只使用服务器名称的选项卡? – an3sarmiento

    0

    如果您正在使用托管环境,其中服务器名称是可能实际上正在与其他服务器共享的奇怪字符串。 WIN-II7VS-100。我发现感谢@ ZachSmith的解决方案是编辑要连接的服务器上的主机文件,并将其设置为您希望连接的SQL服务器的静态IP。