SQL Server 2008 R2 - 指定进行差异备份时要使用的完整备份

Tho*_*mas 3 sql-server backup

当我备份我的数据库时,我每天都会在磁带上进行完整备份。我正在尝试使用周日的完整备份来设置额外的差异备份,我该怎么做?它只需要最后一次完整备份。

完整(周日运行):

BACKUP DATABASE [DATABASE] TO  DISK = N'J:\DATABASE Backup\MyDatabase_Full.bak' WITH NOFORMAT, NOINIT,  NAME = N'DATABASE-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
Run Code Online (Sandbox Code Playgroud)

部分(每天运行,但使用错误的完整备份):

BACKUP DATABASE [DATABASE] TO  DISK = N'J:\DATABASE Backup\MyDatabase_Partial_20120105.bak' WITH  DIFFERENTIAL ,  RETAINDAYS = 10, NOFORMAT, NOINIT,  NAME = N'DATABASE-Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
Run Code Online (Sandbox Code Playgroud)

Mar*_*ian 6

您应该将每日备份设为copy_only,以免破坏事务日志备份或差异备份的链。之后,每日完整备份将不会被视为差异备份的基础。

引用自 MSDN:

"COPY_ONLY 指定备份是仅复制备份,不会影响正常的备份顺序。仅复制备份是独立于您定期安排的常规备份创建的。仅复制备份不会影响您的整体备份和数据库的恢复过程。

SQL Server 2005 中引入了仅复制备份,用于出于特殊目的进行备份的情况,例如在联机文件还原之前备份日志。通常,仅复制日志备份使用一次然后删除。

当与 BACKUP DATABASE 一起使用时,COPY_ONLY 选项会创建一个不能用作差异基础的完整备份。差异位图不会更新,差异备份的行为就像只复制备份不存在一样。随后的差异备份使用最新的常规完整备份作为它们的基础。