Microsoft Exchange Server, gerçekleşen tüm işlemleri kayıt altına almak amacıyla Transaction Log dosyalarını kullanır. Transaction Log’lar, Exchange Server üzerindeki posta kutuları (MBX) ve veritabanı dosyalarındaki (Database) değişikliklerin işlenmesini sağlar.
Exchange Server WhiteSpace nedir ve Whitespace bilgisi öğrenmek mi istiyorsunuz, aşağıdaki makaleleri inceleyebilirsiniz.
- https://cengizyilmaz.net/exchange-server-whitespace-kontrol-etme/
- https://cengizyilmaz.net/exchange-server-whitespace-nedir/
İçindekiler
Exchange Server Transaction Log Dosyaları Nasıl Çalışır?
Exchange Server’daki Transaction Log süreci sürekli ve döngüsel olarak gerçekleşir. Her Transaction Log dosyası 1 MB boyutuna ulaştığında otomatik olarak kapanır ve yeni bir dosya oluşturulur. Exchange Server, her veritabanı için ayrı bir log dizisi kullanır ve bu log dosyalarını önceden belirlenmiş sürücü veya klasörde tutar.
Önemli: Transaction Log dosyaları otomatik olarak temizlenmez. Bu nedenle, disk alanının dolmasını önlemek için düzenli olarak Full Backup veya Incremental Backup alınmalıdır.
Exchange Server Transaction Log’ların İşleyişi
Exchange Server, herhangi bir veritabanı dosyasına değişiklik yapmadan önce tüm değişiklikleri güvenli bir şekilde Transaction Log dosyasına kaydeder. Değişikliklerin log dosyasına başarılı bir şekilde yazılmasının ardından veritabanı dosyasına yazılır. Bu süreçte, log dosyasına kaydedilen değişiklikler, henüz veritabanına yazılmadan önce dahi kullanıcılar tarafından kullanılabilir durumdadır.
Exchange Server, büyük boyutlardaki veritabanı sayfalarını önbelleğe alarak performansı maksimum seviyeye çıkarmak için gelişmiş bir dahili mekanizma kullanır.
Exchange Server, düzinelerce gigabaytlık (GB) veritabanı sayfasının önbelleğe alınmasını verimli bir şekilde yöneten, yüksek performans için ayarlanmış gelişmiş bir dahili bir sistem kullanmaktadır.

Exchange Server Beklenmedik Kapanmalar ve Transaction Log Kurtarma
Ani bir problem nedeniyle Exchange Server veritabanı kapanırsa, önbellekte bulunan veriler kaybolmaz. Sunucu tekrar başlatıldığında Exchange Server log dosyalarını tarayarak veritabanına henüz işlenmemiş olan verileri yeniden yapılandırır ve kurtarır.
Exchange Server Transaction Log Dosyalarının Yapısı ve İsimlendirme
Exchange Server, tüm verileri tek bir log dosyasına yazmak yerine, her biri 1 MB olan dosyalar oluşturur. İlk oluşturulan log dosyası Enn00000001.log olarak adlandırılır ve her yeni log dosyası artan sıra numaralarıyla devam eder. Açık olan aktif log dosyası ise Enn.log şeklindedir ve henüz sıra numarası yoktur.
Her veritabanının Transaction Log dosyaları farklı isimlerle ayrılır (örnek: E00, E01, E02). Bu şekilde her veritabanına ait log dosyaları kolayca takip edilebilir.
MS Exchange Server, Eseutil.exe aracını kullanarak LOG dosyasının üstbilgisini inceleyebilmekteyiz. LOG dosyasının ilk 4KB’lık dosyası, LOG dosyasının ait olduğu veritabanını açıklayan üst bilgileri içermektedir.
Exchange Server Denetim Noktası (Checkpoint) Dosyası (Enn.chk)
Checkpoint dosyası, Exchange Server’ın veritabanına ne kadar değişikliğin kaydedildiğini takip eder. Her log dizisi için ayrı bir checkpoint dosyası bulunur. Checkpoint dosyası silinirse, Exchange Server en eski log dosyasından başlayarak tekrar tarama yaparak kurtarma işlemini gerçekleştirir. Bu işlem genellikle 1-2 saniye sürer.
MS Exchange Server’da LOG dosyaları onaltılık bir şekilde isimlendirilmektedir, E000000000009.log dosyası kapatıldığında sonraki oluşan LOG dosyası E0000000000010.log olmaz. E00000000000A.log olarak adlandırılır.
Exchange Server Log Dosyalarının Üstbilgilerinin İncelenmesi (Eseutil)
Exchange yöneticileri, Transaction Log dosyalarının başlık bilgilerini (header) inceleyerek log dosyasının hangi veritabanına ait olduğunu tespit edebilir. Eseutil aracı ile log dosyasının ilk 4KB’lık kısmında bulunan üstbilgileri görebiliriz:
Eseutil /ml [LOG Dosyasının Adı]

