正确的方法是什么?我只是复制.sq3文件吗?如果站点上有用户,并且文件在复制时正在写入,该怎么办?
jaql4c8m1#
sqlite3命令行工具具有.backup dot命令。您可以使用以下命令连接到数据库:
.backup
sqlite3 my_database.sq3
并运行backup dot命令,其中包含:
.backup backup_file.sq3
除了与数据库建立交互式连接之外,您还可以使用执行备份并在以后关闭连接
sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"
无论哪种方式,结果都是数据库my_database.sq3的名为backup_file.sq3的副本。它与常规的文件复制不同,因为它会照顾到当前在数据库上工作的所有用户。数据库上设置了适当的锁,所以备份是独占进行的。
my_database.sq3
backup_file.sq3
8iwquhpp2#
.backup是最好的方法:
sqlite3 my_database ".backup my_database.back"
你也可以尝试.dump命令,它可以让你将整个数据库或表转储到一个文本文件中。如果指定了TABLE,则只转储匹配LIKE模式TABLE的表。
.dump
sqlite3 my_database .dump > my_database.back
使用转储和存储来制作归档副本的好方法,请稍后重建数据库。
sqlite3 my_database .dump | gzip -c > my_database.dump.gz zcat my_database.dump.gz | sqlite3 my_database
同时选中此问题Do the SQLite3 .backup and .dump commands lock the database?
svujldwt3#
对于SQLite的流式复制,请查看Litestream。与使用sqlite3-backup命令相比,这是自动的,而且是增量的。如果您需要从备份中恢复,则数据将比每小时进行一次定期备份时更新很多。
2j4z5cfb4#
简单明了的答案是
sqlite3 m_database.sq3 ".backup m_database.sq3.bak"
4条答案
按热度按时间jaql4c8m1#
sqlite3命令行工具具有
.backup
dot命令。您可以使用以下命令连接到数据库:
并运行backup dot命令,其中包含:
除了与数据库建立交互式连接之外,您还可以使用执行备份并在以后关闭连接
无论哪种方式,结果都是数据库
my_database.sq3
的名为backup_file.sq3
的副本。它与常规的文件复制不同,因为它会照顾到当前在数据库上工作的所有用户。数据库上设置了适当的锁,所以备份是独占进行的。
8iwquhpp2#
.backup
是最好的方法:你也可以尝试
.dump
命令,它可以让你将整个数据库或表转储到一个文本文件中。如果指定了TABLE,则只转储匹配LIKE模式TABLE的表。使用转储和存储来制作归档副本的好方法,请稍后重建数据库。
同时选中此问题Do the SQLite3 .backup and .dump commands lock the database?
svujldwt3#
对于SQLite的流式复制,请查看Litestream。
与使用sqlite3-backup命令相比,这是自动的,而且是增量的。
如果您需要从备份中恢复,则数据将比每小时进行一次定期备份时更新很多。
2j4z5cfb4#
简单明了的答案是
sqlite3 m_database.sq3 ".backup m_database.sq3.bak"