Browse Source

vault backup: 2026-08-18 22:21:25

zhensolid 2 tuần trước cách đây
mục cha
commit
1d7c1feee5
1 tập tin đã thay đổi với 68 bổ sung0 xóa
  1. 68 0
      技术笔记/Obsidian双机同步与备份方案.md

+ 68 - 0
技术笔记/Obsidian双机同步与备份方案.md

@@ -0,0 +1,68 @@
+# Obsidian 双机同步与备份方案
+
+> 记录时间:2026-08-18
+> 适用范围:MacBook Air(本机,配置标准机)+ Mac mini(10.10.10.21)
+
+## 一、架构总览
+
+两台机器跑两套同步系统,并行不冲突:
+
+- **LiveSync** — 笔记实时同步,两台机器连同一个 CouchDB 数据库
+- **Git 备份** — 全库备份到 Gogs 私有仓库,两台机器各自独立自动提交
+
+## 二、LiveSync 配置
+
+- 两台机器使用**同一个 CouchDB 数据库**(配置文件 md5 完全一致)
+- 连接配置加密存储(配置名 legacy-couchdb,看不到明文地址)
+- 数据库名后缀:806fd73e7e83a3b0
+- 模式:实时同步(liveSync: true),后台常驻
+- 同步排除:`.git`、`node_modules`、`obsidian-livesync` 自身 → git 仓库不会被 LiveSync 动
+- E2E 加密:未开启
+- 冲突策略:新文件覆盖旧文件
+
+## 三、Git 备份配置
+
+- 服务器:princess(84.235.240.199)上的 Gogs,SSH 端口 **2222**
+- 仓库地址:`ssh://git@84.235.240.199:2222/zhensolid/obsidian`(master 分支)
+- 插件:obsidian-git,每 10 分钟自动 pull → commit → push
+- 提交信息格式:`vault backup: {{date}}`
+- Git 身份:zhensolid / zhensolid@vip.qq.com
+- Gogs 上的 SSH 密钥(2 把,均属 zhensolid 账号):
+  - `hermes-mac` → MacBook Air(2026-06-15 添加)
+  - `mac` → Mac mini(密钥注释 obsidian-vault-backup,2026-08-18 添加)
+
+## 四、原则
+
+- **以本机(MacBook Air)配置为准**,mini 对齐本机
+- LiveSync 管笔记内容,git 管全库备份,各机器独立、互不干扰
+
+## 五、已知坑(重要)
+
+1. 仓库地址**必须带 git@** —— 不带会用本机用户名去认证,直接 Permission denied
+2. 家宽到 Gogs 的国际链路慢(全量拉取几十 KB/s),日常增量同步无感
+3. git init / 插件重新初始化会清空 refs,恢复方法:
+   ```bash
+   git fetch origin
+   git reset --mixed origin/master
+   git branch --set-upstream-to=origin/master master
+   ```
+4. 对象缺失(fsck 报 missing)的快速修复:从另一台完整机器打 bundle 走局域网:
+   ```bash
+   # 完整机器上
+   git bundle create /tmp/full.bundle origin/master
+   # 传到损坏机器后
+   git bundle unbundle /tmp/full.bundle
+   ```
+5. 两台机器同时编辑同一笔记会冲突,先 pull 再写
+6. Mac mini 重置插件后恢复方式:`git checkout -- .`(以本机提交的版本为准,能恢复全部插件)
+
+## 六、2026-08-18 故障修复记录
+
+- **现象**:两机 git 仓库被重置(master 分支消失、1400+ 文件被当作新文件暂存)
+- **原因**:重置过程中 git init / 插件重新初始化(非 LiveSync,LiveSync 已排除 .git)
+- **修复过程**:
+  1. 确认 Gogs 服务器仓库完好(权威源)
+  2. MacBook Air:fetch 拉回历史 → reset 重建 master → 7 个丢失文件恢复(2 个对象直接从服务器提取)
+  3. Mac mini:续传 fetch → 接上 origin/master → 打 bundle 走局域网传回 MBA 补齐缺失对象
+  4. mini 上 `git checkout -- .` 对齐远端,恢复 13 个插件目录
+- **结果**:两机 git 仓库完整同步,LiveSync 同库同步,全部恢复正常