如何备份 sqlite 数据库?

正确的方法是什么? 我只复制.sq3文件吗?

如果网站上有用户,并且文件正在被复制时被写入,该怎么办?

89975 次浏览

Sqlite3命令行工具具有 点命令

您可以通过以下方式连接到数据库:

sqlite3 my_database.sq3

并使用以下命令运行备份点命令:

.backup backup_file.sq3

除了与数据库的交互式连接之外,您还可以进行备份,然后使用

sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"

无论哪种方式,结果都是数据库 my_database.sq3的一个名为 backup_file.sq3的副本。

它不同于常规的文件复制,因为它可以处理当前使用数据库的任何用户。数据库上设置了适当的锁,因此只能进行备份。

。备份是最好的方式。

sqlite3 my_database .backup my_database.back

你也可以试试。命令,它使您能够将整个数据库或表转储到一个文本文件中。如果指定了 TABLE,则只转储与 LIKE 模式 TABLE 匹配的表。

sqlite3 my_database .dump > my_database.back

使用 dump 和 store 进行归档复制的一个好方法是,稍后再重构数据库。

sqlite3 my_database .dump | gzip -c > my_database.dump.gz
zcat my_database.dump.gz | sqlite3 my_database

也检查这个问题 SQLite3.backup 和.dump 命令是否锁定数据库?

简短的回答是

sqlite3 m_database.sq3 ".backup m_database.sq3.bak"

有关 SQLite 的流式复制,请查看 Litestream

与使用 sqlite3-backup 命令相比,这是自动的,并且是增量的。

如果需要从备份进行恢复,那么数据将比例如每小时进行一次常规备份更新。