Ответ 1
Такие файлы -journal
не должны (и не должны) быть распределены.
Это связано с тем, что различные файлы журналов представляют временные данные (ссылка SQLite Использование временных файлов Disk), используемых SQLite. В частности, файл -journal
- это журнал отката.
Журнал отката является временным файлом, используемым для реализации возможностей атомной фиксации и отката в SQLite. (Подробное обсуждение того, как это работает, см. В отдельном документе под названием Atomic Commit In SQLite.) Журнал отката всегда находится в том же каталоге, что и файл базы данных, и имеет то же имя, что и файл базы данных, за исключением 8 символов "-journal" прилагается.
Журнал отката обычно создается, когда транзакция сначала запускается и обычно удаляется, когда транзакция совершает или откатывается. Файл журнала отката необходим для реализации возможностей атомной фиксации и отката SQLite. Без журнала отката SQLite не сможет откатить неполную транзакцию, и если в середине транзакции произошел сбой или потеря мощности, вся база данных, скорее всего, будет повреждена без журнала отката.
В общем, эти файлы -journal
должны существовать только тогда, когда есть открытая база данных SQLite - или, скорее, работающая транзакция, - но ее можно контролировать с помощью PRAGMA journal_mode. С настройками pragma по умолчанию файлы -journal
будут удалены.
Режим ведения журнала DELETE - это нормальное поведение. В режиме DELETE журнал отката удаляется по завершении каждой транзакции. Действительно, операция удаления - это действие, которое заставляет транзакцию совершать транзакции.
Обязательно копируйте фактические файлы базы данных, когда база данных не открыта, и все журналы были удалены (или очищены) самим SQLite; это означает, что все транзакции завершены, и база данных находится в согласованном состоянии.