sqlite 通过网络共享进行故障转移

发布于 2024-08-28 02:00:02 字数 248 浏览 5 评论 0原文

作为这个问题的后续: sqlite-over-a-network-share

如果我将 SQlite DB 放在网络共享上,但不会从不同的计算机同时访问它。我只将 SQLite 数据库存储在共享上,以便故障转移计算机集群可以接管一台计算机中断的位置。

这种方法有什么固有的问题吗?

As a follow-up of this question: sqlite-over-a-network-share

If I put the SQlite DB on a network share, but will not access it concurrently from different machines. I only have the SQLite db stored on a share so a cluster of failover computers can take over where one machine left off.

Are there any inherent problems with that approach?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑红尘 2024-09-04 02:00:02

有兴趣了解您的经历(5年后)。根据 Eric Grange 的有用提示:

  • “SQLite 使用 POSIX 咨询锁来实现 Unix 上的锁定”...“已知 POSIX 咨询锁存在缺陷,甚至在许多 NFS 实现上未实现”...“最好的防御是不要对网络文件系统上的文件使用 SQLite。”

  • 话虽如此,如果您的 NFS 服务器坚如磐石(即 NetApp)并且您的客户端也坚如磐石(即可能不是 Linux;请参阅 http://nfsworld.blogspot.co.at/2006 /10/review-of-why-nfs-sucks-paper-from.html)。

  • NFS 上的 POSIX 建议锁定也依赖于实现:来自文件锁定维基百科文章:“在 2.6.12 之前的 Linux 上,对 NFS 文件的集群调用只能在本地进行。内核 2.6.12 及更高版本实现了集群调用使用 POSIX 字节范围锁的 NFS 文件对实现 fcntl 样式 POSIX 锁的其他 NFS 客户端可见,但对那些未实现的客户端不可见。”如果有疑问,您可以使用 nfstrace 来确定您的操作系统正在尝试执行的操作。

  • 如果节点 A 开始事务、锁定表文件然后崩溃,会发生什么情况?节点 B 会看到咨询锁并拒绝写入文件吗?

Interested in knowing your experiences (After 5 years). Per Eric Grange's helpful hint:

  • "SQLite uses POSIX advisory locks to implement locking on Unix"... "POSIX advisory locking is known to be buggy or even unimplemented on many NFS implementations" ... "Your best defense is to not use SQLite for files on a network filesystem."

  • Having said that, if your NFS server is rock-solid (ie, NetApp) and your clients are rock-solid (ie, probably not Linux; see for instance http://nfsworld.blogspot.co.at/2006/10/review-of-why-nfs-sucks-paper-from.html).

  • POSIX advisory locking over NFS is also impelmentation-dependent: From the File locking Wikipedia article: "On Linux prior to 2.6.12, flock calls on NFS files would act only locally. Kernel 2.6.12 and above implement flock calls on NFS files using POSIX byte-range locks. These locks will be visible to other NFS clients that implement fcntl-style POSIX locks, but invisible to those that do not." If there's doubt, you can use nfstrace to determine what your OS is trying to do.

  • What happens if node A has begun a transaction, locked the table-file, then crashed? Will node B see the advisory lock and refuse to write to the file?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文