我正在尝试对我们的邮件服务器执行离线碎片整理。
我们正在运行 Windows Server 2008 R2 Standard,但安装了 Exchange 2010。
我正在使用eseutil
它来执行碎片整理 - 但是在 PowerShell 上我一直收到错误。
这是我正在使用的命令:
[PS] D:\EXCHSRVR\regional database\database>eseutil /d regional.edb /t\\mail\temp.edb
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
Version 14.02
Copyright (C) Microsoft Corporation. All Rights Reserved.
Initiating DEFRAGMENTATION mode...
Database: regional.edb
Defragmentation Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
X
Operation terminated with error -1022 (JET_errDiskIO, Disk IO error) after 0.94 seconds.
最后一点是错误。我的服务器上有足够的空间用于临时文件,并且数据库也已卸载。有什么想法吗?
答案1
使用 Exchange 2010 及更高版本,大多数情况下您不需要使用脱机碎片整理。
更好的、完全支持的、无停机时间的方法是创建一个新的邮箱数据库,并将所有邮箱移动到新数据库。Exchange 2010 支持在线移动邮箱 - 因此没有停机时间,您可以在工作日的中间进行移动。
如果某些邮箱已损坏,它将跳过这些邮箱并让您在过程完成时处理它们 - 要么删除邮箱,要么跳过损坏的项目并移动好的信息。
完成所有移动后,您可以删除旧邮箱数据库。新邮箱数据库将得到很好的碎片整理,不会有多余的空白。
当然,您需要足够的空间来短暂存储现有数据库和新数据库。但您也需要同样的东西来执行脱机碎片整理。
如果这有助于说服你的经理,以下是 Exchange 团队对此的看法:
我怎样才能恢复空白?
当然,在看到数据库中可用的空白后,总是会出现一个问题:我如何才能回收这些空白?
许多人认为答案是使用 ESEUTIL 对数据库进行脱机碎片整理。然而,这不是我们的建议。当您执行脱机碎片整理时,您将创建一个全新的数据库,并且创建此新数据库所执行的操作不会记录在事务日志中。新数据库还具有新的数据库签名,这意味着您将使与此数据库关联的数据库副本无效。
如果您确实遇到具有大量空白的数据库并且您不希望正常操作能够回收它,我们的建议是:
创建新的数据库和关联的数据库副本。
将所有邮箱移动到新数据库。
删除原始数据库及其关联的数据库副本。
http://blogs.technet.com/b/exchange/archive/2011/12/14/database-maintenance-in-exchange-2010.aspx
答案2
正如大家所建议的,碎片整理不建议或没有必要。最好的方法是创建一个新的邮箱数据库,并将所有邮箱移动到新数据库。这里是声明空白的详细指南。