使用 Robocopy 进行文件服务器迁移

使用 Robocopy 进行文件服务器迁移

我计划将文件共享从 Windows Server 2003 迁移到 Server 2012 R2(它有超过 500 GB 的数据。仅供参考 - 它没有 DFS)。

我想使用以下命令将数据从源服务器复制到目标服务器:

robocopy "\\Source server\folder\" "\\Target server\folder\" /S /E /COPY:DATSOU /R:1 /W:10 /TEE /log:<log path.txt>

在切换期间,我计划再次运行相同的命令来复制任何新的/修改的文件。

上述命令是否存在问题?我是否需要添加“/XO”在切换过程中是否排除再次复制现有文件?

答案1

今年早些时候我遇到过同样的情况。回答你的问题,你的 Robocopy 命令应该不会有任何问题。我想分享一下我用来将文件服务器迁移到新的 Server 2012 R2 VM 的 Robocopy 命令。

注意:在新的 Windows Server 2012 R2 服务器上使用相同的驱动器号和完全相同的文件路径。否则将导致共享信息不匹配,迁移失败。

Robocopy 开关的详细信息:

 /e – Copy subdirectories, including empty ones
 /xj – Exclude junction points
/r:2 – 2 retries
/w:5 – 5 second wait between retries
  /v – Verbose output for skipped files
 /it – Include tweaked files (identical size/timestamp, but different attributes)
/purge – Delete destination files/directories that no longer exist in source
/copyall – Copy data, attributes, timestamps, security (ACLs), owner, auditing info

我从 Server 2012 R2 服务器运行了此命令。

ROBOCOPY /e /xj /r:2 /w:5 /v /it /purge /copyall \\Server2003FileServer\c$\Data c:\Data

然后,您可以从 2003 服务器导出文件共享信息,然后将共享信息导入 2012 R2 服务器。我使用了此处的知识库文章https://support.microsoft.com/en-us/kb/125996执行我的共享导出。

答案2

您提到的命令很好,几乎达到了您设定的目标。如果您确实想执行 1:1 迁移,我建议您考虑以下选项:

robocopy "\\Source server\folder\" "\\Target server\folder\" /MIR /COPY:DATSOU /ZB /R:1 /W:10 /TEE /log:<log path.txt>
  • /和平号空间站- 这将镜像目录树 - 源中存在的任何内容都将被复制到目标。源中不存在的任何内容都将从目标中移除(删除)。通过此选项,您将确保不会将任何旧数据(源中已移除的数据)迁移到新服务器。此选项相当于 /E 加 /PURGE。

  • /ZB- 使用可重启模式;如果访问被拒绝,则使用备份模式。 可重启模式- 使用此选项,如果在部分复制任何特定文件时中断复制,robocopy 的下一次执行可以从中断的地方继续,而不是重新复制整个文件。例如,当 robocopy 正在处理大型文件 (2 GB) 并中断时,10 秒后 (/宽:10)它将尝试再次复制它(/R:1),但将从结束的部分开始复制(而不是从头开始)。 备份模式- 与 robocopy 如何从源系统读取文件有关。它允许复制文件,否则您可能会在文件本身或尝试复制文件的属性/权限时收到拒绝访问错误。您需要在管理员环境中运行或拥有备份权限才能使用此标志。

您不需要包括/XO最终脚本中的选项 - robocopy 跳过旧的、未更新的文件。

相关内容