我试图使用 robocopy 将大型数据库备份文件(每个大约 2TB)复制到不同的区域。但是我注意到使用开关/Z时速度非常慢。所以我删除了这个开关,我的副本现在更快了。但现在的挑战是,
- 如何验证复制文件的一致性。
- 如果文件已经存在于目标位置,那么跳过文件的最佳方法是什么。
- 我曾尝试使用 powershell get-filehash 命令来验证文件的一致性,但它在大文件上速度太慢,尤其是在位于不同区域的文件上。
我当前的命令语法,
robocopy source_directory destination_directory 文件名 /R:3 /W:10 /LOG+:log_file_location
有什么最好的方法来解决这个问题?
SQL Server 有一个非常方便的命令,可以检查标头、校验和(如果存在)以及备份集是否完整。如果存在校验和但是可选的,则将执行数据完整性检查。从这里的文档
我想到了两种验证一致性的方法:
dbcc checkdb
,以不同程度的细节(该RESTORE VERIFYONLY
方法可能对您来说足够,也可能不够)robocopy
您可以使用的镜像功能跳过重新复制文件。我使用以下内容将我的备份复制到另一个位置,抑制所有输出:目标上已经存在的文件不会被重新复制,目录结构将保持不变。