1. Ana Sayfa
  2. Exchange Server 2007
  3. Exchange Server 2007’de Çevrimiçi ve Çevrimdışı Database Bakımı (Online ve Offline Maintenance) Nasıl Yapılır?

Exchange Server 2007’de Çevrimiçi ve Çevrimdışı Database Bakımı (Online ve Offline Maintenance) Nasıl Yapılır?

Exchange Server 2007’de e-posta veritabanlarının bakımı şirket iletişiminin performansı ve verimi için çok önemlidir. Zaman geçtikçe veritabanlarının boyutları büyür, gereksiz veya silinmeyi bekleyen nesne sayısı artar, tablolar ve katologlar (index’ler) düzensizleşir. Çevrimiçi ve çevrimdışı bakım ile veritabanları gözden geçirilerek iyileştirmeler ve düzenlemeler yapmak mümkündür.

Çevrimiçi bakım (online maintenance) Exchange tarafından otomatik olarak gerçekleştirilir. Çevrimdışı bakım (offline maintenance) ise sistem sorumluları tarafından gerek görüldüğü durumlarda yapılır. Şimdi bu iki bakım çeşidini ayrıntılarıyla inceleyelim.

Çevrimiçi Bakım (Online Maintenance)

Exchange Server 2007 e-posta veritabanlarının çevrimiçi bakımını varsayılan olarak gece 01:00 – 05:00 arasında yapar. Bu aralığa çevrimiçi bakım aralığı (online maintenance window) denir. Belli başlı 11 görev ve çevrimiçi birleştirme (online defragmentation) işlemi bu aralıkta gerçekleştirilir.

Çevrimiçi birleştirme aralığında çalıştırılan görevler şunlardır:

  1. Katalogların temizlenmesi (Purge indexes): Veritabanlarındaki arama işlemleri için Exchange otomatik olarak katalog (index) oluşturur. Katalogların zamanla birikmesinin engellenmesi için de her oluşturulan kataloğa bir silinme zamanı (ptagIndexDeleteTime) atanır. Çevrimiçi bakım aralığında silinme zamanı o anki zamanla karşılaştırılır ve eğer uyuyorsa o katalog silinir.
  2. Silinmiş mesajların temizlenmesi (Tombstone maintenance): Bir mesaj silindiğinde bununla ilgili bir kayıt (ptagMidsetTombstones) oluşturulur. Çevrimdışı bakım aralığında bu kayıtlara sahip mesajlar temizlenir.
  3. Silinme ön belleğinin temizlenmesi (Dumpster cleanup): Kişi hesabından bir e-posta sildiğinde o mesaja bir bayrak (ptagMsgDeleted) atanır. Eğer istemcide silinen öğelerin geri getirilmesi özelliği pasifse çevrimiçi bakım aralığında bu bayrağa sahip mesajlar silinir. Eğer bu özellik aktifse kişi bu bayrağa sahip öğeleri daha sonra tekrar getirebilir. Bu öğeler için saklama süresi (retention period) dolduğunda bakım aralığındaki silinme işlemi gerçekleştirilir.
  4. Genel dizindeki süresi dolan öğelerin silinmesi (Public folder expiry for public stores): Genel dizinlerde (public folders) bulunan silinme zamanı gelmiş öğeler bu aralıkta silinir.
  5. Süresi dolan genel dizinlerin temizlenmesi (Age folder tombstone for public stores): Genel dizinler belirli periyotlarla temizlenir. Bu süre varsayılan olarak 180 gündür.
  6. Genel dizinlerdeki çakışmaların giderilmesi (Folder conflict aging for public stores): İki kullanıcı genel dizindeki bir mesaj üzerinde aynı anda düzenleme yapmaya çalıştığında çakışma meydana gelir. Bu çakışmalar çevrimiçi bakım aralığında düzeltilir.
  7. Genel dizinler için sürüm güncellemesi (Update server versions for public stores): Sistem ayar dizinlerini barındıran genel dizinlerde -gerekliyse- sürüm güncellemesi yapılır.
  8. Site dizinlerinin kontrolü (Site folder check for public folders): “Administrative Group” içerisinde yer alan site dizinlerinde eğer çiftlenme varsa bunlar giderilir.
  9. Silinen e-posta hesaplarının temizlenmesi (Cleanup deleted mailboxes for mailbox stores): Bir e-posta hesabı silindiğinde belli bir süre daha (varsayılanı 30 gündür) veritabanında tutulur. Süre dolduğunda çevrimiçi bakım aralığında silinir.
  10. Mesaj tablolarının kontrolü (Check messages table): Mesaj tabloları gözden geçilir ve herhangi bir dizine ait olmayan mesajlar temizlenir.
  11. Güvenli dizinlerin silinmesi (Cleanup secure folders for public stores): Exchange Server 5.5’de olan bu görev herhangi bir AD sitesiyle bağlantısı olmayan güvenli dizinlerin silinmesi işlemini kapsar.

