在 SQL 服务器中进行正向恢复是否安全?
Is it safe to do forward restore in SQL Server?
我已将 .bak
文件从我的 SQL Server 2008 R2 恢复到我的 2017 实例(两个 Developer 版本),它似乎工作正常。
它真的恢复了所有用户定义的对象吗?所有这些对象的工作方式都与它们在 2008 R2 实例中的工作方式相同吗?
是的,它们将在 2008 R2 实例中正常工作。
是的,SQL Server 2017 与 SQL Server 2008R2 中创建的备份具有前向兼容性。
还原过程还原所有用户和系统对象,然后将它们升级到当前版本。
重要提示: 数据库仍将处于旧的兼容级别 - 100
,对应于 SQL Server 2008R2。为了获得所有可用的新优化和功能,请考虑将您的数据库更改为最新的兼容级别。对于 SQL Server 2017,它是:140
.
ALTER DATABASE [DbName] SET COMPATIBILITY_LEVEL = 140;
这还将启用自 2008R2 以来引入的查询优化器和 t-sql 增强功能。
然后更新统计数据
USE [DbName]
EXEC SP_UPDATESTATS
值得一提的是,兼容性更改是向后逆转,而在 SQL Server 2017 中创建的备份无法在 2008R2 中恢复。
我已将 .bak
文件从我的 SQL Server 2008 R2 恢复到我的 2017 实例(两个 Developer 版本),它似乎工作正常。
它真的恢复了所有用户定义的对象吗?所有这些对象的工作方式都与它们在 2008 R2 实例中的工作方式相同吗?
是的,它们将在 2008 R2 实例中正常工作。
是的,SQL Server 2017 与 SQL Server 2008R2 中创建的备份具有前向兼容性。 还原过程还原所有用户和系统对象,然后将它们升级到当前版本。
重要提示: 数据库仍将处于旧的兼容级别 - 100
,对应于 SQL Server 2008R2。为了获得所有可用的新优化和功能,请考虑将您的数据库更改为最新的兼容级别。对于 SQL Server 2017,它是:140
.
ALTER DATABASE [DbName] SET COMPATIBILITY_LEVEL = 140;
这还将启用自 2008R2 以来引入的查询优化器和 t-sql 增强功能。
然后更新统计数据
USE [DbName]
EXEC SP_UPDATESTATS
值得一提的是,兼容性更改是向后逆转,而在 SQL Server 2017 中创建的备份无法在 2008R2 中恢复。