商品レビューまとめ記事

robocopyでデータ移行する上で絶対に知っておきたい11つのこと

本記事対象
robocopyでデータ移行する上で絶対に知っておきたいについて知りたい方

ども。あいしんくいっと(@ithinkitnet)です。

ithinkit

robocopyでデータ移行するのに知っておきたいことって何だろう・・・?

Windowsでデータ移行するなら必要不可欠なrobocopy。ファイルサーバーの移行でも威力を発揮します。
Windowsのデータ移行、ファイル共有からのrobocopyで楽々解決!

便利な差分コピーツールであるrobocopyを利用する上で知っておきたいことについて書いておきたいと思います。

robocopyでデータ移行するなら絶対に知っておきたい11つのこと

コピー元のデータは極略減らす

当たり前だけど一番大事。すごく大事!

  • データコピー元となるデータは可能な限り減らしましょう!

ただ減らすのは簡単ではないでしょうけどw
削った分だけ移行時間が短縮出来るのでめちゃ頑張りましょう!

コピー元のファイル数、容量は控えておく

rootcopy対象となるフォルダはエクスプローラのプロパティでファイル数、容量は控えておきましょう。

更新されるとズレますが、大体の目安にはなります。

robocopyはスペックの良いほうのサーバーで実行

robocopyはコピー元、コピー先のどちらでも実行可能ですが、スペックの良いサーバーで実行するとパフォーマンス向上に期待が出来ます。

例えば、旧サーバから新サーバへrobocopyする場合、新サーバのほうがスペックが良いのであれば、新サーバ側でrobocopyを実行させましょう!

ithinkit

robocopyはスペックの良いほうのサーバーで実行を!

2016以降なら「MT」で爆速!?

WindowsServer2016以降なら「MT」オプションが使えます。
MTはマルチスレッド対応オプションなので、CPUがマルチコアの場合に有効。

ちなみにデフォルトだとMT:8なので、8コアないと速度アップは期待出来ないです。
CPUコア数に合わせて2コアならMT:2、4コアならMT:4と適切に指定しましょう。

マルチコア環境の場合、マルチスレッドオプションを使うと、コピー速度アップが期待出来るので活用しましょう。

MTオプション実行例 ~ robocopyログ抜粋 ~

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー                              
-------------------------------------------------------------------------------

  開始: 2020年1月17日 22:58:42
   コピー元 : D:\backup\
     コピー先 : \\192.168.11.100\D$\backup\

    ファイル: *.*
        
  オプション: *.* /S /E /COPYALL /PURGE /MIR /B /MT:2 /R:1 /W:1

------------------------------------------------------------------------------

~ robocopyログ抜粋(終わり) ~
Point
MTオプション自体はWindowsServer2008時代から存在しますが、「WindowServer2016以前でMTオプションを利用するとコピーに失敗する」といったバグがあるようです。利用するのであれば2016以降が無難です。

 Robocopy.exe の /MT (マルチ スレッド) オプションを使用するとコピー処理に失敗する

    シングルコアなら、ロボコピーバッチ自体を細分化することで速度アップが望めます。

robocopy実行ログは必ず出力

robocopyの実行に成功したか否かはログを見れば分かります。なので、「/log」オプションを指定してrobocopyログを出力しましょう。
「コピーに成功したのか?失敗したのか?」と問い詰められないようエビデンスとして出せるように。

robocopyバッチで当日日付のログ出力させるなら下記のような感じ。

rocobopyログ出力例
set date=%date:~0,4%%date:~5,2%%date:~8,2%
robocopy "\\192.168.11.126\f$\src" "E:\bkdata" /MIR /R:0 /NFL /NP /log+:.\robocopy_%date%.log
注意
robocopyログの出力先はしっかりと指定しましょう。ログの吐き先が無いとrobocopy実行エラーになるので注意。

robocopyエラースキップオプションは必須

コピーに時間がかかる場合、晩にrobocopy流して帰ったりするでしょう。

ithinkit

データ量多いし、robocopyを流して帰ろう!

次の日にはコピーが終わってるかと思いきや、エラーでコピーが完了していなかった!

ithinkit

ガーン!robocopy出来てねー・・・。

なんてことがあります。
そんな情けない事態にならないよう、コピーエラーが発生したら、スキップして次のコピーさせるようにしておきましょう。

