2.5. 备份与恢复数据

GnuCash会创建多种类型的文件,帮助你确保数据不会丢失。你如果查看保存的文件的所在文件夹,可能会看到由GnuCash生成的具有以下扩展名的其他文件:.gnucash.log.LCK.LNK。每种文件的作用如下:

注意

下文仅当你以XML格式保存时才适用:

      $ ls
      myfile.gnucash
      myfile.gnucash.20100414185747.gnucash
      myfile.gnucash.20100414223248.log
      myfile.gnucash.20100415114340.gnucash
      myfile.gnucash.20100415154508.log
      myfile.gnucash.20100415173322.gnucash
      myfile.gnucash.20100415194251.log
      myfile.gnucash.7f0982.12093.LNK
      myfile.gnucash.LCK
    

2.5.1. 备份文件(.gnucash

每当你保存数据文件时,一个扩展名为.YYYYMMDDHHMMSS.gnucash的备份副本也会保存。此备份文件是先前数据文件的完整副本,文件命名格式涉及数据文件名称、年、月、日和备份时间。例如,文件名myfile.gnucash.20100414185747.gnucash表明这是在2010年4月14日下午6:57:47保存的文件myfile的备份副本。

要恢复旧的备份文件,只需打开具有所需的日期的.YYYYMMDDHHMMSS.gnucash文件,再以不同的文件名保存此文件。

2.5.2. 日志文件(.log

每次在GnuCash中打开并编辑文件,GnuCash就会创建日志文件,记录对数据文件做出的修改。日志文件使用与备份文件相似的命名格式:.YYYYMMDDHHMMSS.log。日志文件不是对数据文件的完整备份,而只是简单地记录在当前GnuCash会话中对数据文件作出的修改。

在你无意之中退出GnuCash的情况下,可能是由于断电或操作系统崩溃,你可以使用日志文件恢复自最后一次保存GnuCash文件之后的大部分修改。过程如下:

  1. 打开最近一次保存的GnuCash文件。

  2. 点击文件导入重放 GnuCash .log 文件 ,选择一个与你刚才打开的文件日期相同的.log 文件。确保你选择了正确的 .log文件,否则可能会对你的科目数据造成巨大的损坏。

日志重放会恢复自最近一次保存后输入的任何影响科目余额的交易,包括由计划交易和企业功能(如开具发票、订单管理等)创建的交易。

警告

不会恢复对计划交易、开具发票或订单管理功能自身的修改,并且由之创建的交易在恢复后可能不会恰当地与之关联,因此需要二次检查。特别是对于企业交易,你可能需要删除并重新创建部分交易。如果不这样做,尽管科目余额可能正确,但一些报表可能不会正确显示。

2.5.3. 锁定文件(.LNK.LCK

你可能会偶然看到.LNK.LCK文件出现。它们不存储任何数据,仅用于防止多个用户在同一时刻打开同一个文件。这些文件是在打开文件时自动创建的,当关闭GnuCash会话或打开另一个文件时,GnuCash会删除.LNK.LCK文件以解锁前一个数据文件。

如果在你已经打开了数据文件时GnuCash崩溃了,.LCK.LNK文件不会被删除。在下一次尝试打开GnuCash时,会弹出警告消息提示文件已被锁定。之所以弹出警告消息是由于.LNK.LCK文件仍然存在于目录中。此时选择打开文件是安全的,但你应该删除.LCK文件。一旦文件被删除,将不会弹出警告消息,除非GnuCash再次崩溃。

2.5.4. 文件管理

所以到底应该保留哪个文件呢?当然是保留你的主数据文件。保留部分最近的.YYYYMMDDHHMMSS.gnucash备份文件也是妥当的做法,不过可以安全地删除.log文件,因为它们不是数据的完整副本。

你也应该在关闭GnuCash后删除任何.LCK.LNK文件 。如果你决定手动将数据文件备份到另一个磁盘,只备份主数据文件就足够了,无需处理.YYYYMMDDHHMMSS.gnucash备份文件。

注意

一般情况下GnuCash会自动删除任何30天以前的.log.YYYYMMDDHHMMSS.gnucash备份文件。可以在编辑首选项macOS 上的GnuCash首选项)中的通用选项卡下更改此行为。