当另一个进程写入数据库时,sqlite.backup命令失败(错误:数据库已锁定)

当另一个进程写入数据库时,sqlite.backup命令失败(错误:数据库已锁定),sqlite,Sqlite,目标是在其他进程写入数据库时完成在线备份 我通过命令行连接到sqlite数据库,然后运行 .backup mydatabase.db 在备份过程中,另一个进程写入数据库,我立即收到消息 Error: database is locked 备份将消失(恢复为0大小) 在备份过程中,会有一个日志文件,尽管它不会变得很大。我检查了日志大小限制pragma是否设置为-1,我相信这意味着它是无限的。我的理解是,对数据库的写入应该在备份过程中记录到日志中,但可能我错了。一般来说,我对sqlite和数据库

目标是在其他进程写入数据库时完成在线备份

我通过命令行连接到sqlite数据库,然后运行

.backup mydatabase.db
在备份过程中,另一个进程写入数据库,我立即收到消息

Error: database is locked
备份将消失(恢复为0大小)

在备份过程中,会有一个日志文件,尽管它不会变得很大。我检查了日志大小限制pragma是否设置为-1,我相信这意味着它是无限的。我的理解是,对数据库的写入应该在备份过程中记录到日志中,但可能我错了。一般来说,我对sqlite和数据库都是新手


我这样做是错误的吗?

首先使用
.timeout 1000
(或其他毫秒数)?Shawn,这应该是一个答案,而不仅仅是一个注释!:)顺便说一句,完整的语法是:
sqlite3 source.db“。timeout 1000“。backup backup.db”