第33章 Stash 数据库备份与恢复指南
第33章 备份与恢复数据库
备份¶
备份数据库时,请务必使用 Stash 的界面操作。切勿在 Stash 运行期间手动复制数据库文件。
Stash 使用处于 WAL(预写日志)模式的 SQLite 数据库。除了主文件 stash-go.sqlite 外,可能还存在 -shm 和 -wal 文件。这些文件在停止 Stash 后可能仍保留。因此,切勿通过手动复制数据库文件的方式进行备份。
WAL 模式 有关 SQLite 中 WAL 模式的更多信息,请参见此处。
执行“备份”任务是创建备份文件的正确方式。
前往 设置 > 系统。 在“应用路径”标题下,向下滚动至“备份目录路径”。 设置用于存储备份文件的目录。 前往 设置 > 任务。 在“备份”标题下,找到“备份”任务。 选择“备份…”任务。 选择目标和方式: 到备份目录:这将把备份文件保存至第 3 步中设置的目录。 下载备份文件:这将提示您直接下载备份文件到电脑。
您可以通过勾选“在备份中包含 blobs”选项,可选地在备份中包含 blobs。这会将二进制数据包含在备份文件中,如果您希望使用单个文件进行备份和恢复,这将非常有用。但请注意,这会增大备份文件的体积,并可能增加创建备份所需的时间。 点击“备份”以开始备份过程。
恢复¶
假设您已正确创建了备份文件,如有需要,可以使用该文件恢复数据库。
提示 恢复过程默认使用 stash-go.sqlite 文件名。如果您在配置 Stash 时更改了该名称,请相应调整。
恢复数据库文件时,建议执行以下步骤:
前往 设置 > 系统,向下滚动至“数据库”标题,检查数据库路径位置。 检查“二进制数据存储类型”的设置。 如果设置为“文件系统”,请在下方查找“二进制数据路径”,并将备份的 blobs 移至该位置。如果设置为“数据库”或备份中已包含 blobs,请跳过此步骤。 为当前数据库创建一份备份(可选)。 停止 Stash。 在文件浏览器中,前往数据库路径所在位置。 移动或删除 stash-go.sqlite 数据库文件(如果存在 -shm、-wal 和 .journal 文件,请一并移动或删除)。 将需要恢复的备份文件复制为 stash-go.sqlite。 确保当前只有 stash-go.sqlite 文件,且不存在 -shm、-wal 或 .journal 文件。 启动 Stash。
现在,Stash 应已运行,且数据库恢复成功。
高级故障排查¶
如果在升级或备份过程中出现“数据库格式错误”消息,这通常意味着数据库已损坏。解决此问题的一种方法是执行完整导出并检查错误日志。如果错误不多,您可以尝试执行完整导入,以最小损失恢复一个可用的数据库。由于完整导入具有破坏性,请务必谨慎操作。
对于此类情况,最好寻求支持团队帮助。