将数据库与其备份文件进行比较

时间:2018-09-27 13:00:56

标签: sql-server

我需要将数据库与相同数据库的备份文件进行比较,并仅在备份文件不同时才从备份文件中还原数据库。

用例:我有一个测试服务器,并且我想使用远程文件系统上的备份文件(如果两者都不同)来还原数据库。我正在考虑比较哈希值(但在某处看到大小有限制)。关于如何实现的任何见解?另外,我想知道如何从数据库生成哈希并将其与备份文件的哈希进行比较。

2 个答案:

答案 0 :(得分:2)

  

我需要将数据库与相同数据库的备份文件进行比较,并仅在备份文件不同时才从备份文件中还原数据库。

如果不还原到其他位置,然后再比较架构定义和所有数据,则无法将备份与实时数据库进行比较。

您可以使用replication使产品和测试版本保持同步。它已经内置。

  

如何从数据库生成哈希并将其与备份文件的哈希进行比较

备份文件和db文件的格式不同,即使它们实际上表示相同的数据库状态,哈希也永远不会匹配。

答案 1 :(得分:2)

您可以将当前的database LSNbackup LSN进行比较。

请注意,由于存在检查点,即使未触及数据,您的数据库也会快速偏离。

与您可能想要的最接近的东西是log shipping。它使您可以最大程度地减少原始数据库和测试数据库之间的通信量,但它要求您的测试数据库为只读,并在产品上建立和维护正确的日志备份顺序。

您要问的简短答案是:不可能。