Exchange 2019 Mailbox Taşıma Hatası Çözümü | Disk Dolma Fix

Exchange Server 2019 Mailbox Taşıma Hatası ve Disk Dolma Problemi

Exchange Server 2019 ortamında mailbox taşıma (migration) sırasında karşılaşılan disk dolma, move request hataları ve database mount problemleri sistem yöneticilerinin en sık karşılaştığı kritik sorunlardır. Bu kapsamlı rehberde, gerçek bir senaryo üzerinden sorunun kök nedenini ve kalıcı çözümünü adım adım açıklıyoruz.

Problem Senaryosu

Exchange Server 2019 ortamında kullanıcı mailbox’larını yeni bir database’e taşırken aşağıdaki sorunlar oluşur:

  • Disk alanı hızla dolar
  • Move request işlemleri fail olur
  • Database mount edilemez
  • Database “Dirty Shutdown” durumuna geçer
  • Transaction log dosyaları kontrolsüz büyür
Örnek Hata Mesajı:
MapiExceptionNoSupport: Unable to write mailbox info
MapiExceptionDatabaseError (ec=1108)
Move Request Status: Failed

Sorunun Ana Sebebi

Mailbox taşıma işlemi sırasında Exchange Server şu işlemleri gerçekleştirir:

  1. Kaynak database’den veri okur
  2. Hedef database’e veri yazar
  3. Yoğun şekilde transaction log üretir

Eğer sistemde:

  • Yeterli disk alanı yoksa
  • Exchange-aware backup alınmıyorsa
  • Circular logging kapalıysa

Transaction log dosyaları (.log) hızla büyür ve disk tamamen dolar.

Disk Dolunca Ne Olur?

Exchange Server disk dolduğunda domino etkisi yaratır:

  • Yeni transaction log yazılamaz
  • Database işlemleri tamamlanamaz
  • Database Dirty Shutdown olur
  • Mailbox taşıma işlemleri durur
  • Mail akışı kesintiye uğrar
Önemli: Bu durum sadece disk problemi değil, tüm Exchange servislerini etkileyen kritik bir hatadır.

En Kritik Hata: Toplu Mailbox Taşıma

Sistem yöneticilerinin yaptığı en büyük hata:

Aynı anda çok sayıda mailbox taşımak

Bunun nedenleri:

  • Her mailbox taşıma işlemi log üretir
  • Büyük mailbox (5GB+) daha fazla log üretir
  • Disk çok kısa sürede dolar
  • Sistem çöker

Adım Adım Kesin Çözüm

Adım 1: Move Request Temizleme

İlk olarak başarısız tüm move request’leri temizleyin:

Get-MoveRequest | Remove-MoveRequest -Confirm:$false

Sadece failed olanları temizlemek için:

Get-MoveRequest -MoveStatus Failed | Remove-MoveRequest -Confirm:$false

Adım 2: Disk Alanı Açma

En güvenli yöntem:

  • Exchange-aware backup alın (Windows Server Backup veya 3. parti çözüm)
  • Backup sonrası transaction log’lar otomatik truncate olur

Alternatif (geçici):

  • Eski log dosyalarını manuel silin (riskli)
  • Başka bir diske taşıyın

Adım 3: Geçici Çözüm – Circular Logging

Uyarı: Bu yöntem sadece acil durumlarda kullanılmalıdır. Circular logging aktifken point-in-time recovery yapılamaz.
Set-MailboxDatabase "Mailbox Database Unlimited" -CircularLoggingEnabled $true
Restart-Service MSExchangeIS

İşlem tamamlandıktan sonra mutlaka kapatın:

Set-MailboxDatabase "Mailbox Database Unlimited" -CircularLoggingEnabled $false
Restart-Service MSExchangeIS

Adım 4: Database Mount Etme

Disk alanı açıldıktan sonra database’i mount edin:

Mount-Database "Mailbox Database Arsiv"

Eğer mount edilmiyorsa durumu kontrol edin:

Get-MailboxDatabase -Status | Select Name, Mounted, DatabaseSize

Adım 5: Mailbox Taşıma (Doğru Yöntem)

Önce tek kullanıcı ile test edin:

