GoodSync 中文文档 下载 App

锁定文件复制——如何同步被占用的文件

什么是「锁定文件」问题

在 Windows 上,当一个文件被其他程序打开时(如 Outlook 的 .pst 文件、SQL Server 的数据库文件、Word 正在编辑的文档),操作系统会给文件加上「排他锁」。其他程序此时尝试读取或复制这个文件,会收到「Access Denied」或「文件正在使用」的错误。

普通文件复制工具在遇到锁定文件时会跳过并报错。这导致一个严重的问题——最需要备份的数据恰恰是那些正在被使用的文件,如果复制不了,备份就白做了。

GoodSync 的解决方案:卷影复制服务(VSS)

GoodSync 在 Windows 上利用 Microsoft 的卷影复制服务(Volume Shadow Copy Service, VSS)来解决这个问题。VSS 的原理是:

  1. 请求操作系统为目标卷创建一个时间点快照(Shadow Copy)
  2. 快照创建后,文件系统状态被冻结在创建那一刻
  3. 所有文件(包括当时被锁定的)在快照中都表现为「正常可读取」
  4. GoodSync 从快照中读取文件内容,复制到目标位置
  5. 复制完成后,删除快照

这个过程对用户完全透明——你在 GoodSync 界面上看不到快照的创建和销毁,只看到同步正常进行。

VSS 的前提条件

VSS 技术在以下条件下可用:

在 GoodSync 中的配置

VSS 相关选项位于作业 Options → Advanced 标签:

选项说明建议
Copy Locked Files开启锁定文件复制开启(默认)
Do Not Copy Locked Files跳过锁定文件关闭,除非遇到兼容性问题
Safe Copy安全复制模式开启(先复制到临时文件,确认完整后再替换目标)

Safe Copy 的作用:即使复制过程中断,目标端也不会出现损坏的不完整文件——GoodSync 先把新文件复制到 .tmp 临时文件中,确认 MD5 校验通过后再把目标文件重命名为临时文件,然后把临时文件重命名为正式文件名。如果断电或崩溃,目标端要么是旧文件(安全),要么是新文件(校验过),不会是半拉子文件。

Linux 和 macOS 上的对应方案

VSS 是 Windows 独有的技术。在其他平台上,GoodSync 使用平台各自的替代方案:

Linux

macOS

常见的 VSS 问题

快照创建失败

如果 GoodSync 报「VSS snapshot creation failed」:

  1. 检查 Volume Shadow Copy 服务是否运行:services.msc → 找到「Volume Shadow Copy」 → 启动
  2. 检查目标卷是否有足够空间(至少 100MB)
  3. 检查磁盘是否有错误:chkdsk X: /f(X: 是目标盘符)
  4. 某些磁盘加密软件(如 BitLocker)可能干扰 VSS,确保加密状态正常

快照过期导致复制中断

VSS 快照有默认的存活时间(Windows 通常是 24 小时)。如果同步大量文件耗时过长,快照可能过期。GoodSync 处理这种情况的方式是——快照过期时重新创建并从断点继续。

Safe Copy 与云存储的兼容性

Safe Copy 需要目标端支持「先写临时文件再重命名」的操作序列。某些云存储(特别是 S3)的对象存储模型不支持重命名。GoodSync 会根据目标端点类型自动调整 Safe Copy 行为——S3 端点会直接写入新对象并覆盖旧对象。