ithinkit

コピーエラーが発生したら、スキップして個別対応!

システムが掴んでいるデータはコピーに失敗することが多いです。
「○○秒間待機しています」が、延々続くとコピーは終わらないのでスキップさせましょう。

robocopyエラーログ
~ ロボコピーログから抜粋 ~
2020/1/17 22:59:06 エラー 5 (0x00000005) ファイルをコピーしています \\192.168.11.100\D$\backup\BACKUP_20191201-0230.zip
アクセスが拒否されました。
1 秒間待機しています... 再試行しています...
      新しいファイル           3.3 g    BACKUP_20191201-0230.zip  0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%   0.0%  

~ ロボコピーログから抜粋(終わり) ~

robocopyのコピー速度が出ないなら細分化させよう

robocopyは元々シングルタスクでコピーされます。
上に書いた「MT」が使えない場合はrobocopy処理を分割するとコピーが速くなる可能性があります。

「MIR」オプションには気を付けろ

/MIRオプションを指定するとコピー元のフォルダとミラーリングされます。
つまり、コピー元でファイルを削除すると、コピー先のファイルも削除されます。
コピーしたデータは、コピー先にそのまま残したいのであれば、MIRは付けないようにしましょう。

コピー元、コピー先は絶対に向きを間違えない

/MIRオプションをつけてコピー元とコピー先を逆にしてrobocopy実行した場合、えらいことになります。

コピー先が空なら、コピー元も空になります。

システム領域は除外しよう

「System Volume Information」といったシステム領域はアクセス権が無いのでコピーに失敗します。

robocopyコピーエラー
2020/03/30 23:22:04 エラー 5 (0x00000005) ファイルをコピーしています \\jfs01\f$\System Volume Information\WPSettings.dat
アクセスが拒否されました。

2020/03/30 23:22:04 エラー 5 (0x00000005) ファイルをコピーしています \\jfs01\f$\System Volume Information\{2abac7b8-66c1-11ea-b5a2-08f1eab03c9d}{3808876b-c176-4e48-b7ae-04046e6cc752}
アクセスが拒否されました。

2020/03/30 23:22:04 エラー 5 (0x00000005) ファイルをコピーしています \\jfs01\f$\System Volume Information\{2abacb97-66c1-11ea-b5a2-08f1eab03c9d}{3808876b-c176-4e48-b7ae-04046e6cc752}
アクセスが拒否されました。

2020/03/30 23:22:04 エラー 5 (0x00000005) ファイルをコピーしています \\jfs01\f$\System Volume Information\{2abad815-66c1-11ea-b5a2-08f1eab03c9d}{3808876b-c176-4e48-b7ae-04046e6cc752}
アクセスが拒否されました。

「/XD」オプションを指定して除外することをおすすめします。

/XDオプション
/XD "System Volume Information"

コピー元をドライブ指定するとコピー先フォルダが見えなくなる

コピー元をドライブ指定している場合、コピー先フォルダにHS属性が付与されて隠しフォルダになります。

ithinkit

コピー先フォルダが無い!どうしよう!?

なんて焦らなくても良いように認識しておきましょう。
詳しくはこちらの記事
robocopyでコピー先フォルダが見えない!コピー元ドライブ指定が原因かも

robocopyでデータ移行する上で絶対に知っておきたいことまとめ

では、最後にrobocopyでデータ移行する上で絶対に知っておきたいをまとめておきます。

robocopyでデータ移行する上で知っておきたいこと
  1. コピー元のデータは極略減らす
  2. コピー元のファイル数、容量は控えておく
  3. obocopyはスペックの良いほうのサーバーで実行
  4. 2016以降なら「MT」で爆速!?
  5. robocopy実行ログは必ず出力
  6. robocopyエラースキップオプションは必須
  7. robocopyのコピー速度が出ないなら細分化させよう
  8. 「MIR」オプションには気を付けろ
  9. コピー元、コピー先は絶対に向きを間違えない
  10.  システム領域は除外しよう
  11.  コピー元をドライブ指定するとコピー先フォルダが見えなくなる

便利な差分コピーツールであるrobocopy。
Windowsでデータ移行するなら外すことの出来ない優秀なツールなので、今回挙げた内容は把握しておきましょう。

以上、あいしんくいっとでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)