New-MoveRequest -Identity "user@domain.com" -TargetDatabase "Mailbox Database Yonetim"

Durumu kontrol edin:

Get-MoveRequest -Identity "user@domain.com" | Get-MoveRequestStatistics

Adım 6: Büyük Mailbox Taşıma

5GB üzeri mailbox’lar için:

New-MoveRequest -Identity "user@domain.com" `
  -TargetDatabase "Mailbox Database Yonetim" `
  -BadItemLimit 50 `
  -AcceptLargeDataLoss `
  -Priority High

Adım 7: Batch Taşıma (Küçük Mailbox’lar İçin)

Maksimum 5 kullanıcı ile batch oluşturun:

$users = @("user1@domain.com", "user2@domain.com", "user3@domain.com")

foreach ($user in $users) {
    New-MoveRequest -Identity $user -TargetDatabase "Mailbox Database Yonetim"
}

Doğru Migration Stratejisi

Durum Öneri Açıklama
Küçük mailbox (<2GB) Batch (5 kullanıcı) Aynı anda 5 kullanıcı taşınabilir
Orta mailbox (2-5GB) Batch (2-3 kullanıcı) Daha dikkatli ilerleme
Büyük mailbox (>5GB) Tek tek taşıma Her kullanıcı ayrı ayrı
Disk alanı Min. 100-200 GB boş Log büyümesi için rezerv
Log yönetimi Günlük backup Otomatik log truncate

Profesyonel Tavsiyeler

Best Practices

  • Database ve log dosyalarını farklı disklerde tutun (performans ve güvenlik)
  • Exchange backup çözümü mutlaka kullanın (Veeam, Acronis, Windows Server Backup)
  • Mailbox boyut limitleri belirleyin (ProhibitSendReceiveQuota)
  • Archive database ayrı yapılandırın (eski mailleri archive’a taşıyın)
  • Disk monitoring sistemi kurun (PRTG, Zabbix, Nagios)
  • Migration öncesi disk alanı hesaplayın (toplam mailbox boyutu x 1.5)

Disk İzleme PowerShell Script

# Disk doluluk kontrolü
$disk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='E:'" | 
    Select-Object @{Name="FreeGB";Expression={[math]::Round($_.FreeSpace/1GB,2)}}

if ($disk.FreeGB -lt 50) {
    Send-MailMessage -To "admin@domain.com" `
        -Subject "UYARI: Exchange Disk Dolmak Üzere" `
        -Body "Kalan alan: $($disk.FreeGB) GB" `
        -SmtpServer "mail.domain.com"
}

Transaction Log Boyutu Kontrol

Get-MailboxDatabase | ForEach-Object {
    $logPath = (Get-MailboxDatabase $_.Name).LogFolderPath
    $logSize = (Get-ChildItem $logPath -Filter "*.log" | Measure-Object -Property Length -Sum).Sum / 1GB
    
    [PSCustomObject]@{
        Database = $_.Name
        LogSizeGB = [math]::Round($logSize, 2)
    }
} | Format-Table -AutoSize

Sonuç

Exchange Server 2019 mailbox taşıma problemlerinin büyük kısmı şu nedenlerden kaynaklanır:

  • Disk yönetimi eksikliği
  • Transaction log kontrolü yapılmaması
  • Yanlış migration planı
  • Backup sisteminin olmaması

Doğru planlama ile:

  • Veri kaybı önlenir
  • Sistem performansı korunur
  • Migration sorunsuz tamamlanır
  • Downtime minimize edilir

Hızlı Özet

  • Disk dolarsa Exchange durur
  • Mailbox taşıma işlemi yoğun transaction log üretir
  • Toplu taşıma risklidir
  • En güvenli yöntem: küçük batch + sürekli monitoring
  • Backup sistemi şart

Daha Fazla Exchange Rehberi

Exchange Server yönetimi, güvenlik ve performans optimizasyonu hakkında daha fazla makale için sitemizi takip edin.

Sorularınızı yorumlara yazabilirsiniz!

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Bu site istenmeyenleri azaltmak için Akismet kullanır. Yorum verilerinizin nasıl işlendiğini öğrenin.

Previous Post

Next Post