Robocopy進行大量遷移

2022-06-23 17:27:16 字數 2006 閱讀 8095

建議使用 windows server 2012 r2 或 windows server 2012 隨附的 robocopy.exe 版本。

即然官方建議我們用2012或2012r2所帶的robocopy,所以選它來做這次遷移的工具!

我現在需要的將一台2008r2伺服器上,近2t的資料遷移到一台全新的2012r2機器上,依之前的測試,在1g 的網路環境中,平均遷移速度可以達到每分鐘3g 左右,最高可以到達4g,所以,估計完成這次遷移大約需要8-12小時,剛才可以利用週末晚上完遷移!

確定好時間,通知使用者後,開始進行!

首先,為確保遷移過程中,不會有檔案更新、寫入,需將2008r2舊檔案伺服器上需要遷移的共享目錄中的共享許可權設定為唯讀

切換到2012r2新檔案伺服器,進到命令提示下,可以用robocopy /? 檢視詳細引數,有興趣的可以每個引數去仔細研究!如下圖:

常用引數:

源 :: 源目錄(驅動器:\路徑或\\伺服器\共享\路徑)。

目標 :: 目標目錄(驅動器:\路徑或\\伺服器\共享\路徑)。

/s :: 複製子目錄,但不複製空的子目錄。

/e :: 複製子目錄,包括空的子目錄。

/copy:複製標記:: 要複製的檔案內容(預設為 /copy:dat)。

(複製標記: d=資料,a=屬性,t=時間戳)。

(s=安全=ntfs acl,o=所有者資訊,u=審核資訊)。

/sec :: 複製具有安全性的檔案(等同於 /copy:dats)

/copyall :: 複製所有檔案資訊(等同於 /copy:datsou)

/mt[:n] :: 使用 n 個執行緒進行多執行緒複製(預設值為 8)

n 必須至少為 1,但不得大於 128。

該選項與 /ipg 和 /efsraw 選項不相容。

使用 /log 選項重定向輸出以便獲得最佳效能。

/r:n :: 失敗副本的重試次數: 預設為 1 百萬。

在本次遷移中,因為完全需要檔案伺服器,包換所有檔案、目錄、許可權等,所以使用如下參考:

robocopy \\2008r2\e$\share e:\share /e /copyall /mt:20 /r:3 /log:e:\log\share.log

\\2008r2\e$\share源目錄,即舊2008r2伺服器上的目錄,也可以直接使用共享,

e:\share目標目錄,即新的2012r2伺服器上的目錄。

/e複製子目錄,包括空的子目錄。

/copyall複製所有檔案資訊(包括資料、屬性、時間戳、安全、所有者、審核資訊等)

/mt:20使用 20 個執行緒進行多執行緒複製

/r:3失敗副本的重試3次數,由於 預設為 1 百萬,如果碰到無法複製的檔案,複試1百萬次的話,估計得幾天時間,所以建議修改

/log:e:\log\share.log將複製結果記錄到日誌檔案,以便檢視錯誤或是失敗的資訊

以上命令後,就是慢長的等待了!

結束後,開啟log檔案,可以看到所有複製的檔案目錄、大小等資訊:

最後會有彙總,總共檔案、目錄數量、大小、時間等資訊!

用以上方法,完成另個幾個共享目錄的複製,然後再停用舊伺服器上的共享、啟用新伺服器上的共享,總共2tb,總共用時約8小時!

利用佇列, 進行大量檔案批處理

依然以關於批量轉換成webp格式為例,所有的都在本地的upload資料夾 原理 採用佇列而不是遞迴來批量處理檔案,對記憶體的占用要小很多,處理了28429個,不會提示記憶體超出 主要看開頭和結尾的陣列和目錄的關係 set time limit 0 0表示不限時 ini set gd.jpeg ign...

ceph更換磁碟不改變引起大量資料遷移

新更換後的磁碟,需滿足如下要求 根本是為了保持pg分布情況不變,避免其他無關osd上的pg重新計算分布 3.1 初始化配置檔案 root node0 cat etc ceph init.conf global osd journal size 30720 30gb,根據實際情況調整3.2 磁碟分割槽...

方法中大量if判斷,利用列舉進行優化

在乙個方法類中有大量if語句判斷,有沒有大佬幫忙看看,怎麼用列舉的方式進行優化 public locatedatasourceeventhandler sourcelist string requestid,string reportname if reportname.contains wb zt...