Rsync/Sqlite 数据库

Rsync/Sqlite 数据库

有人尝试过 rsync sqlite 数据库吗?

在同步时可以访问数据吗?

答案1

我认为这是危险的。

SQLite 数据库也有需要保存的日志文件。

如果你

  • 在事务过程中,rsync 数据库而不包含日志文件
  • 复制数据库文件
  • 访问副本

你很有可能会遭遇腐败。

使用 SQLite 在线备份 API 反而。

答案2

假设您想通过 shell 命令执行此操作,您可以执行以下操作:

ssh user@host 'sqlite3 "/path/to/db.sqlite" ".backup /path/to/dbbackup.sqlite"'
rsync user@host:"/path/to/dbbackup.sqlite" "db.sqlite"

首先,安全地创建现有数据库的备份,然后将其复制到您自己的机器上的“db.sqlite”。

答案3

正如 Noah 指出的那样,这很危险。你的数据库将被破坏。

您可以使用文字复制品图书馆。

它会在幕后完成所有与正常 SQLite 事务相关的工作。并且是增量式的(仅传输已更改的页面)。

或者精英图书馆。

最后一个需要安装 Go 语言。

答案4

对于那些寻求更安全的解决方案的人来说,可以实时复制和备份 SQLite,而不会中断其操作,请查看精简流-Litestream 是一个在单独进程中运行的工具,它能持续将 SQLite 数据库复制到 Amazon S3。

相关内容