Sql Server复制需要实际的服务器名称才能建立与服务器的连接

时间:2011-11-21 12:46:41

标签: sql-server sql-server-2008-r2

当我想创建新的出版物或订阅时,我收到以下消息。

“Sql Server复制需要实际的服务器名称才能建立与服务器的连接。不支持通过服务器别名,IP地址或任何其他备用名称进行连接。请指定实际的服务器名称”

有谁知道我该怎么做?

9 个答案:

答案 0 :(得分:42)

我在以下链接http://www.cryer.co.uk/brian/sqlserver/replication_requires_actual_server_name.htm

中找到了解决方案

感谢Brian Cryer的有用网站

从链接引用以避免链接损坏:

<强>原因:

在原始安装SQL Server之后重命名的服务器上观察到此错误,并且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。

答案 1 :(得分:31)

此问题还有另一种解决方案,它不需要**sp_dropserver****sp_addserver**或服务器重新启动。

步骤:

  1. 阅读错误消息并记住引号中的SERVERNAME。
  2. 在安装了Management Studio的计算机上运行Sql Server Configuration Manager(通常是发布者/分发者方);
  3. 展开 Sql Native 10.0配置\别名节点;
  4. 1 创建名为SERVERNAME的新别名。对于命名实例,它应该是 NetBIOS 计算机名称或 NetBIOS \ instance_name
  5. 指定别名的其他选项(端口,服务器和协议)。
  6. 为32位原生客户端重复 4 5
  7. 测试。在同一台计算机上运行Management Studio并尝试连接到服务器(将别名指定为服务器名称)。

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

  9. 这就是全部!

答案 2 :(得分:5)

简短回答:检查您是否通过SSMS连接错误的网络别名

例如,您的服务器可以同时访问:

  • MyDataServer
  • MyDataServer.Company.Com

创建复制发布/订阅时,它会与当时用于连接服务器的名称相关联,如果使用不同的别名或完全限定名称进行连接,则会为您提供问题所述的错误。

详细说明: 我刚刚遇到这个问题,关于更改@@ servername的答案帮助我理解了这个问题,但我没有必要这样做。

考虑一下:

sql server框设置为{my_system_name} .local.domain

在我们的网络中,我们有一个网络别名,以便{my_system_alias}允许我们到达服务器并避免输入完全限定的域名(FQDN)。

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

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

所有我必须做的事情:使用别名(或其他方式)重新连接到SSMS中的服务器,这将允许我查看复制发布详细信息。

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

答案 3 :(得分:4)

您需要更改服务器名称,如计算机名称。

  1. 检查服务器名称:
  2.   

    <强> @@服务器名

    1. 删除上面测试名称中显示给您的服务器的旧名称:
    2.   

      sp_dropserver'old_name'

      1. 添加新名称服务器:
      2.   

        sp_addserver'new_name','local'

答案 4 :(得分:1)

另一种解决方案是使用附加参数el SQL Server management Studio连接到该数据库。

为此,在连接时,服务器名称将是您通过@@ servername(或错误消息提示您的那个)咨询的服务器名称,然后选择&#34;选项&gt;&gt ;&#34;按钮

Select Options >> button

然后,在“其他连接参数”选项卡中,您可以添加数据库的当前名称

enter image description here

此致

答案 5 :(得分:1)

尝试所有 后共享我的修复程序,否则我可以找到解决此问题的方法。我试图使用SSMS 18.2(本文发布时为最新版本)在SQL Server 2017上设置复制。当我设置分发服务器时,一切正常,但是当我进入分发服务器属性并选中“创建队列读取器代理”框时,我将得到著名的“ SQL Server复制需要实际的服务器名称才能建立与服务器的连接。服务器。指定实际的服务器名称“。(Replication.Utilities)”问题。

很多天后,我尝试了不同版本的SSMS。安装SSMS 17.9.1并重新尝试正常运行。希望这可以帮助其他人。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

如果要在订阅计算机上解决此问题以解决此问题,则必须安装与目标计算机相比等于或更高版本的SSMS。

答案 8 :(得分:0)

如果复制计算机上出现此问题 必须在复制机上以以下代码运行 1-首先找到实名服务器

select @@SERVERNAME
go

2-使用下面的代码删除真实服务器名称

sp_dropserver 'real-server-name'
go

3-使用下面的代码添加真实服务器名称

sp_addserver 'real-server-name', LOCAL
go