关于思源笔记使用第三方同步盘可能造成数据损坏的问题

本贴最后更新于 932 天前,其中的信息可能已经时移世改

第三方同步盘可能造成数据损坏

先说结论:目前因为使用同步盘带来的数据损坏问题是无法彻底解决的。

原因:同步盘在同步时会锁定文件,此时思源就无法写入文件。加上一些不确定的原因(比如同步盘自身卡顿、网络质量不好等)会导致锁定文件时长不确定,思源只能在很短的时间内(300-400 毫秒)尝试重新写入(如果重试时间过长,还会带来其他问题),这时如果文件还是被同步盘锁定,则只能在旁边生成临时文件以备手动恢复。

这个问题要彻底解决只能由思源来锁定文件,但这样的结果就是同步盘无法同步文件,失去了使用第三方同步盘的意义。

一个折中方案

我们目前采取了一个折中的方案:有数据写入后思源锁定一段时间,如果没有继续数据变更则自动解锁。解锁以后同步盘就可以同步了,但是这个期间内如果发生数据变更,就依然还是会面临上面提到的问题。所以这个方案只是降低了问题发生的概率,并不能彻底解决问题。

使用建议

  • 请勿使用第三方同步盘进行实时同步。思源内核启动之前同步好数据,暂停同步以后再启动思源,使用结束后关闭思源内核,最后再打开同步盘同步数据。虽然麻烦,但是可靠……
  • 请勿同时使用第三方同步盘和思源官方同步,鱼肉和熊掌只能二选一……
  • 定期备份数据,安全第一

大家如果有更好的思路欢迎随时讨论。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18129 引用 • 66875 回帖
1 操作
88250 在 2021-09-07 23:31:49 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 用 git 同步,也是 conf 文件搞事

  • 其他回帖
  • luyeok 1

    分项一个我的同步思路:

    1. 使用 cryptomator 创建 sync_data 加密同步文件夹;
    2. 设置思源工作空间目录为:C:\Users\Username\Documents\SiYuan
    3. 把工作空间目录中的文档文件夹(data)移动到 Cryptomator 加密同步的 sync_data 文件夹,同时删除工作空间目录的文档文件夹(data);
    4. 在工作空间目录中建立 sync data 的软连接
      mklink /d c:\user\username\documents\siyuan\data z:\sync_data

    注:

    1. 之前把整个工作空间目录直接放到网盘同步,经常会造成冲突,且冲突的主要是 conf 文档。
    2. 以上方法在使用中,目前尚未发现数据冲突的情况。稳定性还是不错的。
    1 回复
  • 88250

    嗯,桌面端启动以后正常使用时内核进程(SiYuan Kernel)是开启的,如果在设置 - 外观中取消勾选这一项,那么关闭界面后内核就不会退出:

    image.png

  • millionmile 2 赞同

    分享下个人使用 git 同步的 bat 脚本(win 用户使用)

    :: 跳转到思源笔记的工作空间中
    D: & cd D:\workspace\siyuan_workspace
    
    tasklist |findstr /im "SiYuan"
    if %errorlevel% == 0 (goto opened) else (goto closed)
    
    :: ------------------如果思源笔记软件已开启--------------------
    :opened
    
    :: 必须软关闭思源笔记软件,等待3秒后,才能够正常提交
    taskkill /im "SiYuan.exe"
    timeout /T 3
    
    :: 提交git,只提交data目录,其他目录不提交
    :: gitignore文件中已提前忽略  /data/.siyuan
    git add data/.
    git commit -m %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
    git push
    
    :: 重启思源笔记软件
    start D:/soft/SiYuan/SiYuan.exe
    exit
    
    :: ------------------如果思源笔记软件没有开启------------------
    :closed
    
    :: 提交git,只提交data目录,其他目录不提交
    git add data/.
    git commit -m %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
    git push
    exit
    
  • 查看全部回帖