通达信公式备份与恢复要处理的不是一份文件,而是三处存放位置。它们的更新节奏不同、出问题时的影响范围也不同,只备份其中一处,会在需要的时候发现缺口正好落在没备份的那一处。
下面按三处存放位置、客户端自带的那份备份、备份该按什么节奏做、恢复时的前置动作与核对清单来写。文中目录名与文件名按通达信 PC 版的常见结构描述,不同版本与券商定制版对公式数据的组织方式存在差异。
一、要备份的其实是三个地方
自编公式在不同位置上留有记录,三处互不替代。
| 位置 | 存的是什么 | 丢了会怎样 |
|---|---|---|
| 安装目录下的公式数据文件 | 本机全部自编公式及其参数 | 管理器里的自编条目消失,内置公式不受影响 |
| 你自己导出过的公式文件 | 导出当下那几条公式的快照 | 只影响交付与留底,日常使用不受影响 |
| 云端账号侧的公式 | 同步到账号的公式记录 | 本机数据有备份也不影响,账号侧仍需单独处理 |
第二行容易被忽略的地方在于它覆盖的范围。导出的粒度是公式,你导出过哪几条,留底里就只有哪几条。想靠导出文件恢复整台机器的公式集合,前提是每条都导出过。日常按条导出的做法适合交付,不适合当恢复手段。
二、T0002 与 gs_bak 各自是什么
客户端安装目录下有一个 T0002 文件夹,自编公式的数据集中存放在其中,典型的数据文件名形如 PriGS.dat。这一个文件夹里装的除了公式,还有分组结构、自选分组之类的设置,把它们一起复制走,恢复之后连分组位置都回到原来的样子。
同目录下的 gs_bak 是客户端自己维护的备份位置,里面是公式数据的一份副本。它的生成时机由客户端决定,不在你的控制范围内。这意味着两件事:它可能不是最新的,也可能不是你动手之前那一刻的状态。
gs_bak 当成恢复手段的单一来源有风险。恢复动作取的是它里面现成的那份副本,副本的时间戳早于你的操作,回退之后这段时间内的改动都不在;副本的时间戳晚于你的操作,需要找的那条记录已经不在里面。想留一个确定的回退点,自己动手复制一次 T0002。三、备份周期按动作定,不按时间定
通达信公式备份与恢复的节奏,用「多久备份一次」来描述不好用,因为公式数据的变动不是均匀发生的。改成按动作触发,判断变得简单:凡是有可能改动公式数据的操作,动手之前先复制一次。
- 批量导入公式文件之前。一次导入可能顶掉若干条同名记录,复制一次的成本很低。
- 客户端大版本升级之前。升级过程会改写公式数据文件,升级后的兼容情况无法事先确定。
- 换机器或重装系统之前。这一次的复制同时兼顾备份与迁移两个用途。
- 批量清理与重命名之前。整理分组、删除用不到的条目,都属于不可逆动作。
复制动作本身有两处要注意。一是复制目标不要放在客户端的安装目录里,换机器或者重装时会被一起清掉;放在另一个磁盘或者外部存储上。二是命名带上日期与用途,例如在文件夹名里写明日期,取用时不会拿错版本。
已确认公式数据完全没有改动的时期,重复备份的意义有限。判断有没有改动的办法是看 T0002 里数据文件的时间戳,比打开管理器逐个核对条目省事。
四、恢复之前为什么要先退出客户端
恢复动作的本质是把一份副本放回原位,也就是覆盖当前的数据文件。客户端运行期间这些文件处于打开状态,操作系统不允许在文件被占用时整体替换。复制动作可能被拒绝,也可能只写进去一部分,得到一个两边内容都不完整的文件。
正确的顺序是:先退出客户端,确认进程列表里没有残留,再执行复制,完成后启动客户端检查结果。判断客户端是否真的退出了,看进程列表,不要只看窗口是否关闭。
复制之前还建议做一步:把当前的公式数据另外复制一份。恢复本身也是一次改动,操作失误时这一份就是下一步的退路。
五、备份与恢复的核对清单
把通达信公式备份与恢复固定成一套动作,按下面的顺序走。
- 确认本次操作属于会改动公式数据的那一类,确定需要备份。
- 退出客户端,确认进程已结束。
- 把
T0002整个文件夹复制到安装目录之外的位置,文件夹名带上日期。 - 记录一份清单:本机自编公式的条目数量,以及几个你会用到的公式名称。恢复之后靠它判断是否完整。
- 执行原本要做的那次操作。
- 操作完成后按清单核对条目数量与名称,确认没有异常减少。
恢复时把第 3 步换成反向操作:退出客户端,用副本覆盖当前目录,再启动核对。核对的重点是条目数量与分组结构两项,数值是否正确需要再挑两条挂到图上看一眼。
这条流程与导出、交付的关系,见 通达信公式安装与导入 一栏里关于目录结构与迁移的说明。整目录搬走与重建两种做法各自的适用场景,也在那一栏里。
云端账号侧的公式不适合用这套本地文件流程处理。它的记录不在 T0002 里,整目录复制带不走。需要保住的云端公式,能做的事是先在电脑端把它导出成本地文件,再纳入本地的备份目录。云端与本地两套记录之间同步异常的排查,见 报错与卡顿排查 一栏。
六、把备份落到日常动作里
知道该备份什么之后,剩下的问题是让它真的被执行。备份这件事的失败方式很单一:不是不会做,而是在需要之前没做。把它挂到具体动作上,比挂在时间表上有效。
第一件要做的是固定命名规则。文件夹名里带上日期与触发原因,例如在名称里写明这是哪一次操作之前的副本。恢复时看到的是一张有序的清单,不必逐个打开确认内容。
第二件是把复制动作写成可重复执行的形式。手动逐个文件复制容易漏,尤其是 T0002 里文件数量较多时。用一条复制整个文件夹的指令,或者写一个只做这件事的批处理文件,执行时只需确认目标路径正确。
第三件是定期抽查副本本身。复制动作显示成功,不代表副本可用:磁盘空间不足、目标路径无写入权限、文件被占用,都会让副本不完整。抽查的办法很直接,找一份较早的副本,在另一台机器上或者换一个目录恢复一次,看条目数量与分组结构是否与清单一致。没有做这一步,备份的有效性只是一个假设。
第四件是不要把副本留在客户端安装目录里。安装目录在重装、迁移或者卸载时会被整体处理,副本放在里面等于把退路与正文放在同一个地方。放在另一个磁盘、外部存储或者同步目录里,恢复时才取得到。
需要留的到底是哪一份记录?答案不在文件名上,而在你要退回的那个时间点上。把这个时间点定下来,通达信公式备份与恢复就不再是每次操作前临时决定的事。
文中目录名与文件名按通达信 PC 版的常见结构描述;不同版本与券商定制版对公式数据的组织方式、自带备份的生成时机与云端公式的存放位置存在差异,具体请以你所用客户端的实际界面与帮助文档为准。本文只讨论文件层面的备份与恢复机制,不构成任何投资建议。
