Exchange Posta Kutularını Farklı Veritabanına Taşıma
Bir Exchange yöneticisi, kullanıcı posta kutularını aynı sunucudaki veritabanları arasında veya uzak posta kutusu sunucuları arasında taşıyabilir. Bu makalede, Exchange Admin Center (EAC) ve PowerShell kullanılarak Exchange Server'da posta kutularının nasıl taşınacağını göstereceğiz. Makale, Exchange Management GUI ile ilgili bazı farklılıklar dışında, Exchange 2010/2013/2016/2019'un tüm desteklenen sürümleriyle ilgilidir.
Tipik olarak, bir Exchange kuruluşundaki kurumsal posta kutuları, bir kullanıcı kendi Exchange posta kutusu sunucularıyla başka bir siteye (ofise) taşınırsa taşınır; mevcut veritabanının saklandığı disk alanı bittiğinde; veya kullanıcılar için e-posta hizmetini kesintiye uğratmadan veritabanının çevrimdışı birleştirme işlemini gerçekleştirmek istediğinizde.
Bir posta kutusunu taşımanın veya silmenin diskteki posta kutusu veri tabanı boyutunu küçültmediğini, sadece veri tabanında bir miktar yer boşalttığını unutmayın (
white space). Bu boş alan, aynı veritabanındaki diğer kullanıcılar için yeni posta kutusu öğelerini depolamak için kullanılabilir. Exchange veritabanının boyutunu azaltmak için, onu çevrimdışı birleştirmeniz veya yeniden oluşturmanız (kullanıcıları önceden diğer veritabanlarına taşımanız) gerekir.
Bir posta kutusunu bir veritabanından diğerine taşımak için bir Exchange taşıma isteği oluşturmanız gerekir. Üç tür taşıma isteği vardır:
-
Yerel taşıma, aynı ormandaki bir posta kutusunu (aynı posta kutusu sunucusundaki bir veritabanından diğerine veya aynı Exchange kuruluşundaki başka bir sunucuya) taşımak için yerel bir istektir;
Ormanlar arası kuruluş taşıma - posta kutularını farklı Active Directory ormanları arasında taşır;
Karma yapılandırmalarda (şirket içi Exchange ve Office 365 arasında) posta kutularını taşımak için karma dağıtımda kullanılan uzak posta kutusu taşımaları.
Exchange Admin Center (EAC) Kullanılarak Posta Kutuları Nasıl Taşınır?
Exchange Yönetim Merkezi'ni kullanarak bir veya daha fazla kullanıcı posta kutusunu taşıyabilirsiniz.
EAC'yi açın ve Alıcılar -> Geçişler sekmesine gidin;
+'yı tıklayın ve Farklı bir veritabanına taşı'yı seçin;
Taşımak istediğiniz kullanıcı posta kutularını seçin;
Taşınacak posta kutularının listesini bir CSV dosyasında belirtebilir ve bunu EAC'ye yükleyebilirsiniz.
-
Ardından, posta kutularını taşımak istediğiniz hedef posta kutusu veritabanını belirtin;
Ardından, hemen mi yoksa daha sonra mı taşımaya başlamak istediğinizi seçebilir ve başarılı posta kutusu taşıma hakkında bir rapor göndermek için posta kutusunu belirtebilirsiniz.
PowerShell ile yapmak daha kolay ve hızlı olduğu için EAC posta kutusu taşıma özelliklerini kullanmıyorum.
New-MoveRequest PowerShell Cmdlet ile Exchange Posta Kutularını Taşıma
Her şeyden önce, kullanıcının posta kutusunu saklayan posta kutusu veri tabanına sahip olmanız gerekir. Exchange Yönetim Kabuğu'nu (EMS) açın ve şu komutu çalıştırın:
Get-Mailbox jkurtin| Format-List DatabaseBu örnekte, bir kullanıcının posta kutusu DB01 adlı veritabanında bulunmaktadır.
Bir posta kutusunu taşımak üzere yerel bir istek oluşturmak için New-MoveRequest cmdlet'i kullanılır. Örneğin:
New-MoveRequest -Identity jkurtin -TargetDatabase "DB02" -BadItemLimit 10Bir kullanıcı adının yanı sıra aşağıdaki parametreler de önemlidir:
TargetDatabase, posta kutusunu taşımak istediğiniz hedef posta kutusu veritabanının adıdır;
-
BadItemLimit - posta kutusu taşınırken atlanabilecek (yok sayılabilecek) posta kutusundaki hasarlı öğelerin sayısı.
BadItemLimit 0'ı ayarlarsanız, herhangi bir bozuk öğe bulunursa posta kutusu hedef veritabanına taşınmaz. BadItemLimit > 50 olarak ayarlarsanız, ayrıca AcceptLargeDataLoss parametresini belirtmeniz gerekir.
Cmdlet, posta kutusu ve arşiv boyutlarını (TotalMailboxSize, TotalArchiveSize) ve taşıma isteğinin sıraya alındığını belirten bir mesaj döndürür.
Tüm posta kutularını bir Exchange veritabanından diğerine taşımak için aşağıdaki komutu kullanın:
Get-Mailbox -Database DB01 -ResultSize Unlimited | New-MoveRequest -TargetDatabase DB02Sistem posta kutularını taşımak için Arbitration seçeneğinin kullanılması gerektiğini unutmayın:
Get-Mailbox -Database DB01 -Arbitration | New-MoveRequest -TargetDatabase DB02MSExchangeMailboxReplication.exe.config (C:\Program Files\Microsoft\Exchange Server\V15\Bin) yapılandırma dosyasında posta kutusu taşıma ayarlarını değiştirebilirsiniz. Örneğin, bir posta kutusu veri tabanı veya posta kutusu sunucusu için desteklenen eşzamanlı taşıma isteği işlemlerinin sayısını artırabilirsiniz. Bunlar aşağıdaki seçeneklerdir:
MaxActiveMovesPerSourceMDB,
MaxActiveMovesPerTargetMDB,
MaxActiveMovesPerSourceServer,
MaxActiveMovesPerTargetServerPosta kutusunun boyutuna ve hedef sunucunun konumuna bağlı olarak posta kutusunun taşınması uzun zaman alabilir. % cinsinden posta kutusu geçiş durumunu izlemek için Get-MoveRequestStatistics cmdlet'i kullanılır.
Get-MoveRequestStatistics -Identity jkurtinBu örnekte, taşıma durumu Devam Ediyor'dur ve ilerleme (Tamamlanma Yüzdesi) %26'dır.
Kuruluştaki tüm posta kutusu taşıma isteklerinin durumunu görüntüleyebilirsiniz:
Get-MoveRequest | Get-MoveRequestStatisticsTaşıma işlemi bittikten sonra PercentComplete değeri 100'e ulaşır ve taşıma durumu Tamamlandı olarak değişir.
Yalnızca bekleyen taşıma isteği transferleriyle ilgili istatistikleri görüntüleyebilirsiniz:
Get-MoveRequest | where {$_.status -ne "completed"} | Get-MoveRequestStatistics | ft -a displayname,status*,percentTaşınan veya kuyruğa alınan tüm posta kutularını görüntülemek için:
Get-MoveRequest -movestatus inprogress
Get-MoveRequest -movestatus queuedPosta kutusu geçişi sırasında bir hata oluşursa, bu komutu kullanarak bunu görüntüleyebilirsiniz:
Get-MoveRequest jkurtin | Get-MoveRequestStatistics | fl *failure*, messagePosta kutusu geçiş hataları hakkında daha ayrıntılı bilgi almak için aşağıdaki komutu kullanın:
Get-MoveRequest -resultsize unlimited | Where-Object {$_.status -like “failed”} | Get-MoveRequestStatistics -IncludeReport | select DisplayName, Message, FailureType, FailureSide, FailureTimeStamp, *bad*, *large*, Report, Identity | flBir posta kutusu taşıma işlemini iptal etmek istiyorsanız şunu çalıştırın:
Remove-MoveRequest -Identity jkurtinBaşarıyla tamamlanan taşıma isteklerini kaldırmak için (bir dahaki sefere onsuz bir posta kutusunu taşıyamayacaksınız), şu komutu çalıştırın:
Get-MoveRequest -MoveStatus Completed | Remove-MoveRequestExchange Server'da Toplu Posta Kutusu Geçişi
Posta kutusu geçişini izlemeyi daha kolay hale getirmek için -TopluAdı seçeneğini kullanabilirsiniz. Örneğin, tüm posta kutularını toplu iş modunda bir posta kutusu veritabanından diğerine taşımak için aşağıdaki komutu çalıştırın:
Get-Mailbox -Database RO-DB01 | New-MoveRequest -TargetDatabase RO-DB02 -BatchName RODB01toRoDB02Move20210422Ardından, gruptaki tüm posta kutularının geçiş durumunu almak için toplu iş adını belirtin:
Get-MoveRequest -BatchName RODB01toRoDB02Move20210422| Get-MoveRequestStatisticsBöylece, görevdeki tüm posta kutularının başarıyla taşındığından emin olabilirsiniz.
Bir toplu posta kutusu geçişini askıya alabilirsiniz:
Get-MoveRequest | ? {$_.Batchname -like “*RODB01toRoDB02Move20210422”}|Set-MoveRequest -SuspendWhenReadytoCompleateVeya taşıma işlemine devam edin:
Get-MoveRequest | ? {$_.Batchname -like “*RODB01toRoDB02Move20210422”|Resume-MoveRequestExchange Server 2013, 2016, 2019 ve Exchange Online'da New-MigrationBatch'i kullanarak birden çok posta kutusunu toplu halde taşıyabilirsiniz. Bir CSV dosyasında taşınacak posta kutularının bir listesini yapın ve şu komutu kullanın:
New-MigrationBatch -Local -AutoStart -AutoComplete -Name RODB01Move20210422 -CSVData ([System.IO.File]::ReadAllBytes("C:\PS\RODB01Move20210422.csv")) -TargetDatabases RO-DB03 -BadItemLimit 10Yalnızca birincil posta kutusunu taşımak için
PrimaryOnlyseçenek; bir arşiv posta kutusunu taşımak için şunu kullanın:
ArchiveOnly





