我了解“逻辑”和“物理”可用空间之间的区别,并且存在空白空间没有增加的问题(逻辑空间,以前是 Exchange 2003 中的事件 1221)。
鉴于
- 我有一台 Exchange 2010 服务器,其中许多邮箱已移动到不同的数据库。
- 正在从邮件中删除附件
我观察到
- 当我运行下面的脚本时,没有释放任何逻辑空间
- 当我运行在线维护、完整备份或 powershell 命令清理邮箱数据库时,似乎没有任何东西可以释放逻辑空间。
需要澄清的是,我说的不是磁盘空间。我说的是数据库内的空白。
如何释放逻辑空间到不再消耗物理磁盘空间的程度(不包括日志文件)?
因为错误答案被点赞,而我的问题得不到任何投票,所以我猜人们会以为我在谈论物理空间……但我显然不是
$Databases = Get-MailboxDatabase -Status
foreach($Database in $Databases) {
$DBSize = $Database.DatabaseSize
$MBCount = @(Get-MailboxStatistics -Database $Database.Name).Count
$AllMBStats = Get-MailboxStatistics -Database $Database.Name
$MBItemAssocCount = $AllMBStats | %{$_.AssociatedItemCount.value} | Measure-Object -Average -Sum
$MBDeletedCount = $AllMBStats | %{$_.DeletedItemCount.value} | Measure-Object -Average -Sum
$MBItemCount = $AllMBStats | %{$_.ItemCount} | Measure-Object -Sum
$MBDeletedItemSize= $AllMBStats | %{$_.TotalDeletedItemSize.value } | Measure-Object -Average -Sum
$MBItemSize = $AllMBStats | %{$_.TotalItemSize.value.ToMb()} | Measure-Object -Average -Sum
New-Object PSObject -Property @{
Server = $Database.Server.Name
DatabaseName = $Database.Name
UserCount = $MBCount
"DatabaseSize (GB)" = $DBSize.ToGB()
"DatabaseSize Deleted (bytes)" = $MBDeletedItemSize.Sum
"WhiteSpace (MB)" = $Database.AvailableNewMailboxSpace.ToMB()
"LogicalSize (MB)" = $MBItemSize.Sum
"Available Mailbox Space" = $Database.AvailableNewMailboxSpace
ItemCount = $MBItemCount.Sum
"AverageMailboxSize (MB)" = $MBItemSize.Average
}
}
答案1
Exchange 2010 不会自动释放空白。您要么忍受它,要么创建一个新数据库并移动所有剩余帐户并删除该数据库。
编辑:我忘了,如果您不介意卸载数据库,并且您有大量可用磁盘空间(等于空白量),那么您可以使用进行脱机碎片整理eseutil /d
。请参阅http://exchangeserverpro.com/defrag-exchange-2010-mailbox-database
答案2
我能想到的三种可能性:
您需要此修补程序: http://support.microsoft.com/kb/2621266(值得怀疑,但也许)
已删除项目或已删除邮箱的保留期限会造成影响。您可以尝试将两者的保留期限都设置为 1 天,然后等到下一次完整备份后再进行检查。
您不会在移动已断开连接的邮箱后清除它们(实际上与#2有关)...请参见此处: http://www.howexchangeworks.com/2010/09/purge-disconnected-or-soft-deleted.html
希望有所帮助。