我正在寻找每日备份sqlite数据库的正确解决方案。该数据库大约5GB,定期增长,每秒接收新数据并以WAL模式。该服务是全天候服务的,因此在备份期间无法停止任何事情。虽然需要检查,但可能会将数据库锁定几秒钟(分钟)。目的不是要在备份中保留最后的数据,而是为了避免在重大崩溃的情况下丢失“太多”的数据。备份将至少在一天内运行,如果不需要太长时间,备份可能会更频繁。备用SQlite备份解决方案
我尝试了命令的.backup,但是数据库的传输非常慢(只有几MB 10分钟后,还是很远3小时完成) - 这可能是由于不断写活动。
我试过.dump命令。除非试图恢复数据(使用.read),否则这种方式运行良好。如此大的查询(大约10GB .sql文件)会占用系统上的所有内存,并被操作系统(Linux)杀死。
我读了关于LVM和创建快照的能力 - 这可能是一个有趣的解决方案,但现在主机不支持LVM。
我也在考虑将备份过程整合到访问这个数据库的代码中,但是我希望备份过程是独立的。我也不明白为什么这个解决方案会比'.backup'命令更快。
任何建议,除了“添加一些内存”?
谢谢。