在评估将托管 AG 的 SQL Server 2012 实例滚动升级到 SQL Server 2016 的可能性时,我们遇到了一个不太合理的奇怪问题。一种更简单的演示方法如下:
假设您想将数据库添加到 AG(正在使用 2012 实例)。SSMS 2012 或 SSMS 2014 向导显示不出意外:
然而,SSMS 2016 讲述了完全不同的故事:
对于已经是 AG 一部分的数据库,它说“不满足先决条件”而不是“已经是……”,对于那些不在 AG 中的数据库,它说“需要密码”,并附有以下解释:
“此数据库由数据库主密钥加密,您需要在将其添加到可用性组时提供有效密码。”
此消息的问题在于没有任何数据库使用任何加密。
如果您从 2016 实例上的 2012 AG 备份还原数据库并尝试使用 SSMS 2016 向导将其添加到 2016 AG,则会出现同样的问题。
可疑表有 299 个 nvarchar(max) 列、1 个整数列和 1 个 nvarchar(255) 列。请不要问我为什么,这是第 3 方供应商数据库。无论如何,根据我的数学计算,在最坏的情况下,我们应该在 8060 限制范围内:
24x299 + 4 + 510 = 7690
在使用供应商的导入工具的导入过程中,从外部源插入失败并出现上述错误。我在计算中遗漏了什么吗?11842 可能来自哪里?有任何想法吗?
谢谢!