Exchange 2007和Exchange 2010的数据库文件使用的是edb文件,随着邮箱邮件的增多,该数据库文件也会随之增大,但是如果邮件减少或者此数据库上的邮箱被移到其他数据库上,这个edb文件却不会自动减小,而是将释放的空间作为这个文件中的whitespace,当数据库中的邮件再增加时,会先使用这部分whitespace,直到whitespace用尽后,edb文件才会继续增大。默认情况下Exchange数据库每天都会通过Maintenance Schedule做Online Defragmentation以将剩余空间整理为whitespace,而edb文件中的whitespace可以通过使用eseutil /D工具对数据库文件进行offline defragmentation释放出来,但是这要求至少在系统中有与该文件一样大小的剩余空间,这会消耗很多时间,而且在碎片整理期间数据库文件不可用。
1. 在Exchange中查看whitespace的大小:
1) Exchange 2007
在Application日志中查找Event ID为1221的日志,日志信息会显示在最后一次Online defragmentation后还有多少freespace/whitespace可用,如下图:
2) Exchange 2010和2013
使用如下EMS进行查看,Exchange 2007没有AvailableNewMailboxSpace属性:
Get-MailboxDatabase –status | select Server,Name, AvailableNewMailboxSpace
2. 如何在Exchange服务器上监控Online Defragmentation:可以在Exchange 2007的服务器的Application中筛选Event ID是702和703的日志,日志702表示Online Defragmentation开始,日志703表示Online Defragmentation结束。
3. 使用eseuitl来进行Offline Defragmentation的过程如下:
Make sure you log on by using an account that is delegated membership in the local Administrators group on that computer.
Make sure you have free disk space equal to 110 percent of the end size of the database that you want to process.
1) In the Exchange Management Console, right-click the database that you want to defragment, and then click Dismount Database.
2) At the command prompt, point to the <Exchange install folder>bin location.
3) Type the Eseutil /D command, a database switch, and any options that you want to use. For example, the following command (all in one command) runs the standard defragmentation tool on a mailbox database:
C:program filesmicrosoftexchange serverbin Eseutil /d c:program filesexchange servermailbox<storage_group_name><database_name>.edb