【问题标题】:SVN Server on NFS3 "Database is locked"NFS3 上的 SVN 服务器“数据库已锁定”
【发布时间】:2011-08-25 15:55:33
【问题描述】:
尽管有很多关于此错误的主题,但我仍然无法设置 av SVN 服务器。服务器在 Scientific Linux 6 上运行,存储库应该通过 NFS3 存储在 SUNOS 存储服务器上。
我读到使用“nolocks”选项安装可以解决问题,但我不想这样做,因为很多用户同时在服务器上工作,我想移除锁会产生新问题。
已安装 SVN,正在处理本地文件,但是当我尝试在远程位置创建存储库时,文件已创建但我收到错误“数据库已锁定”并且无法使用存储库。我使用的 fsfs 系统应该可以与 NFS 一起正常工作。
有人可以给我其他选择吗?
【问题讨论】:
标签:
linux
svn
nfs
locks
sunos
【解决方案1】:
好的,我最终在 NFS 服务器上设置了一个新共享,只能由我的 SVN 服务器访问,并使用“nolock”挂载在那里。然后它可以工作,但不是重点,我仍然不知道如何在不移除锁的情况下设置它。
【解决方案2】:
NFS 客户端通常会使用 NFS 锁定管理器 (NLM) 将 NFS 服务器上某些文件的锁定与访问/锁定相同文件的其他 NFS 客户端同步。 nolock 挂载选项告诉 NFS 客户端不要使用 NFS 锁管理器,而是在 NFS 客户端机器本身上本地管理锁。如果您只有 1 个 NFS 客户端或多个 NFS 客户端,其中每个客户端在导出的文件系统的不同区域上工作,这样就不会发生锁争用,这很有用。
看起来您有以下内容:
(A) SVN_Client ==> (B) SVN_Server/NFS_Client ==> (C) NFS_Server
其中:服务器 (B) 是 Scientific linux 6,为客户端提供 SVN 服务并从服务器 (C) 进行挂载,即 SunOS 存储服务器。
假设您没有从 NFS 服务器挂载其他机器并提供相同的 SVN 服务,则 nolock 选项将正常工作,因为 server(B) 将在本地完成所有锁定管理。无需/要求在 NFS 服务器上集中锁定。
这对于您在问题中提到的 NFSv3 是正确的。