MSSQL_ENG014010

适用于:SQL Server Azure SQL 托管实例

消息详细信息

属性
产品名称 SQL Server
事件 ID 14010
事件来源 MSSQLSERVER
组件 SQL Server 数据库引擎
符号名称
消息正文 未将服务器“%s”定义为订阅服务器。

说明

复制要求使用具有可选实例名称的计算机名称(在群集实例的情况下,使用可选实例名称的 SQL Server 虚拟服务器名称)注册拓扑中的所有服务器。 SELECT @@SERVERNAME 为拓扑中每个服务器返回的值必须与具有可选实例名称的计算机名称或虚拟服务器名称相匹配,复制才能正常运行。

如果通过 IP 地址或完全限定的域名(FQDN)注册了任何 SQL Server 实例,则不支持复制。 如果在配置复制时,SQL Server Management Studio 中有 IP 地址或 FQDN 注册的任何 SQL Server 实例,则可能会引发此错误。

用户操作

验证拓扑中的所有 SQL Server 实例是否已正确注册。 如果计算机的网络名称和 SQL Server 实例的名称不一致,则:

  • 添加 SQL Server 实例名称作为有效的网络名称。 一种设置备用网络名称的方法是将其添加到本地主机文件中。 默认情况下,本地主机文件位于 \Windows\system32\drivers\etc\WINNT\system32\drivers\etc。 有关详细信息,请参阅 Windows 文档。

    例如,如果计算机名称为 comp1,IP 地址为 10.193.17.129,实例名称为 inst1/instname,则将以下条目添加到主机文件中:

    10.193.17.129 inst1

  • 删除复制,注册每个 SQL Server 实例,然后重新建立复制。 如果非聚集实例的 @@SERVERNAME 值不正确,请执行以下步骤:

    sp_dropserver '<old_name>', 'droplogins'  
    go  
    sp_addserver '<new_name>', 'local'  
    go  
    

    执行 sp_addserver (Transact-SQL) 存储过程后,必须重新启动 SQL Server 服务,才能使更改@@SERVERNAME生效。

    如果 @@SERVERNAME 的值对于某个群集实例是不正确的,则必须使用群集管理器更改该名称。 有关详细信息,请参阅 AlwaysOn 故障转移群集实例 (SQL Server)

另请参阅

@@SERVERNAME (Transact-SQL)
错误和事件参考(复制)