SQL Server 2012 和 SQL Server 2016 版本之间的事务复制失败

Transactional Replication failing between SQL Server 2012 and SQL Server 2016 versions

根据 Microsoft 文档 - 事务性发布的订阅者可以是发布者版本的两个版本中的任何版本。例如:SQL Server 2012 (11.x) 发布者可以有 SQL Server 2014 (12.x) 和 SQL Server 2016 (13.x)订户; SQL Server 2016 (13.x) 发布者可以有 SQL Server 2014 (12.x) 和 SQL Server 2012 (11.x) 订阅者。

但是我正在尝试从 Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 到 Microsoft SQL Server 2016 (SP2-CU12) ( KB4536648) - 13.0.5698.0 (X64) 失败,这是我收到的错误消息 - 所选订阅者不满足所选发布的最低版本兼容级别。

这些版本不兼容吗?

版本要求的另一半是您的分发服务器是您的复制拓扑中最高的 SQL 服务器版本。

在您的情况下,您正在从 SQL Server 2012 复制到 SQL Server 2016,只有当您的分销​​商也是 SQL Server 2016 时才有效。

如果您运行在您的 2012 发布者上安装您的分发数据库,​​当您添加订阅者时配置将失败,因为订阅者的版本高于分发者。您需要 运行 专门的分销商(推荐)或使用 2016 年订户作为分销商服务器。

您发布的错误消息具有欺骗性,因为它不是 subscriber/publisher 版本问题,而是 subscriber/distributor 版本问题。