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

我有一系列的脚本安装来备份我的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千兆字节,但由于第一个存储组文件夹中的每一天的许多日志文件要追溯到2009年 ,因此它本身的大小为50+千兆字节。

有没有办法 – 我已经谷歌search,还没有发现任何东西 – 当我完成了一个完整的备份通知Exchange,并清除其日志文件?

根据这个和这个 , 最终备份应该导致Exchange“ 刷新该存储组的事务日志 ”,但只有“ 如果发生了一个存储组的成功备份 ”,这留下我的问题:

什么构成“成功的备份”,为什么我现在所做的不是呢?

通常情况下,BEGIN BACKUP / END BACKUP块会通知Exchange截断日志。 但是为了使其正常工作,您应该已经创build了与Exchange相关数据的所有卷的快照 – 因此,如果您已经分离了数据和事务日志,则需要对数据 Tlog卷进行快照。

另外,你应该确保你的脚本exchangeserverbackupscript1.cmd确实返回,退出代码为零 – 如果不是,那么diskshadow脚本将不会中止 ,并且“结束备份”行将永远不会执行。 如果robocopy是最后执行的命令,我相信robocopy会在退出代码为“1”的情况下退出,这可能会导致问题的根源,因为robocopy的错误级别是您的批处理的错误级别。 尝试添加一个条件检查robocopy的成功和exit /B 0到您的batch file的结尾。