Çevrimiçi bakım aralığında yukarıdaki 11 görevden en az biri gerçekleştirildikten sonra çevrimiçi birleştirme (online defragmentation) işlemi başlar. Çevrimiçi birleştirme işlemi sırasında veritabanı tablolarının bölümleri (pages) gözden geçilirilir ve mantıksal sıraya dizilirler. Yapılan işlemler sonrasında veritabanı giriş/çıkış işlem sayısı (Input/Output process) azaltılmış olur. Böylece veritabanları daha performanslı çalışacaktır.

Çevrimiçi bakım aralığı ile ilgili dikkat edilmesi gerekenleri aşağıdaki gibi sıralayabiliriz:

  • Çevrimiçi bakım e-posta trafiğinin yoğun olmadığı zamanlarda (örneğin geceleri) yapılmalıdır (Şekil 1).
  • Çevrimiçi bakım zamanlaması ayarlanırken veritabanı yedeklemesi ile çakışmamasına dikkat edilmelidir. Yedekleme ile bakım eş zamanlı yapılabilir. Ancak yedekleme ile çevrimiçi birleştirme eş zamanlı yapılamaz. Eğer birleştirme yapılırken yedekleme başlarsa birleştirme otomatik olarak askıya alınır ve yedekleme bittikten sonra devam eder.
  • Çevrimiçi birleştirme işlemi en azından 2 haftada bir yapılmalıdır. Başarılı olarak tamamlanıp tamamlanmadığı olay günlüğündeki kayıtlardan anlaşılabilir (Tablo 2).


Şekil-1: Çevrimiçi bakım aralığının belirlenmesi.

Çevrimiçi Bakım ve Çevrimiçi Birleştirme İçin Olay Günlüğü Kayıtları:

Çevrimiçi bakım ile ilgili olay günlüğü kayıtları Tablo 1’de gösterilmiştir.

Tablo 1 – Çevrimiçi bakım ile ilgili olay günlüğü kayıtları

Kayıt numarası Durum
1208 Starting the IS Maintenance tasks.
1209 The IS Maintenance tasks completed.
1210 The IS Maintenance task completed.

Çevrimiçi birleştirme ile ilgili olay günlüğü kayıtları Tablo 2’de gösterilmiştir. Bu kayıtlar takip edilerek çevrimiçi birleştirme işleminin başarılı olarak bitirilip bitirilmediği anlaşılabilir.

Tablo 2 – Çevrimiçi birleştirme ile ilgili olay günlüğü kayıtları

Kayıt numarası Durum
700 %1 (%2) %3Online defragmentation is beginning a full pass on database ‘%4’.
701 %1 (%2) %3Online defragmentation has completed a full pass on database ‘%4’.
702 %1 (%2) %3Online defragmentation is resuming its pass on database ‘%4’.
703 %1 (%2) %3Online defragmentation has completed the resumed pass on database ‘%4’.
704 %1 (%2) %3Online defragmentation of database ‘%4’ was interrupted and terminated. The next time online defragmentation is started on this database, it will resume from the point of interruption.
1221 Bu kayıt da çevrimiçi birleştirme işlemi sırasında oluşturulur ve eğer veritabanı üzerinde çevrimdışı birleştirme yapılırsa ne kadar alan kazanlılacağını görmek için kullanılabilir.

