saf*_*dri 4 sql-server log-shipping
根据SQL Server 的以下线程:我可以从 SQL Server 2014 --> 2016 登录发货吗?
始终登录发货 UP,因为这是一个基本支持的升级过程。你不能登录船DOWN。您可能关心的问题是,如果您需要回到 2014 年,因为您无法将 2016 年的数据库恢复到 2014 年,您如何回滚而不丢失数据
我们需要为我们的环境进行设置,以记录从旧版本到新版本的传输,即从 2008R2 到 2016 并收到以下错误:
Error: This backup cannot be restored using WITH STANDBY because a database
upgrade is needed. Reissue the RESTORE without WITH STANDBY.
Run Code Online (Sandbox Code Playgroud)
您能否建议这是否可以做到?如果是这样,我们应该怎么做才能让它发挥作用?
如错误消息所述,WITH STANDBY
还原到较新版本的 SQL Server 时无法使用。在这种情况下,数据库升级过程必须运行,而在待机模式下不能这样做,因为数据库本质上是只读的。这记录在RESTORE Statements - Arguments (Transact-SQL) 中:
当需要升级数据库时,也不允许 STANDBY。
您可以使用NORECOVERY
而不是STANDBY
用于还原。您将无法将新服务器用作数据库的可读副本,这可能会破坏交易。但它支持迁移到较新服务器的场景(如果这就是您的最终目标)。
我会仔细检查你的配置。具体来说,检查您是否为目标(辅助)数据库的“还原”选项卡上的“还原备份时的数据库状态”选项选择了“无恢复模式”。这是配置日志传送 (SQL Server) - 使用 SQL Server Management Studio 中的第 17 步
- 在“还原”选项卡上的“还原备份时的数据库状态”下,选择“无恢复模式”或“待机模式”选项。
您可以通过右键单击数据库,选择属性,然后查看“事务日志传送”选项卡来查看设置。
从评论中澄清一些问题和陈述:
似乎在 2016 年打开数据库时,它实际上是应用/恢复事务日志文件。请确认!”
不,这不是它的工作原理。在RESTORE LOG
操作期间应用事务日志。所以删除的源事务日志不是问题。如果您收到有关丢失事务日志的错误,那么听起来有些恢复失败,或者它们的恢复顺序不正确,等等。
但是,当我们检查2016年配置数据库的数据和日志文件的时间戳时,它显示了配置时的时间戳
不能使用 Windows/NTFS 时间戳作为正在使用的 SQL Server 数据文件的有效指示,因此它不能用作还原事务日志时未应用事务日志的证据。