SqLite3 NFS 挂载锁定问题 - 我可以使用 CIFS nobrl 之类的东西吗?
我遇到锁定问题,在 NFS 文件系统上创建 SQLITE3 数据库时,该数据库被永久锁定。我读到,当相关文件系统是 CIFS 时,名为 nobrl
的选项可以帮助解决此问题。 (它是 mount 命令的一个选项)。
来自: http://linux.die.net/man/8/mount.cifs
诺布尔
不要向服务器发送字节范围锁定请求。这是 对于某些不符合 cifs 风格的应用程序是必需的 强制字节范围锁(大多数 cifs 服务器尚不支持 请求咨询字节范围锁)。
如果 NFS 中发生字节范围锁定请求,是否有任何方法可以阻止它们,或者即使考虑到这一点,我是否朝着错误的方向运行?我很高兴像 CIFS 解决方案那样更改挂载命令。
I'm having a locking problem where an SQLITE3 databse is permanently locked when created on an NFS file system. I have read that an option called nobrl
can help this issue when the file system in question is CIFS. (its an option to the mount command).
From: http://linux.die.net/man/8/mount.cifs
nobrl
Do not send byte range lock requests to the server. This is
necessary for certain applications that break with cifs style
mandatory byte range locks (and most cifs servers do not yet support
requesting advisory byte range locks).
Is there any way to stop byte-range-lock requests in NFS if they occur, or am I running in the wrong direction by even thinking about this? I'm happy to change the mount command as was done for the CIFS solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议通过启用 nolock 参数的软件打开 sqlite 数据库,golang exg.:
而 /media/R 是安装的 Windows nfs 网络驱动器。请小心,因为您必须通过软件锁定数据库交互,否则在同时访问数据库时可能会损坏数据库。
您可以在此处阅读有关 sqlite 参数的更多信息:
https://www.sqlite.org/c3ref/open.html
I recommend to open you sqlite db by software with nolock parameter enabled, golang exg.:
while /media/R is a mounted windows nfs-network-drive. Be carefull because you have to lock your db interactions by software otherwise you could corrupt your db, when accessing it simultaneously.
You can read more about sqlite parameters here:
https://www.sqlite.org/c3ref/open.html