关机/硬崩溃后如何解锁sqlite3 DB?
How to unlock sqlite3 DB after a power off / hard crash?
OSX.
上的 sqlite 3.8.5
我有一个 Ruby 程序在断电时将行插入到 sqlite3 数据库中。该目录现在有数据库、日志和一个锁文件。当我使用控制台访问数据库时,所有命令都被 "error: database is locked" 拒绝,所以我无法访问它。
根据我所有的谷歌搜索,下次数据库被 sqlite3 进程打开时,日志应该被重播或回滚。然而,这显然没有发生(日志大小没有改变,锁文件仍然存在)。
我怎样才能取回这个数据库?
当您将 SQLite 配置为使用点文件锁定(而不是默认的 POSIX 建议锁)时,OS 无法自动清除锁,因为锁OS.
文件看起来像普通文件
如果您确定创建锁的应用程序不再是运行,只需删除锁文件即可。
(切勿手动删除日志文件。)
OSX.
上的 sqlite 3.8.5我有一个 Ruby 程序在断电时将行插入到 sqlite3 数据库中。该目录现在有数据库、日志和一个锁文件。当我使用控制台访问数据库时,所有命令都被 "error: database is locked" 拒绝,所以我无法访问它。
根据我所有的谷歌搜索,下次数据库被 sqlite3 进程打开时,日志应该被重播或回滚。然而,这显然没有发生(日志大小没有改变,锁文件仍然存在)。
我怎样才能取回这个数据库?
当您将 SQLite 配置为使用点文件锁定(而不是默认的 POSIX 建议锁)时,OS 无法自动清除锁,因为锁OS.
文件看起来像普通文件如果您确定创建锁的应用程序不再是运行,只需删除锁文件即可。
(切勿手动删除日志文件。)