我以前有过这个问题。
- 您有一个大数据库和一个小日志驱动器。您想进行重组(出于多种原因)。
- 在较大的碎片表上尝试执行此操作时,日志将填满,直到日志驱动器已满,然后命令中止。
- 如果处于简单模式,则其他事务可能会失败,直到在下一个检查点中清除日志为止;如果处于完全模式,则其他事务可能会失败,直到下一个日志备份为止。断电!
- 如果您处于完全模式,则可以增加日志备份频率,但是由于重组是在隐式事务中完成的,因此无法避免该问题,直到事务完成或中止或停止该事务后,日志才会清除。
- 您真的希望重组可以完成。
这有点违反直觉,因为您知道如果中止重组,它可以从中断处继续执行,只是中止会提交事务而不是回滚。
这就是你要做的。它有点长,但是很简单。
您将看到“重新组织”作业开始,并开始填充日志。当日志达到已满百分比时,它将触发WMI警报(大约30秒内),该警报将运行您的其他作业,该作业会看到“重新组织”作业正在运行,并且很可能出错。然后,它将停止“重新组织”,进行备份,确认日志可用空间恢复到合理的值,然后再次启动“重新组织”作业,该作业将从上次中断的地方继续进行。
因此,在这种情况下,您可以将日志预先调整为合理的大小是为了减少增长/触发/作业/停止/重新启动的次数,这样可以提高效率,并为没及时赶上的偶然增长。
这是一种奇怪的情况。我敢肯定,几年前我对此不屑一顾,显然这里存在一些基本的潜在问题。但是,如果您要处理数百台服务器,那么无论出于何种业务原因,此类边缘情况都将无法解决,除非通过MacGyvering临时解决方案来完成任务。
只要它是安全的,合乎逻辑的,经过测试的并且有据可查的,就应该没有问题。