環境
私の目標は、20 の開発環境を新しいデータベースで更新し、できるだけ迅速かつ確実に更新することです。BAK を生成し、それをファイル ストレージに投入してから、すべてのボックスで古いアンマウント/新しいマウントをリモートでトリガーする前に、すべてのボックスに (不十分に) ダウンさせようとします。
試み
現在、Powershellワークフローとして次のものがあります。
Write-Output "Beginning workflow."
foreach -parallel ($dir in $destinations)
{
$targetFile = "$dir\$sourcePattern"
Write-Output "Checking: $targetFile"
InlineScript{
$fileExists = Test-Path $Using:targetFile
if ($fileExists -eq $false){
Write-Output "Copying to: $using:targetFile"
&"$Using:AzCopyPath" /Source:"$Using:sourceDirectory" /Dest:$Using:dir /SourceKey:$Using:sourceKey /Pattern:"$Using:sourcePattern" /Z:$journalPath
Write-Output "Copied to: " $Using:targetFile
} else{
Write-Output "Already copied: " $Using:targetFile
}
これは、小さなテキスト ファイルではうまく機能しますが、最大 400 GB のデータベース バックアップの場合、ホスト マシンが完全に圧倒されるため、うまく機能しません。
AZCopy を使用して大きなファイルを最大 20 台のマシンに自動化および並列化してコピーする最も賢明な方法は何ですか?