Exchange 2010 -DeleteContent不会释放驱动器上的空间

我已经花了几个小时了解如何从Exchange 2010中特定date范围内的邮箱中删除邮件。但是,我无法find正确的PowerShell脚本来执行此操作。

因此,我使用cmdlet Get-Mailbox | Search-Mailbox -DeleteContent删除了所有消息 Get-Mailbox | Search-Mailbox -DeleteContent

虽然5GB应该已经被删除(统计表明所需的邮箱现在是空的),但是它没有释放包含我的Exchange数据库的硬盘上的空间。

是否有任何SQL类似的东西,我需要做的,“提交”删除交易?

你正在寻找的是一个离线碎片整理 。 命令eseutil /d会为你提供你所需要的。 请参阅链接的Microsoft知识库。

请注意 ,在执行此操作时,您希望将临时数据库放在与当前Exchange数据库具有相同的可用空间量的其他分区上。

为了回答你的实际问题,Nixphoe在离线碎片整理方面有了正确的答案。 但是,作为一个警告,你正在整理的数据库中的所有邮箱在碎片整理期间(可能是几个小时)都将处于离线状态。

但是,如果您正在认真考虑执行像脱机碎片整理这样的重大操作来回收5GB的磁盘空间,则需要将存储作为紧急事项进行升级(磁盘空间不足时会发生问题)。

如果你真的想要这样做,一个更好,更容易的select是创build一个新的邮箱数据库,并将您的邮箱从旧的数据库移动到这个新的数据库。 这也有一个非常有吸引力的好处,就是使邮箱离线,这意味着比离线碎片整理更less的停机时间。 这个方法的警告虽然是你需要足够的存储空间来保存现有的数据库以及新的,而你移动邮箱之间的两个。

您的.edb文件(实际的Exchange数据库)没有得到任何缩小的原因是Exchange的性能function,除非您有一个很好的理由,否则我绝不会build议您在生产数据库上执行脱机碎片整理。 相对而言,您提出这个问题意味着您不明白为什么ESE数据库引擎会以这种方式工作,因此可能没有足够的理由来执行脱机碎片整理。