2014-09-04 90 views
0

我想重命名數據庫文件。這些任務似乎很簡單。事務重命名數據庫文件.db和db-journal加數據庫共享

1)我關閉數據庫2)重命名.db文件3)重命名.db的-日誌文件4)我打開數據庫

但是會發生什麼,如果前。在步驟2之後和步驟3之前系統會崩潰(我知道可能性很低,但是......)?我注意到,根據Android版本有時在關閉數據庫後.db-journal文件有0大小(例如android 4.0.4),但有時它是相當巨大的(例如.db文件大小的50%)(例如,android 4.2.2)。如果大小爲0,那麼我確信沒有問題(在提到的場景中丟失.db文件可能不會導致任何丟失的數據)。但是當.db-jurnal文件非常龐大時,是否意味着打開.db文件而沒有.db-journal(它會有舊名稱)會導致任何數據丟失?

是否有任何方法可以在一個「事務」中重命名兩個文件(兩者都不是重命名)?

如果我想共享我的數據庫(例如,我想通過電子郵件發送給我的朋友),該怎麼辦?是必須發送兩個文件.db和.db-journal或只發送.db文件就夠了嗎?

+0

該雜誌是唯一的事務/提交。將.db文件發送給你的朋友就足夠了。至於重命名數據庫,讓我們看看是否有任何答案。 – danny117 2014-09-04 21:41:57

回答

1

回滾日誌文件包含需要回滾事務的信息。

如果應用程序在事務處於活動狀態時崩潰,則數據庫將在下次打開數據庫時自動執行回滾。

如果您打開了一個數據庫(並且可能再次關閉它),並且沒有活動的事務,並且您的應用程序沒有崩潰並且仍在運行,那麼您知道數據庫文件處於一致狀態,您可以忽略日誌文件。 (如果journal mode設置爲刪除,不會有-journal文件即可。)

(注:WAL mode,你不能忽略-wal文件。)

+0

我設置日記模式刪除,但db-journal文件仍然存在(雖然在android 4.0.4中的大小等於零,不知道4.2.2我會稍後檢查)。 – user2707175 2014-09-05 21:54:12