备份¶
你的记忆数据库是一个单独的 SQLite 文件:~/.claude-mem/claude-mem.db。
开启备份后,工作进程会按计划对其进行一致性快照
(默认每 24 小时一次),并在 ~/.claude-mem/backups/auto/ 下保留最新的 7 份。
快照会留在你的机器上。
会话运行期间拍摄快照是安全的:工作进程通过只读连接使用 SQLite 的 VACUUM INTO,
写出一个经过压缩、内容一致的副本,而不会暂停任何操作。
每份快照都是一个独立的数据库文件,在被保留前会通过 PRAGMA quick_check 检查。
Note
云同步和备份解决的是不同的问题。云同步在你工作时会将单条记忆复制到你的各个设备上。 备份是整个数据库的快照,你可以回滚到这些快照。
启用快照¶
在 Claude Code 中运行该技能:
或者在查看器中开启(设置 → 备份 → 自动快照),
保存,然后重启工作进程。或者编辑 ~/.claude-mem/settings.json:
{
"CLAUDE_MEM_BACKUP_ENABLED": "true",
"CLAUDE_MEM_BACKUP_INTERVAL_HOURS": "24",
"CLAUDE_MEM_BACKUP_RETAIN_COUNT": "7"
}
重启工作进程后,大约五分钟后会拍摄第一份快照。
npx claude-mem backup status # last snapshot, count, errors, last restore
npx claude-mem backup run # take a snapshot now
npx claude-mem backup list # snapshots on disk
当备份已开启但最新快照早于两个间隔时,npx claude-mem doctor 也会发出警告。
恢复¶
restore 会暂存快照并重启工作进程。新的工作进程在打开数据库之前会先将其替换,
并将被替换的数据库以 claude-mem-<timestamp>-pre-restore.db 的名称保存在同一文件夹下。
要撤销恢复,请恢复该文件。它和任何快照一样计入保留数量,因此如果你想保留更久,
请将它复制到别处。backup status 会输出结果。如果替换未能执行
(例如,另一个进程仍打开着该数据库),它会说明原因,并且工作进程继续使用原有的数据库。
该替换是崩溃安全的:在每一步中,磁盘上的数据库要么是旧的, 要么是已恢复的,且每一份都是完整的。恢复后写入的新记忆 绝不会复用被替换数据库中已有的 id。
Note
开启云同步后,恢复的数据库会从快照中保存的位置继续同步, 因此它可能会把快照之后才到达云端的更改拉回来。恢复用于修复 受损或丢失的本地数据库,而不是用于撤销已同步的更改。
设置¶
| 键 | 默认值 | 含义 |
|---|---|---|
CLAUDE_MEM_BACKUP_ENABLED |
'false' |
开启快照计划。 |
CLAUDE_MEM_BACKUP_INTERVAL_HOURS |
'24' |
快照之间的间隔小时数(1 到 168)。 |
CLAUDE_MEM_BACKUP_RETAIN_COUNT |
'7' |
在删除最旧快照之前保留的快照数量(1 到 100)。 |
常见问题¶
我的备份文件在哪里?
在 ~/.claude-mem/backups/auto/ 中,文件名为 claude-mem-<timestamp>.db。
每一份都是一个完整的 SQLite 数据库,你可以用任何 SQLite 工具打开。
快照是否包含向量搜索索引? 不包含。SQLite 数据库是事实来源;向量索引由它派生而来。
这会占用多少磁盘空间?
大约是你的数据库大小乘以保留数量。VACUUM INTO 会压缩每份快照,
因此它通常略小于当前使用的数据库。当可用磁盘低于数据库大小 1.2 倍加 100 MiB 时,
工作进程会跳过快照,并将其报告为最后一次错误。
备份会拖慢我的会话吗? 不会。快照在后台工作进程的只读连接上运行。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem