ddo*_*arr 24 sqlite android journal
在我的andoid应用程序的数据库目录(/data/data/com.me.myApp/databases)中,对于我创建的每个sqlite数据库,都有一个相同名称的相应数据库,并在其名称后附加了"-journal".
例如:myDatabase,myDatabase-journal,myOtherDatabase.db,myOtherDatabase.db-journal
这是什么?
和,
如果我为我的应用程序提供预填充数据库(根据:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/)我是否需要包括这些也是?"
use*_*740 23
这些-journal文件并不需要(也应该不)进行分配.
这是因为各种日志文件代表SQLite使用的临时数据(参考SQLite的临时磁盘文件的使用).特别是-journal文件是回滚日志.
回滚日志是一个临时文件,用于在SQLite中实现原子提交和回滚功能.(有关其工作原理的详细讨论,请参阅标题为"在SQLite中的原子提交"的单独文档.)回滚日志始终与数据库文件位于同一目录中,并且与数据库文件具有相同的名称,除了8个字符" -journal"追加.
回滚日志通常在首次启动事务时创建,通常在事务提交或回滚时删除.回滚日志文件对于实现SQLite的原子提交和回滚功能至关重要.如果没有回滚日志,SQLite将无法回滚未完成的事务,如果在事务中间发生崩溃或断电,整个数据库可能会在没有回滚日志的情况下损坏.
通常,这些-journal文件应仅在存在打开的SQLite数据库时存在 - 或者更确切地说,是一个正在运行的事务 - 但可以通过PRAGMA journal_mode进行控制.使用默认的pragma设置,-journal文件将被删除.
DELETE日记模式是正常行为.在DELETE模式下,在每个事务结束时删除回滚日志.实际上,删除操作是导致事务提交的操作.
当数据库未打开且所有日志已被SQLite本身删除(或清除)时,请确保仅复制实际的数据库文件; 这意味着所有事务都已完成且数据库处于一致状态.