Windows-Server-2008

Exchange DiskShadow/Robocopy 備份不清除日誌文件

  • March 22, 2014

我設置了一系列腳本來備份我的 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 GB,但First Storage Group文件夾本身為 50+ GB,因為2009以來每天都有許多日誌文件。

有什麼辦法——我已經用Google搜尋過,但沒有找到任何東西——在我完成完整備份時通知 Exchange,並讓它清除其日誌文件?

根據thisthis結束備份應該導致Exchange“刷新該儲存組的事務日誌”,但只有“如果成功備份了儲存組”,我的問題是:

什麼構成了“成功的備份”,為什麼我不這樣做呢?

通常,BEGIN BACKUP / END BACKUP 塊會向 Exchange 發出信號以截斷日誌。但為了使其正常工作,您應該使用與 Exchange 相關的數據創建所有捲的快照 - 因此,如果您將數據和事務日誌分開,則需要同時對數據Tlog 捲進行快照。

此外,您應該確保您的腳本exchangeserverbackupscript1.cmd確實返回退出程式碼為零 - 如果它不返回,則diskshadow 腳本將中止並且“結束備份”行將永遠不會被執行。我相信 robocopy 會在成功的文件複製後以“1”的退出程式碼退出,這可能會成為您問題的根源,因為如果 robocopy 是最後執行的命令,robocopy 的錯誤級別將是您的批處理的錯誤級別。嘗試為 robocopy 的成功添加條件檢查,並exit /B 0在批處理文件的末尾添加一個。

引用自:https://serverfault.com/questions/380403