Subversion Berkeley DB损坏,恢复失败

时间:2020-03-06 14:35:11  来源:igfitidea点击:

我有一个由berkeley DB支持的Subversion存储库。有时它会由于一些锁定而崩溃,并且不会被释放,但是今天早上无法使用'svnadmin restore'命令来恢复它。相反,它失败并显示以下错误:

svnadmin: Berkeley DB error for filesystem 'db' while opening 'nodes' table:
Invalid argument
svnadmin: bdb: file nodes (meta pgno = 0) has LSN [1083][429767].
svnadmin: bdb: end of log is [1083][354707]
svnadmin: bdb: db/nodes: unexpected file type or format

我打算从上一个已知的良好备份中还原存储库,但是最好知道是否可以解决该存储库的问题。

编辑:即使db_recover实用程序也没有什么不同。它显示恢复已完成,但是使用svnadmin验证存储库时,相同的错误仍然存​​在。

解决方案

I've got a Subversion repository, backed by the berkeley DB.

很抱歉听到这个消息。我建议我们尽早转储该存储库(" svnadmin dump"),然后将其重新加载到由FSFS支持的新存储库中(" svnadmin load")。

我们是否尝试过db_recover?后者比svnadmin能够纠正更多的问题

对于想要尝试db_recover函数的用户,我们首先需要找到正确的berkeley DB版本,然后使用正确的berkeley DB软件版本。然后运行恢复实用程序:

db_recover -c -v -h <path to subversion db dir>

我知道这个问题很老了,但是还有另一种方法对我有用:
svnadmin恢复<svn路径>