假设,对于 SQLServer2008R2 及更高版本,具有完整恢复模式数据库。
我一直认为:
当一个事务被提交 (COMMIT) 时,该事务被写入 RAM 中的事务日志。
当 CHECKPOINT 发生时(在一段时间和/或一些事务和其他条件之后),最后一个 CHECKPOINT 和当前事务之间的事务被写入磁盘。
当 BACKUP LOG 发生时,数据将写入 MDF 文件。
我对么?我的一些同事说我错了,即使有 BOL 也很难找到正确的答案。
谢谢!
对于 SQL Server 2012 可用性组,您只能COPY_ONLY
对副本进行完整备份。您可以定期制作BACKUP LOG
.
由于可以在从COPY_ONLY
转储恢复数据库后恢复日志备份,我们真的需要进行完整(非COPY_ONLY
)备份吗?
是的,它创建了一个新的 LSN 序列,但如果我们不做DIFFERENTIAL
备份,我们需要考虑一下吗?
通过仅使用COPY_ONLY
备份,我希望能够在只读副本上执行所有备份。我的 AG 是异步的,因此备份可能在主服务器之后,但这是可以接受的风险。
我做日志备份。根据我的测试,COPY_ONLY
只要日志备份 LSN 比完整备份更新,我就能够恢复数据库上的任何日志备份(无论是否从 a 恢复)。完整备份会更改database_backup_lsn
,COPY_ONLY
不会更改,但似乎不会影响日志还原。似乎我无法恢复 DIF 备份,但我不需要那个。
dba.se Q&A里面有很好的解释:
SQL Server 2008 R2 使用事务日志还原 COPY_ONLY 完整备份
...但它没有回答我的问题。目前,我的结论是:除了第一次备份(没有它您将无法进行日志备份),COPY_ONLY
如果我们不使用差异,我们只能使用备份。
我的(一般)问题是:COPY_ONLY
如果我们不采取差异,我们是否真的需要非备份,如果是,为什么?