Azure SQL:更新 [master] 数据库的兼容性级别

sam*_*y34 1 sql-server compatibility updates azure-sql-database

我们有一个单一的生产数据库[ProdDatabase]上已创建早在2013年在创建时的兼容性级别的Azure的SQL Server实例[ProdDatabase],并[master]为因此设置为100(SQL Server 2008中)。

在过去的几周里,我们成功地将兼容性级别更新[ProdDatabase]为 110、120、130 和现在的 140(最新)。在每个步骤中,我们都创建了一个副本[ProdDatabase]并在[ProdDatabase]. 这一切都运行良好,现在[ProdDatabase]兼容性级别为 140。

[master]数据库,但是,仍然是在兼容级别100为了保持一致性,我们要更新这个[master]通过调用数据库兼容级别140以及(只alter database [master] set compatibility_level=<110,120,130,140>

为了将风险降到最低,我们也在考虑[master]逐步更新(即首先是 110,然后是 120,然后是 130,然后是 140)。然而,考虑到它是一个系统数据库,似乎我们不能在副本上“排练”它,看起来我们只需要直接在实时[master]数据库上进行。考虑到它[master]包含登录和数据库元数据,我们有点担心如果更新由于某种原因不起作用,我们可能会以某种方式破坏我们的实时生产应用程序。然而,我们已经在本地安装上对其进行了测试,它似乎工作正常。我们的生产 Web 应用程序从不查询[master]任何内容,但它使用当然在[master]数据库中列出的 SQL 登录名。

我的问题:是否有人能够描述更新[master]Azure SQL 实例上数据库的兼容性级别的“最佳实践”方法?是否有任何[master]我们应该特别注意的陷阱?alter database [master] set compatibility_level=110;如果事情真的发生了,电话会很容易逆转吗?

The*_*war 5

您无法更改 Azure 主数据库的兼容性级别,进一步

兼容性级别仅影响指定数据库的行为,而不影响整个服务器的行为

所以我不认为主兼容级别会影响其余的数据库,进一步在 Azure SQL 中,主数据库只保存登录名和元数据相关信息

  • 看来你是对的......我创建了另一个测试 Azure SQL 数据库服务器并尝试在其主数据库上执行“设置兼容性级别”命令。它返回错误“无法在此操作中使用保留的数据库名称‘master’。” 基于该错误消息,我还发现了这篇文章:http://www.sqlcoffee.com/Troubleshooting183.htm,其中提供了更多信息。我想我只是想确保我们是最新的,所以我很高兴现在知道我们已经做了我们能做的一切!感谢您的快速回答:)。 (2认同)