SQLServer 错误 21879 无法查询重定向服务器“%s”以找到原始发布服务器“%s”和发布服务器数据库“%s”来确定远程服务器的名称;错误 %d,错误消息“%s”。 故障 处理 修复 支持远程

详细信息

Attribute
产品名称 SQL Server
事件 ID 21879
事件源 MSSQLSERVER
组件 SQLEngine
符号名称 SQLErrorNum21879
消息正文 无法查询重定向服务器“%s”以找到原始发布服务器“%s”和发布服务器数据库“%s”来确定远程服务器的名称;错误 %d,错误消息“%s”。

说明

sp_validate_redirected_publisher 使用其创建的临时链接服务器连接到重定向发布服务器,以便发现远程服务器的名称。 在链接服务器查询失败时,将返回错误 21879。 对请求远程服务器名称的调用通常是首次使用临时链接服务器,因此如果存在连接问题,则这些问题可能首先会与此调用一起出现。 此远程调用只是在远程服务器上执行 select @@servername

用于查询重定向发布服务器的链接服务器使用在为原始发布服务器调用 sp_adddistpublisher 时提供的安全模式、登录名和密码。

  • 如果SQL Server身份验证 (安全模式 0) 则使用指定的登录名和密码连接到远程服务器。

  • 如果使用 Windows 身份验证(安全模式 1),则对此连接使用可信连接。

    • 如果 sp_validate_redirected_publisher 被用户显式调用,则用户运行时所使用的 Windows 登录名将用于该连接。

    • 如果复制代理从 sp_get_redirected_publisher 中调用 sp_validate_redirected_ publisher,则将使用与该代理关联的 Windows 登录名。

错误 21879 可能指示在重定向目标发布服务器上使用未知的登录名调用了 sp_validate_redirected_publisher

用户操作

请确保SQL Server身份验证登录名或Windows 身份验证登录名在所有可用性组副本中都有效,并且具有足够的授权来访问发布者数据库中) syssubscriptions 和 sysmergesubscriptions (订阅元数据表。

如果由非分发服务器的其他节点上运行的复制代理(如在订阅服务器上运行的合并代理)启动的 sp_get_redirected_publisher 调用返回了错误 21879,则应注意一些特殊事项。 如果使用 Windows 身份验证 连接到重定向的发布服务器,则必须为 Kerberos 身份验证配置SQL Server才能成功建立连接。 如果使用Windows 身份验证并且未为 Kerberos 身份验证配置SQL Server,则订阅服务器上运行的合并代理会收到错误 18456,指示“NT AUTHORITY\ANONYMOUS LOGON”登录失败。 可以通过三种方式解决此问题:

  • 为 Kerberos 身份验证配置SQL Server。 请参阅 SQL Server 联机丛书中的 Kerberos 身份验证和SQL Server。

  • 使用 sp_changedistpublisher 更改与 MSdistpublishers 中的原始发布服务器相关联的安全模式,并指定要用于该连接的登录名和密码。

  • 当在分发服务器上调用 sp_get_redirected_publisher 时,在合并代理命令行中指定命令行参数 BypassPublisherValidation 以跳过验证。


数据运维技术 » SQLServer 错误 21879 无法查询重定向服务器“%s”以找到原始发布服务器“%s”和发布服务器数据库“%s”来确定远程服务器的名称;错误 %d,错误消息“%s”。 故障 处理 修复 支持远程