【问题标题】:sqlite over network share for failoversqlite over network share 用于故障转移
【发布时间】:2010-04-11 07:45:12
【问题描述】:

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

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

这种方法是否存在任何固有问题?

【问题讨论】:

  • 我看到的唯一问题是网络共享是否出现故障,并恢复任何错过的操作。不是很有帮助,抱歉,这就是为什么我将其添加为评论,而不是答案。
  • mpelletier:不过你的观点很有道理。我首先选择 SQLite 的原因是拥有一个高可用(和快速)的数据存储。不依赖网络连接的一种。如果我将数据库放在共享上,我首先失去了使用 SQlite 的重要理由。
  • 这让我想知道 SQlite 和(自动)故障转移方案是如何工作的。

标签: sqlite network-share


【解决方案1】:

有兴趣了解您的经历(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 建议锁定也依赖于执行:来自文件锁定 Wikipedia 文章:“在 2.6.12 之前的 Linux 上,NFS 文件上的群发调用只能在本地执行。内核 2.6.12 及更高版本实现“flock 使用 POSIX 字节范围锁调用 NFS 文件。这些锁对其他实现 fcntl 样式 POSIX 锁的 NFS 客户端可见,但对那些没有实现的 NFS 客户端不可见。”如果有疑问,您可以使用nfstrace 来确定您的操作系统正在尝试做什么。

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

【讨论】:

  • 我从未使用过这种方法。所以没有经验。
  • 有人知道sqlite是否使用“fcntl-style POSIX locks”吗?
猜你喜欢
  • 2012-03-05
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多