Çevrimiçi Birleştirme İle İlgili Performans Göstergeleri

Çevrimiçi birleştirme işlemi “Performance Monitor” ile takip edilebilir. Exchange Server 2007 SP1’de çevrimiçi birleştirme ile ilgili aşağıdaki performans göstergeleri bulunur:

  • MSExchange Database ==> Instances\Online Defrag Average Log Bytes
  • MSExchange Database ==> Instances \Online Defrag Log Records/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Dirtied/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Preread/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Read/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Re-Dirtied/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Referenced/sec
  • MSExchange Database ==> Instances \Online Defrag Pages Freed/Sec
  • MSExchange Database ==> Instances \Online Defrag Data Moves/Sec

Bu göstergeler arasından “Online Defrag Pages Read/sec” ve “Online Defrag Pages Freed/Sec” bakım aralığı süresince takip edilerek aralık süresinin yeterli olup olmadığı anlaşılabilir. Eğer bu göstergeler 100:1’den büyükse bakım aralığı kısaltılabilir, 50:1’den küçükse aralık büyültülebilir.

Burada şu noktaya değinmek istiyorum: Eğer bakım aralığı tüm görevleri uygulamak için yeterli gelmezse o anda üzerinde çalışılan görev not edilir ve bir sonraki bakım aralığında otomatik olarak o görevden başlanılır.

Çevrimdışı Bakım (Offline Maintenance)

Çevrimdışı bakımdan kastettiğim aslında Çevrimdışı Birleştirme (Offline Defragmentation) işlemidir. Boyutu aşırı derecede artmış veritabanlarını optimize etmek için çok işe yarayan bir işlemdir.

Çevrimdışı birleştirme komut satırından yapılır. Bu işlem e-posta veritabanlarında sıkıştırma, gereksiz alanların geri kazanımı, komşu öğelerin birleştirilmesi gibi görevleri yerine getirir.

Çevrimdışı birleştirme komutu verildiğinde:

  • tarafından yeni bir veritabanı oluşturulur.
  • Orijinal veritabanındaki tüm bilgiler buraya kopyalanır. Bu sırada boş/gereksiz tablolar kopyalanmaz. Tabloların sıra numaraları ve birbirleri arasındaki ilişkiler yeniden düzenlenir.
  • Oluşturulan bu veritabanı üzerinde birleştirme işlemi yapılır.
  • İşlem tamamlandıktan sonra orijinal veritabanı silinir.
  • Yeni veritabanının ismi orijinal veritabanının ismi ile değiştirilir (veya orijinal veritabanı silinerek yeni veritabanı onun yerine kopyalanır).

Eğer çevrimiçi birleştirme işlemi sırasında bir sorun oluşursa prosedür durdurulur ve orijinal veritabanı ile devam edilir.

Çevrimdışı birleştirme ile ilgili dikkat edilmesi gerekenleri şu şekilde sıralayabilirim:

  • Birleştirme yapılacak veritabanının olduğu yerde, veritabanının boyutunun %110’u kadar boş alan olmalıdır.
  • Çevrimdışı birleştirme zaman alan bir işlemdir. Ne kadar zaman alacağı birleştirilecek veritabanındaki veri miktarına bağlıdır. Örneğin boyutu 50 GB olan bir veritabanında gerçekte 10 GB veri bulunabilir. Boyutu 20 GB olan bir veritabanında da 10 GB veri bulunabilir. Bu durumda iki veritabanının birleştirilmesi eşit zaman alacaktır (Bir veritabanında ne kadar veri veya ne kadar boş alan olduğunu olay günlüğündeki 1221 nolu kayıtlardan anlayabiliriz).
  • Genel görüş; her 5-6 GB veri için birleştirme işleminin 1 saat alacağı yönündedir. Ancak veritabanınızın durumuna göre bu her 20 GB için yaklaşık 1 saat de olabilir.
  • Birleştirme yapılırken kopya veritabanı orijinal veritabanının olduğu yere değil de bir ağ paylaşımına alınabilir ancak bunun işlemi daha da uzatacağı unutulmamalıdır.
  • Eğer veritabanı kataloglarıyla (indexes) ilgili ESE -1018 hatası alınıyorsa çevrimdışı birleştirme işlemi yapılması mantıklıdır. Çünkü bu işlemle birlikte kataloglar yeniden düzenlenir.
  • Eseutil /p ile komutu ile bir veritabanı onarıldıktan sonra çevrimdışı birleştirme yapılması tavsiye edilir.

