如何检查备份完整性

问题描述 投票:0回答:1

我们使用 Firebird 2.5.*,并使用 gbak.exe 命令来备份和恢复数据库。

发生备份恢复的情况,用户选择了错误的文件从备份中恢复(例如 XML 文件) - gbak 中出现错误,但它损坏了数据库。

我在 Firebird/gbak 文档中没有找到用于检查备份完整性的参数(不执行恢复)。

我想知道是否有任何方法可以检查 Firebird 备份文件是否“有效”,而不需要实际恢复备份。使用 gbak.exe 命令检查备份的完整性,而无需恢复。

这样我们可以在继续恢复之前验证备份文件是否有效。

firebird database-backups firebird2.5
1个回答
0
投票

除了恢复之外,没有其他方法可以验证备份的有效性。但是,您描述的场景表明您使用了

-recreate_database overwrite
(或简称
-r o
)或
-replace_database
或 (
-rep
) 选项,而不是
-create_database
(或
-c
)或
-recreate_database
(没有
overwrite
;或
-r
)选项。如果该名称下已存在数据库,则最后两个选项将失败。前两个选项将首先删除/删除现有数据库,然后才恢复它。

您遇到的情况在Firebird备份和恢复实用程序手册的恢复或重新创建部分中明确提到:

最后,如果恢复过程发现转储文件是 损坏,恢复将失败并且您以前工作的数据库 将永远消失。

(在这种情况下,不是 gbak 备份文件的文件与损坏的备份无法区分。)

建议的步骤是恢复到不同的文件名,然后在恢复成功完成后将其重命名为正确的文件名。

© www.soinside.com 2019 - 2024. All rights reserved.