正确的方法是什么? 我只复制.sq3文件吗?
如果网站上有用户,并且文件正在被复制时被写入,该怎么办?
Sqlite3命令行工具具有 点命令。
您可以通过以下方式连接到数据库:
sqlite3 my_database.sq3
并使用以下命令运行备份点命令:
.backup backup_file.sq3
除了与数据库的交互式连接之外,您还可以进行备份,然后使用
sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"
无论哪种方式,结果都是数据库 my_database.sq3的一个名为 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 命令相比,这是自动的,并且是增量的。
如果需要从备份进行恢复,那么数据将比例如每小时进行一次常规备份更新。