ค้นหาเว็บไซต์

การย้ายกล่องจดหมาย Exchange ไปยังฐานข้อมูลอื่น


ผู้ดูแลระบบ Exchange สามารถย้ายกล่องจดหมายของผู้ใช้ระหว่างฐานข้อมูลบนเซิร์ฟเวอร์เดียวกันหรือระหว่างเซิร์ฟเวอร์กล่องจดหมายระยะไกล ในบทความนี้ เราจะแสดงวิธีย้ายกล่องจดหมายใน Exchange Server โดยใช้ Exchange Admin Center (EAC) และ PowerShell บทความนี้เกี่ยวข้องกับ Exchange 2010/2013/2016/2019 เวอร์ชันที่รองรับทั้งหมด โดยมีข้อแตกต่างบางประการเกี่ยวกับ Exchange Management GUI

โดยทั่วไป กล่องจดหมายขององค์กรในองค์กร Exchange จะถูกย้ายหากผู้ใช้ย้ายไปยังไซต์อื่น (สำนักงาน) ด้วยเซิร์ฟเวอร์กล่องจดหมาย Exchange ของตนเอง เมื่อพื้นที่ดิสก์ที่จัดเก็บฐานข้อมูลปัจจุบันหมด หรือเมื่อคุณต้องการจัดเรียงข้อมูลแบบออฟไลน์ของฐานข้อมูลโดยไม่ขัดจังหวะบริการอีเมลสำหรับผู้ใช้

โปรดทราบว่าการย้ายหรือลบกล่องจดหมายไม่ได้ลดขนาดฐานข้อมูลกล่องจดหมายบนดิสก์ แต่จะเพิ่มพื้นที่ว่างในฐานข้อมูลเท่านั้น (

white space

). พื้นที่ว่างนี้สามารถใช้เพื่อจัดเก็บรายการกล่องจดหมายใหม่สำหรับผู้ใช้รายอื่นในฐานข้อมูลเดียวกัน หากต้องการลดขนาดของฐานข้อมูล Exchange คุณต้องจัดเรียงข้อมูลแบบออฟไลน์หรือสร้างใหม่ (ย้ายผู้ใช้ไปยังฐานข้อมูลอื่นล่วงหน้า)

หากต้องการย้ายกล่องจดหมายจากฐานข้อมูลไปยังอีกฐานข้อมูลหนึ่ง คุณต้องสร้างคำขอย้าย Exchange คำขอย้ายมีสามประเภท:

  • การย้ายภายในเครื่อง เป็นคำขอภายในเครื่องเพื่อย้ายกล่องจดหมายในฟอเรสต์เดียวกัน (จากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่งบนเซิร์ฟเวอร์กล่องจดหมายเดียวกัน หรือไปยังเซิร์ฟเวอร์อื่นในองค์กร Exchange เดียวกัน)

  • การย้ายองค์กรข้ามฟอเรสต์ - ย้ายกล่องจดหมายระหว่างฟอเรสต์ Active Directory ต่างๆ

  • การย้ายกล่องจดหมายระยะไกล ที่ใช้ในการปรับใช้แบบไฮบริดเพื่อย้ายกล่องจดหมายในการกำหนดค่าแบบไฮบริด (ระหว่าง Exchange ในองค์กรและ Office 365)

วิธีย้ายกล่องจดหมายโดยใช้ Exchange Admin Center (EAC)

