我们计划今天将我们的svn服务器从debian 3.1迁移到6.0。 在迁移一些用户抱怨svn数据库损坏如下之前,我们试图恢复使用命令svnadmin恢复,但没有运气。
[Wed Feb 22 23:14:30 2012] [error] Could not fetch resource information. [500, #0]<br> [Wed Feb 22 23:14:30 2012] [error] Could not open the requested SVN filesystem [500, #160029]<br> [Wed Feb 22 23:14:30 2012] [error] Could not open the requested SVN filesystem [500, #160029]<br> [Wed Feb 22 23:14:31 2012] [error] (20014)Error string not specified yet: Berkeley DB error while opening environment or filesystem /var/svn/reponame/db:\nPermission denied The below error show when I tried to access from broser. <D:error><C:error/><m:human-readable errcode="160029"> Could not open the requested SVN filesystem </m:human-readable></D:error>
请帮我解决这个问题。
/var/svn/reponame/db: Permission denied是问题。
什么服务或用户试图打开数据库? 看起来它是一个Apache服务器 – Apache用户是否有权访问repo的目录(并遍历导致它的目录的权限)?
由于这是一个权限问题,有些事情已经发生了变化 – 在准备迁移方面做了哪些改变?
虽然使用Berkely DB svn是快速的,它可以成为腐败。 使用FSFS文件系统时,我从来没有发生过腐败。 我pipe理着全球30多个GB存储库。
这就是说,我没有经验试图修复一个破损的BDB svn存储库,但我认为,除了研究和可能修复Shane Maddenbuild议的文件权限问题外,你可以尝试的是转储存储库,然后导入它在一个不同的,空的,存储库。 该过程可能会解决您遇到的腐败问题。 值得一试。
另外为了将来的参考,考虑使用一个使用钩子脚本进行实时同步的从属仓库。 或者至less每天或每小时创build一次hotcopies。