Exchange Server’da Offline Defragmentation (Çevrimdışı Boşluk Sıkıştırma), veritabanında gereksiz yere kullanılan boş alanları temizlemek ve fiziksel boyutunu küçültmek için yapılan bir işlemdir.
Microsoft Exchange Mailbox Database Mimarisi makalesinde anlattığımız gibi Microsoft Exchange veri tabanı ESE yani Extensible Storage Engine mimarisi ile tasarlanmıştır. Bu mimari genişletilebilir depolama birimi üzerine inşa edilmiştir ve sürekli büyümek üzere tasarlanmıştır.
Bu sebepten ötürü Microsoft Exchange Server, Exchange Mailbox Database ‘i küçültmez. Mailbox veya e-postalar silindiğinde, bu alan White Space yada bilinen diğer ismi ile Microsoft Exchange Mailbox Available New Mailbox Space olarak işaretlenir ama veritabanı fiziksel olarak küçülmez.
Exchange Server üzerinde Exchange Mailbox Database için Offline Defragmentation yani Çevrimdışı Boşluk Sıkıştırma işlemi yapılarak Exchange Mailbox Database üzerinde oluşan boş alanlar, White Space alanı üzerinde sıkılaştırma yapılabilmektedir.
Exchange Mailbox Database Offline Defragmentation makalesi içinde aşağıda ki başlıklara sahip olacağız.
1. Exchange Offline Defragmentation Nedir?
Exchange Server üzerinde yapmış olduğumuz Offline Defragmentation yani Çevrimdışı Boşluk Sıkıştırma işlemi Exchange veri tabanında kullanılmayan boş alanları yani white space olarak bildiğimiz boş alanları temizleyerek Exchange EDB dosya boyutunu küçültmeyi ve Exchange Server ‘in barınmış olduğu fiziksel depolama birimi üzerinde kaplamış olduğu alanı küçültme işlemidir.
Exchange Server, üzerinde barınan Exchange Mailbox Database boyutunu kendiliğinden küçültmez!
Eğer büyük miktarda e-posta veya mailbox silersen, veritabanı boyutu değişmez ama içinde boş alan, white space oluşur. Microsoft Exchange Mailbox Database White Space Nasıl Oluşur konu başlığında bu bilgileri sizlere aktarmıştık.
2. Exchange Offline Defragmentation Niçin Yapılır?
Exchange Mailbox Database üzerinde oluşan White Space alanı bir çok probleme gebedir ve bu problemlerin yaşanmaması için White Space Problemlerini Çözmek İçin Ne Yapılabilir makalesinde bu işlemleri sizlere aktarmıştık.
İlgili makale içinde birden fazla çözüm bulunmakta olup bu çözümlerden bir tanesi de Exchange Mailbox Database üzerinde Offline Defragmentation işleminin yapılmasıdır.
Exchange Mailbox Database üzerinde niçin Offline Defragmentation yani Çevrimdışı Boşluk Sıkıştırma işlemini yapmalıyız sorusunun özeti aşağıdadır.
- Silinen mailbox veya e-postalar nedeniyle veritabanı gereksiz büyüdüyse
- Disk alanı kritik seviyede azaldıysa ve boş alan açmak gerekiyorsa
- Veritabanı performans sorunları yaşanıyorsa (Disk I/O yükü fazlaysa)
- Backup ve restore işlemlerini hızlandırmak için
Ancak Offline Defragmentation işlemi kesintiye neden olur! Eğer disk alanı yeterliyse Offline Defragmentation işlemini yapmadan önce planlı kesinti zamanını planlamanız önerilmektedir.
3. Exchange Offline Defragmentation Nasıl Yapılır?
Microsoft Exchange Server üzerinde birden fazla yönetim aracı vardır ve Eseutil aracı da Exchange Mailbox Database için kullanılan yönetim araçlarından bir tanesidir. Eseutil /D komutu ile offline defrag işlemini yapabilmekteyiz.
Exchange Mailbox Database üzerinde Offline Defragmentation işlemleri için aşağıda ki sıralamayı takip edebilirsiniz.
3. 1. Mevcut White Space Miktarını Kontrol Et
Aşağıda paylaşmış olduğum Exchange Management Shell ile Offline Defragmentation işlemini yapacak olduğunuz Exchange Database üzerinde AvailableNewMailboxSpace alanını kontrol ederek işlemlere başlıyoruz.
Exchange Management Shell komut çıktısında gördüğümüz gibi 460 GB EDB dosya boyutuna sahip Database01 üzerinde 114 GB boş alan bulunmakta. Bu Database için şunu söyleyebiliriz. 114 GB boş alan yani White Space bulunmakta fakat EDB dosya boyutu küçülmemiş durumda.
3.2 Exchange Mailbox Database Dismount
Exchange Mailbox Database üzerinde yapacak olduğumuz Offline Defragmentation işlemi planlı kesinti ile yapılabilmektedir. Exchange Mailbox Database üzerinde yapılan Exchange Server Online Maintenance yani Çevrimiçi Bakım işlemleri gibi kesintisiz yapılabilen bir işlem değildir.
Exchange Mailbox Database üzerinde Offline Defragmentation işlemini yapacaksak eğer işlemi yapacak olduğumuz Exchange Mailbox Database ‘i dismount duruma getirmemiz gerekmektedir ve bu işlemde Exchange Mailbox Database içinde barınan kullanıcıların e-postalarına işlem süresince erişemeyeceği anlamına gelmektedir.
Exchange Mailbox Database üzerinde Offline Defragmentation işlemine başlamadan önce Exchange Database içinde barınan kullanıcılara bilgi vermemiz gerekmektedir ve yukarıda paylaşmış olduğum komut ile Exchange Database içinde barınan kullanıcıları öğrenebiliriz.
Bu işlem, bütün exchange server alt yapısı üzerinde kesinti yapmayacak sadece ama sadece Exchange Mailbox Database içinde barınan kullanıcılar bu işlem süresince kesinti yaşayacaktır.
Sınırlı Planlı kesinti olarak düşünebilirsiniz.
Yukarıda paylaşmış olduğum komut ile Exchange Mailbox Database ‘i dismount edebilir ve kullanıcı erişimlerini kesebiliriz.
3.3 Eseutil ile Offline Defragmentation Yap
Exchange Mailbox Database dismount durumda ve kullanıcı erişimleri artık bulunmamakta.
Yukarıda paylaşmış olduğum komut ile Database01 için Offline Defragmentation işlemine başlayabiliriz. Paylaşmış olduğum komut içinde Database01 ‘in EDB yolunu göstermem gerekmekte.
Offline Defragmentation işlemini yapacak olduğunuz Exchange Mailbox Database üzerinde EDB yolunu bilmiyorsanız eğer yukarıda paylaşmış olduğum Exchange Management Shell komutu ile EDB yolunu öğrenebilirsiniz.
Microsoft Exchange Server Database Limit ve Default Database konu başlığında bu komutun detaylarını sizlere paylaşmıştık.
Exchange Mailbox Database üzerinde yapacak olduğumuz Offline Defragmentation işlemi sonrasında.
- Tüm gereksiz boş alanları temizler.
- Veritabanı fiziksel olarak küçülür.
- White space tamamen sıfırlanır.
Offline Defragmentation İşlem Süresi Veritabanı büyüklüğüne ve diskin hızına bağlıdır. 100 GB için yaklaşık 1-2 saat ön görülebilir süre verebiliriz.
3.4 Eseutil ile Offline Defragmentation Temp Alan
Exchange Mailbox Database üzerinde yapacak olduğumuz Offline Defragmentation işlemi için Exchange Veri tabanının barınmış olduğu fiziksel disk alanı üzerinde kullanılabilir, boş alan gerektirir. Eğer, EDB dosya boyutunun barınmış disk alanı üzerinde uygun, kullanılabilir kapasite yoksa bu işlem hata verecektir.
eseutil /d komutunun ihtiyaç duyduğu alan Exchange Mailbox Database ‘nin EDB boyutuna bağlı olarak değişmektedir. İşlemin yapılacağı Exchange veritabanının barınmış olduğu disk alanı üzerinde en az %110-%120 oranında boş alan gereklidir.
Örneğin, Eğer Database01.edb dosya boyutu 100 GB ise, en az 110-120 GB boş alan olması önerilir.
Eğer, Exchange Mailbox Database ‘in barınmış olduğu EDB disk alanı üzerinde yeterli boş alan yok ise eseutil /d aracına Temp paremetresini eklememiz gerekmektedir.
Yukarıda paylaşmış olduğum eseutil komutu ile alternatif çözüm üretebiliriz. eseutil komutu içinde yer alan değişkenlerin açıklaması aşağıda paylaşılmıştır.
- D:\ExchangeDB\Database01.edb → Mevcut veritabanının bulunduğu yer.
- E:\Temp\TempDefrag.edb → Defragmentation sırasında kullanılacak alternatif disk.
Bu sayede, Exchange’in çalıştığı diskten fazla alan gerektirmeden işlem yapılabilir.
3.5 Exchange Mailbox Database Mount
Exchange Mailbox Database üzerinde yapmış olduğumuz Offline Defragmentation işlemi tamamlandıktan sonra White space alanını tekrar kontrol edip dismount duruma getirdiğimiz Exchange Mailbox Database ‘i tekrardan mount edebiliriz.
yukarıda paylaşmış olduğum Exchange Management shell ile Database01 ‘i mount duruma getirebilir ve planlı kesintiye son verebilir.
Bazı durumlarda Database bu işlemden sonra hemen mount olmayabilir, zamana ihtiyaç duyabilir. Exchange Servisleri üzerinde ki cache problemi bazen bu değişiklikleri hızlıca algılayamaz.
Exchange Mailbox Database ‘i mount etme sırasında hata alırsanız yukarıda paylaşmış olduğum komut ile Exchange Servislerini yeniden başlatabilirsiniz.
3.6 DAG Üyesi Olan Bir Database Üzerinde Offline Defragmentation Nasıl Yapılır?
Exchange Server Database Availability Group (DAG) içinde bulunan bir Exchange Mailbox Database üzerinde Offline Defragmentation (Eseutil /D) yapmak, standalone (bağımsız) bir database’e göre daha karmaşıktır.
Çünkü DAG ortamında, veritabanı birden fazla kopyaya sahip olduğu için doğrudan offline defragmentation yapmak mümkün değildir! DAG üyesi olan bir database’i doğrudan offline defrag edemezsin! Öncelikle DAG’den çıkarman ve işlem sonrası tekrar DAG’e eklemen gerekir.
4. Online ve Offline Defragmentation Karşılaştırması
Offline Defragmentation işlemi yapılmadan önce Exchange Mailbox Database üzerinde Offline Defragmentation işlemi gerçekten gerekmekte mi sorusu sorulmalıdır.
Makale içinde bahsettiğimiz gibi Offline Defragmentation işlemi planlı bakım olarak gerçekleştirilen bir iş sürecidir ve Offline Defragmentation yapılmış olduğu zaman diliminde Exchange Mailbox Database içinde barınan kullanıcılar e-posta hizmetlerinden yararlanamayacaktır.
Exchange Mailbox Database üzerinde Offline Defragmentation işlemi yapmadan önce karar vermeniz için aşağıda ki tabloyu incelemenizi önermekteyim.
| Özellik | Offline Defragmentation (eseutil /d) | Online Defragmentation (Otomatik Bakım) |
|---|---|---|
| Kesinti Süresi | Yüksek (Veritabanı Kapanır) | Yok (Arka planda çalışır) |
| Veritabanı Boyutunu Küçültme | Evet (Fiziksel olarak küçültür) | Hayır (Sadece white space temizler) |
| Performans Etkisi | Daha hızlı ve etkili | Daha yavaş ve kısıtlı |
| Uygulama Zamanı | Planlı bakım zamanı gerekir | Exchange otomatik yapar |
| Tavsiye Edilen Senaryo | Büyük white space ve disk sıkıntısı varsa | Rutin bakım için uygundur |
Yukarıda paylaşmış olduğumuz tablonun kısa özeti
- White Space büyükse ve fiziksel boyutu küçültmek istiyorsan Offline Defragmentation yapmalısın.
- Disk alanı azalmışsa ve yeni database oluşturmak istemiyorsan Offline Defragmentation yapmalısın.
- Eğer sadece veritabanı içindeki boş alanları temizlemek istiyorsan, Online Maintenance yeterlidir!
- Eğer kesinti olmadan çözüm istiyorsan, önce Online Defragmentation’ yapmalısın
- Disk alanı büyük sorun değilse, Offline Defragmentation şart olmayabilir.
5. Offline Defragmentation Yapmadan Önce Dikkat etmelisin
Makele içinde Exchange Mailbox Database üzerinde Offline Defragmentation işlemi nasıl yapılır ve niçin yapmamız gerekir bu sorulara cevaplar verdik. Online Maintenance işleminin yeterli olmadığı başlıkları sizlere paylaştık ve Online Maintenance sizler için yeterli değil ve Offline Defragmentation işlemini yapmaya karar verdiyseniz işleme başlamadan önce yapmanız dikkat etmeniz gereken başlıklar bulunmaktadır.
- Backup Al: İşlem geri alınamaz, hata olursa veri kaybı olabilir!
- Mail Kesintisi Olur: İşlem sırasında veritabanı kapanacağı için Exchange hizmeti duracaktır.
- Süreyi Hesapla: 100 GB veritabanı için 1-2 saat sürebilir.
- Alternatifleri Düşün: Eğer disk alanın yeterliyse, defrag yerine yeni mailbox database oluşturup taşımayı düşünebilirsin.
Offline Defragmentation Yapmadan Önce Dikkat etmelisin bölümünde yapmış olduğumuz uyarılar için alternatif çözümleri White Space Problemlerini Çözmek İçin Ne Yapılabilir çözüm başlığından alternatif çözümleri inceleyebilirsin.
Exchange Server Mailbox Database üzerinde yapmış olduğumuz bu işlemleri proaktif hizmetler kapsamında gerçekleştirmekte ve #Exchange Server Optimization etiketi ile hazırlamış olduğumuz makale ve video eğitim içerikleri ile sağlıklı, performanslı Exchange Server alt yapılarını müşterilerimize sunmaktayız.