เมื่อใช้ ศูนย์ดูแล Exchange คุณสามารถย้ายกล่องจดหมายของผู้ใช้ตั้งแต่หนึ่งกล่องขึ้นไป

  1. เปิด EAC และไปที่แท็บ ผู้รับ -> การย้ายข้อมูล

  2. คลิก + และเลือก ย้ายไปยังฐานข้อมูลอื่น

  3. เลือกกล่องจดหมายของผู้ใช้ที่คุณต้องการย้าย

    คุณสามารถระบุรายการกล่องจดหมายที่จะย้ายในไฟล์ CSV และอัปโหลดไปยัง EAC

  4. จากนั้นระบุฐานข้อมูลกล่องจดหมายเป้าหมายที่คุณต้องการย้ายกล่องจดหมายไป

  5. จากนั้นคุณสามารถเลือกได้ว่าต้องการเริ่มย้ายทันทีหรือในภายหลัง และระบุกล่องจดหมายเพื่อส่งรายงานเกี่ยวกับการย้ายกล่องจดหมายที่สำเร็จ

ฉันไม่ได้ใช้คุณลักษณะการย้ายกล่องจดหมาย EAC เนื่องจากทำได้ง่ายกว่าและเร็วกว่าด้วย PowerShell

การย้ายกล่องจดหมาย Exchange ด้วย New-MoveRequest PowerShell Cmdlet

ก่อนอื่น คุณต้องได้รับฐานข้อมูลกล่องจดหมายที่เก็บกล่องจดหมายของผู้ใช้ เปิด Exchange Management Shell (EMS) และเรียกใช้คำสั่งนี้:

Get-Mailbox jkurtin| Format-List Database

ในตัวอย่างนี้ กล่องจดหมายของผู้ใช้จะอยู่ในฐานข้อมูลชื่อ DB01

หากต้องการสร้างคำขอในเครื่องเพื่อย้ายกล่องจดหมาย จะมีการใช้ cmdlet New-MoveRequest ตัวอย่างเช่น:

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

นอกจากชื่อผู้ใช้แล้ว พารามิเตอร์ต่อไปนี้มีความสำคัญ:

  • TargetDatabase คือชื่อของฐานข้อมูลกล่องจดหมายเป้าหมายที่คุณต้องการย้ายกล่องจดหมายไป

  • BadItemLimit - จำนวนรายการที่เสียหายในกล่องจดหมายที่อาจถูกข้าม (ละเว้น) ขณะย้ายกล่องจดหมาย

    หากคุณตั้งค่า BadItemLimit เป็น 0 กล่องจดหมายจะไม่ถูกย้ายไปยังฐานข้อมูลเป้าหมายหากพบรายการที่เสียหาย หากคุณตั้งค่า BadItemLimit > 50 คุณต้องระบุพารามิเตอร์AcceptLargeDataLoss เพิ่มเติม

cmdlet ส่งคืนกล่องจดหมายและขนาดไฟล์เก็บถาวร (TotalMailboxSize, TotalArchiveSize) และข้อความแจ้งว่าคำขอย้ายอยู่ในคิว

เมื่อต้องการย้ายกล่องจดหมายทั้งหมดจากฐานข้อมูล 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

ขึ้นอยู่กับขนาดกล่องจดหมายและตำแหน่งของเซิร์ฟเวอร์เป้าหมาย อาจใช้เวลานานในการย้ายกล่องจดหมาย ในการติดตามสถานะการย้ายข้อมูลกล่องจดหมายเป็น % จะใช้ cmdlet Get-MoveRequestStatistics

Get-MoveRequestStatistics -Identity jkurtin

ในตัวอย่างนี้ สถานะการย้ายคืออยู่ระหว่างดำเนินการ และความคืบหน้า (PercentComplete) คือ 26%

คุณสามารถแสดงสถานะของคำขอย้ายกล่องจดหมายทั้งหมดในองค์กร:

Get-MoveRequest | Get-MoveRequestStatistics

หลังจากการย้ายข้อมูลสิ้นสุดลง ค่า PercentComplete จะถึง 100 และสถานะการย้ายข้อมูลจะเปลี่ยนเป็น เสร็จสมบูรณ์

คุณสามารถแสดงสถิติเกี่ยวกับการโอนคำขอย้ายที่รอดำเนินการได้เท่านั้น:

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

บทความที่เกี่ยวข้อง