当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

作者:精品下载站 日期:2024-12-14 23:01:05 浏览:15 分类:玩电脑

将 Exchange 邮箱移动到不同的数据库


Exchange 管理员可以在同一服务器上的数据库之间或远程邮箱服务器之间移动用户邮箱。在本文中,我们将展示如何使用 Exchange 管理中心 (EAC) 和 PowerShell 在 Exchange Server 中移动邮箱。本文适用于所有受支持的 Exchange 2010/2013/2016/2019 版本,但在 Exchange 管理 GUI 方面存在一些差异。

通常,如果用户移动到拥有自己的 Exchange 邮箱服务器的另一个站点(办公室),则 Exchange 组织中的公司邮箱将被迁移;当当前数据库存储的磁盘空间耗尽时;或者当您想要对数据库执行脱机碎片整理而不中断用户的电子邮件服务时。

请注意,移动或删除邮箱不会减少磁盘上邮箱数据库的大小,它只会释放数据库中的一些空间(

white space

)。此可用空间可用于存储同一数据库中其他用户的新邮箱项目。要减小 Exchange 数据库的大小,您必须对其进行脱机碎片整理或简单地重新创建它(提前将用户移动到其他数据库)。

要将邮箱从一个数据库移动到另一个数据库,您需要创建 Exchange 移动请求。移动请求分为三种类型:

  • 本地移动是在同一林中移动邮箱的本地请求(从一个数据库到同一邮箱服务器上的另一个数据库,或者到同一 Exchange 组织中的另一台服务器);

  • 跨林企业移动 - 在不同的Active Directory林之间移动邮箱;

  • 在混合部署中使用远程邮箱移动,以在混合配置中移动邮箱(在本地 Exchange 和 Office 365 之间)。

如何使用 Exchange 管理中心 (EAC) 移动邮箱?

使用Exchange 管理中心,您可以移动一个或多个用户邮箱。

  1. 打开 EAC 并转到收件人 -> 迁移选项卡;

  2. 点击+并选择移至其他数据库

    [玩转系统] 将 Exchange 邮箱移动到不同的数据库

  3. 选择您要移动的用户邮箱;

    [玩转系统] 将 Exchange 邮箱移动到不同的数据库

    您可以在 CSV 文件中指定要迁移的邮箱列表并将其上传到 EAC。

  4. 然后指定要将邮箱移动到的目标邮箱数据库;

  5. 然后,您可以选择是否要立即开始移动或稍后开始移动,并指定邮箱以发送有关成功邮箱移动的报告。

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

我不使用 EAC 邮箱移动功能,因为使用 PowerShell 更容易、更快捷。

使用 New-MoveRequest PowerShell Cmdlet 移动 Exchange 邮箱

首先,您需要获取存储用户邮箱的邮箱数据库。打开 Exchange 命令行管理程序 (EMS) 并运行以下命令:

Get-Mailbox jkurtin| Format-List Database

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

在此示例中,用户的邮箱位于名为 DB01 的数据库中。

要创建移动邮箱的本地请求,请使用 New-MoveRequest cmdlet。例如:

New-MoveRequest -Identity jkurtin -TargetDatabase "DB02" -BadItemLimit 10

除了用户名之外,以下参数也很重要:

  • TargetDatabase 是要将邮箱移动到的目标邮箱数据库的名称;

  • BadItemLimit - 移动邮箱时可以跳过(忽略)的邮箱中损坏的邮件数量。

    如果将 BadItemLimit 设置为 0,则如果发现任何损坏的项目,邮箱将不会移动到目标数据库。如果您设置 BadItemLimit > 50,则必须另外指定 AcceptLargeDataLoss 参数。

该 cmdlet 返回邮箱和存档大小(TotalMailboxSize、TotalArchiveSize)以及移动请求已排队的消息。

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

要将所有邮箱从一个 Exchange 数据库移至另一个数据库,请使用以下命令:

Get-Mailbox -Database DB01 -ResultSize Unlimited | New-MoveRequest -TargetDatabase DB02

请注意,必须使用仲裁选项来移动系统邮箱:

Get-Mailbox -Database DB01 -Arbitration | New-MoveRequest -TargetDatabase DB02

您可以在配置文件 MSExchangeMailboxReplication.exe.config (C:\Program Files\Microsoft\Exchange Server\V15\Bin) 中更改邮箱迁移设置。例如,您可以增加邮箱数据库或邮箱服务器支持的同时移动请求操作的数量。有以下选项:

MaxActiveMovesPerSourceMDB

,

MaxActiveMovesPerTargetMDB

,

MaxActiveMovesPerSourceServer

,

MaxActiveMovesPerTargetServer

根据邮箱大小和目标服务器的位置,移动邮箱可能需要很长时间。要跟踪邮箱迁移状态(以百分比为单位),请使用 Get-MoveRequestStatistics cmdlet。

Get-MoveRequestStatistics -Identity jkurtin

在此示例中,移动状态为“进行中”,进度 (PercentComplete) 为 26%。

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

您可以显示组织中所有邮箱移动请求的状态:

Get-MoveRequest | Get-MoveRequestStatistics

迁移结束后,PercentComplete 值达到 100,迁移状态将更改为已完成

[玩转系统] 将 Exchange 邮箱移动到不同的数据库

您只能显示待处理的移动请求传输的统计信息:

Get-MoveRequest | where {$_.status -ne "completed"} | Get-MoveRequestStatistics | ft -a displayname,status*,percent

要显示正在移动或排队的所有邮箱:

Get-MoveRequest -movestatus inprogress
Get-MoveRequest -movestatus queued

如果邮箱迁移过程中出现错误,可以使用以下命令显示:

Get-MoveRequest jkurtin | Get-MoveRequestStatistics | fl *failure*, message

要获取有关邮箱迁移错误的更多详细信息,请使用以下命令:

Get-MoveRequest -resultsize unlimited | Where-Object {$_.status -like “failed”} | Get-MoveRequestStatistics -IncludeReport | select DisplayName, Message, FailureType, FailureSide, FailureTimeStamp, *bad*, *large*, Report, Identity | fl

如果您想取消邮箱移动,请运行:

Remove-MoveRequest -Identity jkurtin

要删除成功完成的移动请求(如果没有它,您下次将无法移动邮箱),请运行以下命令:

Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest

Exchange Server 中的批量邮箱迁移

为了更方便地跟踪邮箱迁移,您可以使用-BatchName选项。例如,要以批处理模式将所有邮箱从一个邮箱数据库移动到另一个邮箱数据库,请运行以下命令:

Get-Mailbox -Database RO-DB01 | New-MoveRequest -TargetDatabase RO-DB02 -BatchName RODB01toRoDB02Move20210422

然后,要获取批次中所有邮箱的迁移状态,请指定批次名称:

Get-MoveRequest -BatchName RODB01toRoDB02Move20210422| Get-MoveRequestStatistics

因此,您可以确保任务中的所有邮箱均已成功移动。

您可以暂停批量邮箱迁移:

Get-MoveRequest | ? {$_.Batchname -like “*RODB01toRoDB02Move20210422”}|Set-MoveRequest -SuspendWhenReadytoCompleate

或者恢复迁移:

Get-MoveRequest | ? {$_.Batchname -like “*RODB01toRoDB02Move20210422”|Resume-MoveRequest

在 Exchange Server 2013、2016、2019 和 Exchange Online 中,您可以使用 New-MigrationBatch 批量移动多个邮箱。在 CSV 文件中创建要迁移的邮箱列表,然后使用以下命令:

New-MigrationBatch -Local -AutoStart -AutoComplete -Name RODB01Move20210422 -CSVData ([System.IO.File]::ReadAllBytes("C:\PS\RODB01Move20210422.csv")) -TargetDatabases RO-DB03 -BadItemLimit 10

要仅移动主邮箱,请使用

PrimaryOnly

选项;要移动存档邮箱,请使用

ArchiveOnly

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