我能找到的唯一文档.backup
and .dump
是由.help
:
.backup ?DB? FILE Backup DB (default "main") to FILE
.dump ?TABLE? ... Dump the database in an SQL text format
If TABLE specified, only dump tables matching
LIKE pattern TABLE.
最大的问题是:这两个命令在复制/转储之前是否锁定数据库?备份是否一致?
这个答案 https://stackoverflow.com/a/25684912/662345有一些关于.backup
,但是有没有权威的文档呢? (那又怎么样.dump
?)我在 SQLite 文档中找到的唯一内容是“在线备份API https://sqlite.org/backup.html”,但我对 API 不感兴趣,我只想备份数据库。
The .dump
命令只是在事务内使用一堆 SELECT 语句读取整个数据库。此事务会自动锁定数据库以进行写入,但允许并发读取。
The .backup
命令不关心 SQL;它将数据库页面直接复制到新文件中。所有页面读取都通过正常机制来访问数据库文件,并包装在事务中。当使用多个sqlite3_backup_step()
调用时,事务将结束以允许其他连接访问数据库,但会检测到任何更改,在这种情况下,整个备份将自动重新启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)