我们将 SQL Server 2014 升级到 2016。在开发环境中,我们进行了就地升级,使 master 数据库的兼容性级别为 120。但在生产中,我们迁移到新服务器,因此 master 的兼容性级别为 130。
我希望这两种环境尽可能相似。此外,我们有一个从主数据库运行查询的应用程序,因此理论上它们在不同环境之间的行为可能不同。
将主数据库的兼容级别从 120 更改为 130 是否安全?
我们将 SQL Server 2014 升级到 2016。在开发环境中,我们进行了就地升级,使 master 数据库的兼容性级别为 120。但在生产中,我们迁移到新服务器,因此 master 的兼容性级别为 130。
我希望这两种环境尽可能相似。此外,我们有一个从主数据库运行查询的应用程序,因此理论上它们在不同环境之间的行为可能不同。
将主数据库的兼容级别从 120 更改为 130 是否安全?
我不确定您所说的一个应用程序“从主数据库运行其查询”是什么意思。您可能知道,这属于“最坏做法”的范畴。
升级在主数据库兼容模式方面按预期工作。请参阅更改数据库兼容级别并使用查询存储。不幸的是,本文档没有就升级后是否应该更改它提供任何指导。
因此,如果在生产环境中使用更高的兼容模式一切正常,那么在开发中更改兼容模式应该是安全的。我说应该是安全的唯一原因是,我从事 IT 行业的方式一直以来都渴望说任何事情都是安全的。如果您不确定为什么此更改应该是安全的,那么我建议您阅读一下兼容模式的实际作用,然后应该清楚可以更改它 - 特别是因为您已经在生产环境中测试了配置。
此外,我还没有找到任何建议更改它是不可行的,并且我发现了一些建议应该这样做的参考资料:
最后——这个问题已经存在了一天,没有人评论或回答任何警告,我很确定如果有任何已知的重大风险,有人已经发表评论了。
在您的情况下,由于它是一个开发系统,并且有一个具有升级兼容模式的生产服务器合作伙伴,我当然会升级它。如果兼容模式对任何查询有负面影响,您将希望在开发中找到它,而不是在生产中。对于大多数系统来说,这无关紧要,因为应用程序不使用主数据库中的代码,但听起来您那里有一些存储过程或可能受主数据库兼容模式影响的东西。