进行还原时尾日志备份?

Pau*_*aul 10 sql-server restore transaction-log

通常,在将数据库从生产服务器还原到非生产服务器时,我将使用 WITH REPLACE 选项,因为当我忘记收到有关未备份尾日志的错误时。

根据 MSDN我确实应该在恢复之前备份我的尾部日志:

如果数据库处于联机状态并且您计划对数据库执行还原操作,请先备份日志的尾部。为避免联机数据库出现错误,您必须使用 BACKUP Transact-SQL 语句的 ... WITH NORECOVERY 选项。

我这样做的方式有哪些危险或缺点?为什么首先备份尾部日志对我有利?

我正在使用 SQL Server 2008R2,但我认为这个查询将与大多数较新版本的 SQL Server 相关,因此最初没有将其标记为这样。

Jos*_*ira 5

如果您不备份日志的尾部,您将丢失自上次备份数据库以来发生的任何事务。

  • 是的,我明白了。但即便如此,我认为你的回答已经让我弥合了我的想法。看到非生产数据库从不备份,所以无论如何我都会通过恢复丢失整个数据库,所以我为什么要关心尾部日志。但 MSDN 的想法是我总是备份我的数据库,现在唯一没有备份的是尾部日志,因此他们希望我备份它。对于我没有人关心的瞬态非生产数据库的特定场景,因此备份尾部日志没有任何优势。 (2认同)
  • 完全正确。如果您只是想将数据带到非生产环境,而并不真正关心其中的内容,那么实际上完全没有问题。 (2认同)