0

我在一个项目中使用 Sqlite。目前我已经收集了 3000 万个样本,数据库文件的大小约为 2 GB!。我还使用 sqlite3.exe 应用程序每 12 小时自动执行一次备份。数据库的大小正在增加,我应该切换到增量备份解决方案。我想问一下sqlite DB是否有办法做到这一点?

如果没有,我可以迁移到另一个 DBMS(如 MySQL 或 Microsoft SQL Server,...)。我可以使用哪个软件来自动化这个增量备份过程。有没有这方面的免费软件?

4

1 回答 1

0

假设您的表中有必要的字段,您可以简单地将完整备份更改为提取上次拉取后创建的所有内容的内容:

-- export.sql.template
sql='SELECT * FROM YourTable WHERE SampleID > $lastSampleID'

然后您可以在每次备份后存储最后一个 SampleID:

# in pseudo-code - this will not work as-is
cd /path/to/db
lastSampleID=$(cat lastIDFile)
. export.sql.template
echo $sql > export.sql
sqlite db.sqlite --run-script export.sql > backups/$currentDate
lastSampleID=$(get-last-id-from-file backups/$currentDate)
echo $lastSampleID > lastIDFile
于 2013-01-08T21:19:11.680 回答