完整/差异备份 - 用什么来确定差异备份内容?

Chr*_*ess 2 backup sql-server-2005

假设我有一个“MyDB”SQL Server 2005 数据库(简单恢复),我在星期天做一次完整备份,每隔一晚做一次差异

BACKUP DATABASE [MyDB] TO DISK = N'c:\Database Backups\MyDB\MyDB_Full.bak'
    WITH NOFORMAT, INIT, NAME = N'MyDB.BAK', SKIP, NOREWIND, NOUNLOAD, STATS =
    10
Run Code Online (Sandbox Code Playgroud)

BACKUP DATABASE [MyDB] TO DISK = N'c:\Database Backups\MyDB\MyDB_Diff.bak'
    WITH NOINIT, DIFFERENTIAL, NAME= 'MyDB.BAK', STATS= 10
Run Code Online (Sandbox Code Playgroud)

差异备份过程使用什么来决定在差异夜备份哪些数据?它是否需要 mydb_full.bak 文件来开展业务?

如果我想节省磁盘空间,是否可以在创建 mydb_full.bak 文件后将其压缩为 .zip 文件而不会对差异备份产生不利影响,如果我需要恢复,只需在开始前解压缩完整备份?

Jam*_*mes 7

否 - 差异备份不使用完整备份文件本身作为参考。您可以(并且应该!)安全地将完整备份转储移动到另一台机器或任何您喜欢的机器上。

SQL Server 在内部存储一个脏区位图(自上次完整备份以来发生更改的数据库部分),并且当您运行差异备份时,它会参考位图并仅将数据库的那些更改部分写入备份。

  • 据我所知不可能... (2认同)