Exchange Server çalışırken (Mount durumunda) veritabanı veya aktif log dosyasının (Enn.log) header bilgisi görüntülenemez.
Eseutil ile veritabanının düzgün (clean shutdown) ya da sorunlu (dirty shutdown) bir şekilde kapatılıp kapatılmadığını da öğrenebilirsiniz:
Eseutil /mh [Veritabanı]
MS Exchange Server’da veritabanı header bilgisini veritabanı Mount durumdayken görüntüleme işlemi yapamamaktayız. Ayrıca, herhangi bir veritabanı bağlıyken geçerli günlük dosyasının (Enn.log) bilgisini de görüntüleyemiyoruz.
Exchange yöneticisi olarak, MS Exchange Server’ın dosya header bilgilerini anlamak önemlidir. Header bilgilerini anlayarak incelersek eğer, hangi veritabanı ve LOG dosyalarının birbirine ait olduğunu veya başarılı bir restore için hangi dosyalarının gerekli olduğunu belirleyebiliriz.
Veritabanı Dissmount duruma geçirildiğinde ve Clean Shutdown modundayken, tüm LOG dosyaları güvenli bir şekilde silinebilir. Tekrar mount edildiğinde Exchange “01.log” olarak bir LOG dizini oluşturur.
Veritabanları dissmount duruma geçirildikten sonra LOG dosyalarını silebiliseniz de, bu işle eski backupları kullanmak operasyonunu etkileyecektir. Mevcut veritabanı aktif LOG dosyalarına ihtiyac duymaz, ancak eski bir veritabanını restore yapacaksanız bu dosyalar gerekebilir.
Veritabanı Dirty ShutDown durumundaysa, veritabanını tekrar düzgün şekilde mount edebilmemiz için denetim noktası dosyasından ileriye doğru olan tüm LOG dosyalarının bulunması gerekmektedir. Eğer, bu LOG dosyaları kullanılamıyorsa veritabanını tutarlı hale getirmek için Eseutil /p komutunu kullanmamız gerekmektedir. eseutil /p komutu tamamlanması database boyutuna göre değişiklik gösterebilir. eseutil /p komutunu çalıştırdıktan sonra birleştirme işlemi için eseutil /d komutunu kullanmanız gerekmektedir. /d komutu veritabanı dizinlerini yeniden oluşturmaktadır.
Exchange Server Clean ve Dirty Shutdown Durumları
- Clean Shutdown: Tüm loglar başarılı bir şekilde veritabanına yazılır. Veritabanı dismount edildikten sonra tüm log dosyaları güvenle silinebilir. Yeniden mount edildiğinde Exchange yeni bir log dizisi başlatır.
- Dirty Shutdown: Veritabanının düzgün kapatılmadığını ifade eder. Tekrar mount etmek için checkpoint dosyasından sonraki tüm log dosyaları gerekir. Eğer bu dosyalar mevcut değilse, veritabanını tutarlı hale getirmek için Eseutil /p komutu kullanılır:
Eseutil /p [Veritabanı]
Eseutil /d [Veritabanı] (veritabanını birleştirme)
Exchange Server Circular Logging Nedir?
Circular Logging, Transaction Log dosyalarının döngüsel olarak kullanılarak disk alanının verimli kullanılmasını sağlayan bir yöntemdir. Aktifleştirildiğinde, log dosyası veritabanına yazıldıktan sonra üzerine yeniden yazılır. Ancak Circular Logging etkin durumdayken yalnızca son full backup noktasına geri dönülebilir, Incremental Backup alınamaz.
Circular Logging Aktifleştirme Yöntemleri:
- Exchange Admin Center (ECP): Servers → Databases → [Veritabanı Adı] → Maintenance → Circular Logging Enabled.

- Exchange Management Shell (EMS):
Tek bir veritabanı için:
Set-MailboxDatabase "DatabaseAdı" -CircularLoggingEnabled:$True
Tüm veritabanları için:
Get-MailboxDatabase | Set-MailboxDatabase -CircularLoggingEnabled:$True
Aktif olan veritabanlarını sorgulama:
Get-MailboxDatabase | Where-Object {$_.CircularLoggingEnabled -eq $true}
Circular Logging aktifleştirildikten sonra log temizliğinin gerçekleşmesi için veritabanı önce dismount edilmeli, ardından tekrar mount edilmelidir. Ayrıca Information Store servisi yeniden başlatılmalıdır.
Circular Logging’in tek bir dezavantajı bulunmaktadır, Circular Logging aktif ise sadece son full yedeklemeye kadar restore işlemi yapabilirsiniz. Incremental backup işlemi ile yedekleme işlemi yapılmaz sadece Full Backup alınması gerekmektedir, çünkü LOG dosyaları olmadığı için sadece son aldığınız Full Backup noktasına geri dönebilirsiniz. Bu durumda her seferinde Full Backup işlemi yapılması gerekecektir.
Exchange Server tarafından kullanılan circular logging, her veritabanı işlemi için bir günlük dosyasına döngüsel olarak yazmaktadır. LOG dosyası 1MB boyutuna ulaştığında, LOG dosyası yeniden numaralandırılır ve tekrar dosya oluşturur. Circular Logging (Döngüsel Log), içerdiği verileri veritabanına yazdıktan sonra ilk dosyanın üzerine tekrar yazarak aynı dosyayı kullanır.
Not: Varsayılan olarak Circular Logging Disable olarak gelmektedir. Backup planlamanız yok ise Circular Logging’i disk tasarrufu sağlamak için Enable hale getirmeniz gerekmektedir.
Exchange Server Circular Logging Disable Durumundaki İşleyiş
Varsayılan olarak Circular Logging devre dışıdır. Disable durumdayken Incremental veya Full Backup alınana kadar log dosyaları sürekli artarak diskte birikir. Backup sonrasında tüm log dosyaları temizlenir. Bu yöntem ile alınan her backup sağlıklı ve kurtarılabilir durumdadır.
Öneri: Eğer düzenli backup planınız varsa Circular Logging kullanmanız önerilmez, çünkü Incremental backup işlemlerini kısıtlar ve sadece son full backup noktasına geri dönebilirsiniz.
Bu makalede Transaction Log yönetimi ve Circular Logging işlemlerini eksiksiz şekilde ele alarak Exchange Server yöneticilerinin bu süreçleri daha etkin yönetmesine yardımcı olacak bilgileri sunduk.