Windows共享上的SQLite(3),从Ubuntu访问CIFS,nobrl,risk

Windows共享上的SQLite(3),从Ubuntu访问CIFS,nobrl,risk,sqlite,cifs,Sqlite,Cifs,在CIFS共享上使用SQLite数据库进行写访问不是一个好主意。明白 我很少需要这样做。数据库很少在Windows服务器上编写(实际上是Windows 10,几周一次),同样也很少从Linux(Ubuntu 16.04.02,如果有必要)服务器上编写。同时写入的机会接近于零(当然不是零) 据我所知(我不确定我是否这样做),在挂载上使用“nobrl”选项可以让这项功能正常工作(事实上它也适用于我),但它是通过完全禁用锁定来实现的(对吗?除非有其他类型?) 是否有一种不在Windows端部署代码的技

在CIFS共享上使用SQLite数据库进行写访问不是一个好主意。明白

我很少需要这样做。数据库很少在Windows服务器上编写(实际上是Windows 10,几周一次),同样也很少从Linux(Ubuntu 16.04.02,如果有必要)服务器上编写。同时写入的机会接近于零(当然不是零)

据我所知(我不确定我是否这样做),在挂载上使用“nobrl”选项可以让这项功能正常工作(事实上它也适用于我),但它是通过完全禁用锁定来实现的(对吗?除非有其他类型?)


是否有一种不在Windows端部署代码的技术来确保这实际上是安全的——例如,SQLite的选项可能不是默认选项。在ubuntu端的更新过程中,锁定整个数据库是完全可以接受的,性能不是问题,也不需要同时访问。主要限制是我无法更改windows端的进程。

SQLite在所有相关文件系统都正确实现锁定的情况下工作。“nobrl”有什么帮助?在两台计算机上运行
sqlite3
,手动执行一系列事务,并在需要时检查是否有锁定错误。@CL:如果没有nobrl,至少在这两个操作系统中,数据库在任何写操作上都会返回“锁定”。许多地方都有文件证明,解决方法是nobrl。事实上,它是有效的。但是强制锁定并查看是否得到它们的建议是好的,让我看看是否可以打开一个事务(我不想依靠在两个窗口上同时点击return作为同步技术:)。只需使用/END。我在linux上运行了sqlite3(命令),在windows上运行了firefox的sqlite管理器。我尝试在两者上插入同一行(违反了约束),在linux上从begin开始,直到在windows上插入(确实如此)才提交。当我在linux上提交时,我得到了一个“磁盘I/o错误”。因此,我感觉它在锁定方面没有正常工作,即使结果是(适当地)拒绝了复制(实际上,我认为如果工作正常,它应该阻止windows)。所以,是的,我认为默认行为是冒着腐败的风险。