Obsidian双机同步与备份方案.md 3.1 KB

Obsidian 双机同步与备份方案

记录时间:2026-08-18 适用范围:MacBook Air(本机,配置标准机)+ Mac mini(10.10.10.21)

一、架构总览

两台机器跑两套同步系统,并行不冲突:

  • LiveSync — 笔记实时同步,两台机器连同一个 CouchDB 数据库
  • Git 备份 — 全库备份到 Gogs 私有仓库,两台机器各自独立自动提交

二、LiveSync 配置

  • 两台机器使用同一个 CouchDB 数据库(配置文件 md5 完全一致)
  • 连接配置加密存储(配置名 legacy-couchdb,看不到明文地址)
  • 数据库名后缀:806fd73e7e
  • 模式:实时同步(liveSync: true),后台常驻
  • 同步排除:.gitnode_modulesobsidian-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,恢复方法:

    git fetch origin
    git reset --mixed origin/master
    git branch --set-upstream-to=origin/master master
    
  4. 对象缺失(fsck 报 missing)的快速修复:从另一台完整机器打 bundle 走局域网:

    # 完整机器上
    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 同库同步,全部恢复正常