Exchangeをバックアップするための一連のスクリプトを設定しています。次のコマンドを実行して、プロセスを開始します。
diskshadow /s C:\Backup_Scripts\exchangeserverbackupscript1.dsh
これはexchangeserverbackupscript1.dshです:
#DiskShadow script file
set verbose on
#delete shadows all
set context persistent
writer verify {76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}
set metadata C:\Backup_Scripts\shadowmetadata.cab
begin backup
add volume C: alias SH1
create
expose %SH1% P:
exec C:\Backup_Scripts\exchangeserverbackupscript1.cmd
end backup
delete shadows exposed P:
exit
#End of script
そしてこれはexchangeserverbackupscript1.cmdです:
robocopy "P:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group" "\\leahyfs\J$\E-Mail Backups\Day 1" /MIR /R:0 /W:0 /COPY:DT /B
これにより、Exchangeがログファイルを削除することはありません。 edbファイルは4.7ギガバイトですが、First Storage Groupフォルダー自体は50ギガバイト以上です。これは、毎日2009年に戻る。
完全バックアップが完了したときにExchangeに通知し、ログファイルを削除する方法はありますか?Googleで検索しましたが何も見つかりませんでしたか?
this および this によると、end backupにより、Exchangeは「トランザクションログをフラッシュする必要があります。そのストレージグループの場合」ですが、「ストレージグループのバックアップが成功した場合」のみであり、私の質問は次のようになります。
「成功したバックアップ」を構成するものと、それを実行していないのはなぜですか?
一般に、BEGIN BACKUP/END BACKUPブロックは、Exchangeにログを切り捨てるように通知します。ただし、それが機能するためには、Exchange関連のデータを含むallボリュームのスナップショットを作成する必要があります-したがって、データとトランザクションログを分離している場合、データとTlogボリュームの両方のスナップショットを作成する必要があります。
また、スクリプトexchangeserverbackupscript1.cmd
が本当にゼロの終了コードで返されることを確認する必要があります-そうでない場合 diskshadowスクリプトは中止されます そして「バックアップの終了」行は決して実行されません。 robocopyが最後に実行されたコマンドである場合、robocopyのエラーレベルはバッチのエラーレベルになるため、ファイルコピーが成功すると、robocopyは終了コード「1」で終了すると思います。これは問題の根本を示す可能性があります。 robocopyの成功の条件付きチェックとexit /B 0
をバッチファイルの最後に追加してみてください。