症状
假设将 SQL Server 2017 上运行的远程分发服务器升级到 SQL Server 2019,其中任何订阅服务器未使用默认端口号 1433。 在这种情况下,你可能会注意到升级后,分发代理无法连接到订阅服务器。 此外,还可能会收到以下错误消息:
Msg 20032,级别 16,状态 1,Procedure ProcedureName,Line LineNumber [Batch Start LineNumber ]
“ProcedureName”未定义为“ProcedureName”的订阅服务器。
Msg 14070,级别 16,状态 1,Procedure ProcedureName,Line LineNumber [Batch Start LineNumber ]
无法更新分发数据库订阅表。 无法更改订阅状态。
Msg 14057,级别 16,状态 1,过程 过程名称,Line LineNumber [Batch Start LineNumber ]
无法创建订阅。
Msg 20021,级别 16,状态 1,Procedure ProcedureName,Line LineNumber [Batch Start LineNumber ]
找不到订阅。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方法
以下针对SQL Server的累积更新中修复了此问题:
关于SQL Server的累积更新:
SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:
更多信息
如果在将分发服务器升级到 SQL Server 2019 后删除所有订阅服务器,然后尝试为同一订阅服务器创建新订阅,则可能会失败。 若要修复此行为,请删除格式为“servername,port”的订阅服务器的链接服务器条目,并从 [distribution] 中删除格式为“servername,port”的订阅服务器的条目。[dbo]。[MSreplservers]。
参考
了解 Microsoft 用于描述软件更新的术语。