考虑到DFS 复制面向文件和文件夹:
DFS 复制是一种高效的多主复制引擎,可用于跨有限带宽网络连接在服务器之间保持文件夹同步。
如果您关心一致性并保留所有数据,我可能会尽量避免它,如SQLite 备份文档所述:
从历史上看,SQLite 数据库的备份(副本)是使用以下方法创建的:
- 使用 SQLite API(即 shell 工具)在数据库文件上建立共享锁。
- 使用外部工具(例如 unix 'cp' 实用程序或 DOS 'copy' 命令)复制数据库文件。
- 放弃在步骤 1 中获得的数据库文件上的共享锁。
此过程在许多情况下运行良好,并且通常非常快。但是,这种技术有以下缺点:
- 任何希望在创建备份时写入数据库文件的数据库客户端必须等到共享锁被放弃。
- 它不能用于将数据复制到内存数据库或从内存数据库复制数据。
- 如果在复制数据库文件时发生电源故障或操作系统故障,则备份数据库可能会在系统恢复后损坏。
在 DFS 的情况下,它甚至不会在复制之前锁定数据库。
我认为您最好的选择是使用某种热复制,您可能想要使用SQLite Online Backup API,您可以查看本教程关于使用 Online Backup API 创建热备份。
或者,如果您想要更简单的东西,您可以尝试使用SymmetricDS,这是一个与 SQLite 兼容的开源数据库复制系统。
还有其他选项(例如 litereplicator.io),但这个是封闭源代码,仅限于旧 SQLite 版本和约 50MB 大小的数据库
附言。如果您真的需要 HA、复制或此类功能,我可能会远离 SQLite。根据您选择的编程语言,很可能您已经抽象了 DB 层,您可以使用 MySQL 或 PosgreSQL。