作者:朱金灿
来源:http://blog.csdn.net/clever101
同事更新一个svn数据库,出现一个错误:打开文件系统的BDB环境句柄时出错,具体如下图:
上网没搜到相关资料。于是想到svn是开源软件,或许从它的源码中可以查到什么相关错误信息,于是下载svn服务端的源码,下载地址是:subversion源码。从它的源码中找到是这个函数触发的:svn_fs_base__retry。但是依然没有找到思路。
估计这个数据库已经坏了,于是登录服务器来修复数据库,运行命令:
svnadmin recover E:Repositorydoc
提示完成修复。
最新的版本库版本是 141。
然后再更新svn数据库,依然出现上面提到的错误。于是又想到新建一个svn数据库,然后将旧库备份出来再导入到新库中,运行命令:svnadmin dump E:Repositorydoc > E:workspacedoc.dump
结果备份出错,提示:
svnadmin: E160029: 打开文件系统“E:/Repository/doc/db”的BDB环境句柄时出错:
svnadmin: E160029: DB_RUNRECOVERY: Fatal error, run database recovery
svnadmin: E000000: bdb: PANIC: fatal region error detected; run recovery
最后只好放弃原有的svn数据库,重新建库导入数据,这算是绕开了这个错误。
参考文献: