我需要将数据库与相同数据库的备份文件进行比较,并仅在备份文件不同时才从备份文件中还原数据库。
用例:我有一个测试服务器,并且我想使用远程文件系统上的备份文件(如果两者都不同)来还原数据库。我正在考虑比较哈希值(但在某处看到大小有限制)。关于如何实现的任何见解?另外,我想知道如何从数据库生成哈希并将其与备份文件的哈希进行比较。
答案 0 :(得分:2)
我需要将数据库与相同数据库的备份文件进行比较,并仅在备份文件不同时才从备份文件中还原数据库。
如果不还原到其他位置,然后再比较架构定义和所有数据,则无法将备份与实时数据库进行比较。
您可以使用replication使产品和测试版本保持同步。它已经内置。
如何从数据库生成哈希并将其与备份文件的哈希进行比较
备份文件和db文件的格式不同,即使它们实际上表示相同的数据库状态,哈希也永远不会匹配。
答案 1 :(得分:2)
您可以将当前的database LSN与backup LSN进行比较。
请注意,由于存在检查点,即使未触及数据,您的数据库和也会快速偏离。
与您可能想要的最接近的东西是log shipping。它使您可以最大程度地减少原始数据库和测试数据库之间的通信量,但它要求您的测试数据库为只读,并在产品上建立和维护正确的日志备份顺序。
您要问的简短答案是:不可能。