Exchange DiskShadow/Robocopy 备份不会清除日志文件

Rob*_*ahy 3 backup exchange windows-server-2008 robocopy vss

我设置了一系列脚本来备份我的 Exchange。执行以下命令以启动进程:

diskshadow /s C:\Backup_Scripts\exchangeserverbackupscript1.dsh
Run Code Online (Sandbox Code Playgroud)

这是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
Run Code Online (Sandbox Code Playgroud)

这是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
Run Code Online (Sandbox Code Playgroud)

这不会导致 Exchange 清除其日志文件。该EDB文件是4.7千兆字节,但第一个存储组文件夹本身是50+千兆字节由于每天很多很多的日志文件可以追溯到2009年

有什么办法——我用谷歌搜索过但没有找到任何东西——在我完成完整备份时通知 Exchange 并清除其日志文件?

根据thisthis结束备份应该导致Exchange“刷新该存储组的事务日志”,但只有“成功备份存储组”,这让我的问题是:

什么构成“成功备份”,为什么我做的不是它?

the*_*bit 5

通常,BEGIN BACKUP / END BACKUP 块会通知 Exchange 截断日志。但为了使其正常工作,您应该使用与 Exchange 相关的数据创建所有卷的快照- 因此,如果您将数据和事务日志分开,则需要同时创建快照 - 数据Tlog 卷。

此外,您应该确保您的脚本exchangeserverbackupscript1.cmd真正返回的退出代码为零 - 如果不是,diskshadow 脚本将中止并且“结束备份”行将永远不会被执行。我相信 robocopy 会在成功复制文件后以退出代码“1”退出,这可能是您问题的根源,因为如果 robocopy 是最后执行的命令,robocopy 的错误级别将是您的批处理的错误级别。尝试exit /B 0在批处理文件的末尾添加对 robocopy 成功和 an 的条件检查。