没有时间戳的SQL Server数据库备份

时间:2011-12-15 10:10:43

标签: sql-server backup database-backups

我正在使用以下行备份Microsoft SQL Server 2008数据库:

BACKUP DATABASE @name TO DISK = @fileName WITH COMPRESSION

鉴于数据库没有变化,重复执行此行会生成大小相同但内部大小不同的文件。

如何为同一个未更改的数据库创建重复的SQL Server备份,以提供相同的字节精确文件?我想简单的BACKUP DATABASE调用会在备份媒体中添加一些时间戳或其他元信息,是否有办法禁用或删除此添加内容?

或者,如果不可能,是否有一种相对简单的方法来比较2个备份,看看它们是否会恢复完全相同的数据库状态?

更新:我的备份比较点是,我每天都在备份无数的数据库,但大多数数据库都不会经常更改。大多数人每年要改变几次是很正常的。所以,基本上,对于所有其他DBMS(MySQL,PostgreSQL,Mongo),我使用以下算法:

  • 执行新的每日备份
  • 使用最新的旧备份区分新备份
  • 如果数据库未更改(即备份匹配),请删除我刚刚创建的新每日备份

此算法适用于我们之前遇到的所有DBMS,但是,由于不可重复的MSSQL备份,它失败了。

1 个答案:

答案 0 :(得分:0)

您猜测备份目录的一部分包括备份的日期和时间。 WITH COMPRESSION选项压缩备份以节省空间,但由于压缩算法的工作方式,文件中的一点变化将导致整个文件发生变化。

如果您不想要这么多差异,那么请删除compress选项,但比较备份文件是不可取的。

如果您的数据库变化不大,那么增量或差异备份可能会更有用。

然而,您似乎陷入了一个名为XY Problem的经典陷阱,因为您询问的尝试解决方案而非实际问题。是什么促使您尝试比较数据库?