【发布时间】:2011-11-21 12:46:41
【问题描述】:
当我想创建新的出版物或订阅时,我收到以下消息。
“Sql Server 复制需要实际的服务器名称才能与服务器建立连接。不支持通过服务器别名、IP 地址或任何其他备用名称的连接。请指定实际的服务器名称”
有人知道我该怎么办吗?
【问题讨论】:
标签: sql-server sql-server-2008-r2
当我想创建新的出版物或订阅时,我收到以下消息。
“Sql Server 复制需要实际的服务器名称才能与服务器建立连接。不支持通过服务器别名、IP 地址或任何其他备用名称的连接。请指定实际的服务器名称”
有人知道我该怎么办吗?
【问题讨论】:
标签: sql-server sql-server-2008-r2
我在以下链接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。
【讨论】:
[user_id]@[server_name] 的形式提供订阅者 (Azure DB) 的用户名。我在这个问题上浪费了几个小时。
这个问题还有另一种解决方案,不需要**sp_dropserver**、**sp_addserver**或者重启服务器。
步骤:
测试。在同一台机器上运行 Management Studio 并尝试连接到服务器(指定别名作为服务器名称)。
(可选)对使用 Management Studio 进行复制设置的所有客户端计算机重复 2 - 7。
就是这样!
【讨论】:
简答:检查您是否通过 SSMS 连接了错误的网络别名
例如,您的服务器可以同时访问:
创建复制发布/订阅时,它会与当时用于连接服务器的名称相关联,如果您使用不同的别名或完全限定名称进行连接,则会出现问题中所述的错误。
详情: 我刚刚遇到了这个问题,关于更改 @@servername 的答案帮助我理解了这个问题,但我不必这样做。
考虑一下:
sql server 框设置为 {my_system_name}.local.domain
在我们的网络中,我们有一个网络别名,这样 {my_system_alias} 允许我们访问服务器并避免输入完全限定域名 (FQDN)。
安装了 Sql Server,并且在使用 {my_system_alias} 名称连接时设置了本地复制发布。
然后我使用指定 FQDN 的 SSMS 连接到服务器,如果我右键单击此现有复制的属性 -> 本地发布,我收到错误:“Sql Server 复制需要实际的服务器名称”。
我所要做的就是:使用别名(或其他方式)重新连接到 SSMS 中的服务器,这样我就可以看到复制发布的详细信息。
PS:Phill 在另一个答案中的评论也是另一种选择,使主机文件条目与您需要用于连接的名称相匹配。
【讨论】:
【讨论】:
SERVER='xxx' 参数的情况下连接到该服务器。我正在远程连接,我还要注意这些查询 SELECT SERVERPROPERTY('MachineName') 和 SELECT @@SERVERNAME 都返回相同的字符串
SELECT SERVERPROPERTY(N'servername') 或 SELECT @@SERVERNAME 的结果以及 Additional Connection Parameters 添加类似SERVER=tcp:192.168.1.1,1433; 的内容。感谢@an3sarmiento
您需要在其中更改服务器名称,就像机器名称一样。
@@服务器名
sp_dropserver 'old_name'
sp_addserver 'new_name', 'local'
【讨论】:
分享我的修复,在尝试一切之后,我可以找到解决此问题的方法。我试图使用 SSMS 18.2(本文发布时的最新版本)在 SQL Server 2017 上设置复制。当我设置分发服务器时,一切正常,但是当我进入分发服务器属性并选中“创建队列读取器代理”框时,我会得到著名的“SQL Server 复制需要实际的服务器名称才能连接到服务器。指定实际的服务器名称,''。(Replication.Utilities)”问题。
很多天后,我尝试了不同版本的 SSMS。安装 SSMS 17.9.1 并重新尝试一切正常。希望这对其他人有帮助。
【讨论】:
如果您在托管环境中工作,其中服务器名称是奇怪的字符串,实际上可能正在与其他服务器共享......例如WIN-II7VS-100。感谢@ZachSmith,我找到的解决方案是编辑您要连接的服务器上的主机文件,并将其设置为您要连接的 SQL 服务器的静态 IP。
【讨论】:
如果复制机器上出现此问题 必须在复制机器上运行以下代码 1-首先找到实名服务器
select @@SERVERNAME
go
2- 使用下面的代码删除真实服务器名称
sp_dropserver 'real-server-name'
go
3-用下面的代码添加真实的服务器名称
sp_addserver 'real-server-name', LOCAL
go
【讨论】:
如果订阅机器上的这个问题要解决这个问题,你必须安装 与目标机器相同或更高版本的 SSMS。
【讨论】: