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

[玩转系统] 将所有邮箱从一个数据库移至另一个数据库

作者:精品下载站 日期:2024-12-15 00:41:04 浏览:14 分类:玩电脑

将所有邮箱从一个数据库移至另一个数据库


有时,您必须将所有邮箱从 Exchange Server 中的一个数据库移至另一数据库。新的目标数据库可以是现有的或新的邮箱数据库。最好的方法是什么?在本文中,您将了解如何将所有邮箱从一个数据库移动到另一个数据库。我们是否告诉过您,只需运行一个 cmdlet?

为什么要移动所有邮箱

您希望将所有邮箱从一个邮箱数据库移动到另一个邮箱数据库的一些示例:

  • 邮箱数据库已损坏

  • 清除邮箱数据库中的可用空白空间

注意:您想知道哪些邮箱占用的空间最多吗?阅读文章使用 PowerShell 获取 Exchange 中所有用户的邮箱大小。

查找已挂载的邮箱数据库

我们已经知道源邮箱数据库和目标邮箱数据库。如果您没有邮箱数据库的名称,请检查 Exchange Server 中安装了哪些数据库。

以管理员身份运行 Exchange 命令行管理程序。接下来,运行 Get-MailboxDatabase cmdlet(包括 -IncludePreExchange 参数)以获取早期 Exchange 版本中的邮箱数据库。

[PS] C:\>Get-MailboxDatabase -IncludePreExchange -Status | Sort Name | Format-Table Name, Server, Mounted

Name Server    Mounted
---- ------    -------
DB01 EX01-2016    True
DB02 EX01-2016    True

我们可以看到我们有两个邮箱数据库。因此,我们将邮箱从源邮箱数据库DB01移动到目标邮箱数据库DB02

使用 PowerShell 将所有邮箱从一个数据库移动到另一个数据库

您不必创建邮箱导出为 CSV,然后创建移动请求来移动邮箱。相反,您可以做得更快。以下 cmdlet 适用于 Exchange Server 2010/2013/2016/2019。

重要提示:在移动邮箱之前,请运行Set-ADServerSettings cmdlet,包括-ViewEntireForest 参数。这将让您查看整个森林中的物体。

[PS] C:\>Set-ADServerSettings -ViewEntireForest $true

您是否想要移动邮箱,但在移动请求达到 CompletionInProgress 状态之前暂停该请求,以便您可以手动完成它?一个很好的方法是在每个命令中使用 -SuspendWhenReadyToComplete 开关。

邮箱

[PS] C:\>Get-Mailbox -Database "DB01" -ResultSize Unlimited | New-MoveRequest -TargetDatabase "DB02"

DisplayName       StatusDetail        TotalMailboxSize         TotalArchiveSize PercentComplete
-----------       ------------        ----------------         ---------------- ---------------
Administrator     WaitingForJobPickup 694.2 KB (710,903 bytes)                  0
Christopher Payne WaitingForJobPickup 805.7 KB (825,070 bytes)                  0
Mary Walsh        WaitingForJobPickup 53.4 KB (54,682 bytes)                    0
Benetiz Anees     WaitingForJobPickup 411.4 KB (421,233 bytes)                  0
Larson Tevin      WaitingForJobPickup 40.93 KB (41,913 bytes)                   0
Jake Cornish      WaitingForJobPickup 40.93 KB (41,913 bytes)                   0

邮箱计划

邮箱计划与本地 Exchange 环境无关。它仅在基于云的服务中可用。

邮箱计划是在 Exchange Online 中自动配置邮箱属性的模板。邮箱计划对应于 Office 365 许可证类型。当您将许可证分配给新用户时,相应的邮箱计划将用于配置所创建的新邮箱的设置。如果更改分配给现有用户的许可证,则与新许可证关联的邮箱计划中的设置将应用于用户的现有邮箱。

存档邮箱

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Where {$_.ArchiveDatabase -like "DB01"} | New-MoveRequest -ArchiveTargetDatabase "DB02"

公用文件夹邮箱

[PS] C:\>Get-Mailbox -Database "DB01" -PublicFolder | New-MoveRequest -TargetDatabase "DB02"

仲裁邮箱

[PS] C:\>Get-Mailbox -Database "DB01" -Arbitration | New-MoveRequest -TargetDatabase "DB02"

审核日志邮箱

[PS] C:\>Get-Mailbox -Database "DB01" -AuditLog | New-MoveRequest -TargetDatabase "DB02"

监控邮箱

最佳实践是不要在邮箱数据库之间移动监视邮箱。根据我的经验,最好找到监控邮箱并将其禁用。如果不这样做,删除邮箱数据库后,您会在事件查看器日志中收到重复警告。此外,健康邮箱将处于损坏状态。阅读文章,检查 Exchange 健康邮箱。

[PS] C:\>Get-Mailbox -Database "DB01" -Monitoring | Disable-Mailbox -Confirm:$false

下一步,我们将检查邮箱移动是否完成。

检查移动请求到另一个数据库

查看邮箱移动的进度。运行 Get-MoveRequestStatistics cmdlet 以检查移动请求。

[PS] C:\>Get-MoveRequestStatistics -MoveRequestQueue "DB02" | Sort DisplayName

DisplayName              StatusDetail TotalMailboxSize         TotalArchiveSize PercentComplete
-----------              ------------ ----------------         ---------------- ---------------
Administrator            Completed    694.2 KB (710,903 bytes)                  100
Ali Tajran               Completed    418.1 KB (428,159 bytes)                  100
Amanda Morgan            Completed    728.2 KB (745,692 bytes)                  100
Anna Welch               Completed    60.56 KB (62,017 bytes)                   100
Benetiz Anees            Completed    411.4 KB (421,233 bytes)                  100
Boris Campbell           Completed    427.9 KB (438,136 bytes)                  100

删除已完成的移动请求

移动完成后,删除 Exchange 中已完成的移动请求。这将使您下次移动邮箱时能够清楚地看到。如果要删除所有移动请求,请运行第二个命令。

[PS] C:\>Get-MoveRequest -MoveStatus Completed -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false

[PS] C:\>Get-MoveRequest -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false

现在我们已经移动了邮箱,我们可以删除源邮箱数据库DB01

结论

您了解了如何将所有邮箱从 Exchange Server 中的一个数据库移动到另一数据库。首先,获取在 Exchange Server 中创建的所有邮箱数据库。记下哪个邮箱数据库是源,哪个是目标。运行 cmdlet(如文章中所示),将所有邮箱从一个数据库移动到另一个数据库。检查邮箱移动请求状态,完成后清除已完成的移动请求。

您喜欢这篇文章吗?您可能还喜欢在 Exchange Server 中暂停邮箱移动请求。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