Bu kadar ön bilgiden sonra gelelim çevrimdışı birleştirmenin nasıl yapılacağını. Tekrar hatırlatayım; bu işlem uzun sürebilir. O yüzden işlemi gece başlatmanız uygun olacaktır.

  • Öncelikle birleştirme yapılacak veritabanının bağlantısı kesilir (dismount edilir).
  • Komut satırında (cmd) aşağıdaki komut çalıştırılır:

Eseutil /d

Örnek:

Eseutil /d c:\program files\exchange server\mailbox\veritabani01.edb

Eğer oluşturulacak kopya veritabanını farklı bir adreste tutmak isterseniz uygulamanız gereken komut şöyle olacaktır:

eseutil /d /t

  • Birleştirme işlemi tamamlandıktan sonra veritabanı bağlantısı tekrar sağlanır (mount edilir).

Çevrimdışı bakım ile ilgili ekran görüntüleri Şekil 2 ve Şekil 3’de yer almaktadır.


Şekil 2 – Çevrimdışı birleştirme başladı.


Şekil 3 – Birinci aşamada birleştirme yapıldı. İkinci aşamada ise geçici veritabanı orijinalinin üzerine yazılarak işlem tamamlandı.

Önemli: Az önce de değindiğimiz gibi çevrimdışı birleştirme yaptığınızda veritabanındaki tabloların işaret ettiği fiziksel adresler ve imzalar değişir. Bu yüzden birleştirmeden önce aldığınız yedekler birleştirmeden sonra işe yaramayacaktır! Çünkü yedeklenen değişiklik kayıtları (logs) artık yeni veritabanını tanımaz. Maalesef yedekleri geri yüklemenin bir yolu yoktur. En doğru yol; çevrimdışı yedeklemeden hemen sonra veritabanının tam yedeğini (full backup) almaktır.

Referanslar

Exchange Store Maintenance:

http://technet.microsoft.com/en-us/library/aa996226(EXCHG.65).aspx

Exchange Store and Extensible Storage Engine Tuning:

http://technet.microsoft.com/en-us/library/aa996398(EXCHG.65).aspx

Monitoring and Scheduling Exchange 2007 Database Online Maintenance:

http://www.simple-talk.com/sysadmin/exchange/monitoring-and-scheduling-exchange-2007-database-online-maintenance/

Online Maintenance Database Scanning in Exchange 2007 SP1 and SP2:

http://technet.microsoft.com/en-us/library/bb676537.aspx

How to Monitor Online Defragmentation:

http://technet.microsoft.com/en-us/library/bb691410.aspx

Eseutil /D Defragmentation Mode:

http://technet.microsoft.com/en-us/library/aa997972.aspx

How to Run Eseutil /D (Defragmentation):

http://technet.microsoft.com/en-us/library/aa998863.aspx

Is offline defragmentation considered regular Exchange maintenance?

http://msexchangeteam.com/archive/2004/07/08/177574.aspx

XADM: How to Recover Hard Disk Space from Exchange Server Databases:

http://support.microsoft.com/?id=255035

Yorum Yap

Yazar Hakkında

2008 yılında Erciyes Üniversitesi Bilgisayar Mühendisliğinden birincilikle mezun oldu. Türkiye'nin en büyük kurumlarından birisinde Mesajlaşma Sistemleri üzerine çalıştı ve halen aynı kurumda Veri Merkezi Planlama ve Mimari Yönetimi konusunda görevini sürdürmektedir. Exchange Server 2010 ve Windows Server 2008 R2 SP1 kitaplarının yazarıdır. Bu ürünler hakkında MCITP sertifikasına sahiptir. Sistem ile ilgili çalışmalarının yanı sıra 60'dan fazla web sitesinin tasarımını yapmıştır.

Yorum Yap