Exchange Server piyasaya 1996 yılında çıktı ama büyük bir gelişme kaydederek kısa zamanda dünyanın bir numaralı elektronik posta sunucu programı oldu. Türkiye’de de aynı şekilde pazar payını hızla genişletti ve bir numaraya yerleşti.
Bir eğitimci olarak Exchange Server en zevk aldığım konulardan birisi.
Eğitimlerim sırasında Exchange Server’ın verilerinin yedeklenmesi konusunda büyük sorunlar yaşadığını gördüm: Veriler ya düzgün yedeklenmiyor ya da düzenli yedek alınıyor ama bir hata durumunda yedekler geri yüklenemiyor.
Oysa çok basit işlemler ile Exchange Server’ın verilerini yedekleyebilir ve bir hata ya da felaket durumunda yedeklerimizi geri yükleyebiliriz. Bu basit işlemleri bu yazıda bulacaksınız.
Exchange Server’ın verileri üç dosyada saklanır:
1) DIR.EDB: Bu dosya Exchange Server’da tanımlanan posta kutularının, dağıtım listelerinin, özel alıcıların, ortak klasörlerin, konnektörlerin vb. nesnelerin kimlik bilgilerinin saklandığı yerdir.
2) PRIV.EDB: Bu dosya kimlik bilgileri DIR.EDB bulunan nesnelere (ortak klasörler hariç) gelen giden postaların saklandığı yerdir.
3) PUB.EDB: Bu dosya kimlik bilgileri DIR.EDB bulunan ortak klasörlere gelen giden postaların saklandığı yerdir.
Yukarda saydığımız dosyalardan DIR.EDB dosyası exchsrvrdsadata klasöründe, diğer iki dosya ise exchsrvrmdbdata klasöründe bulunurlar.
Exchange Server veri bütünlüğüne büyük önem verdiği için yukardaki dosyaların yanısıra çok sayıda log dosyası da bulunur. Log dosyaları veritabanı üzerinde yapılan işlemleri gösterir.
Exchange Server’ın offline yedeklenmesi yukarda saydığımız üç dosyanın kopyalanmasından oluşur. Log dosyalarını yedeklemeye gerek yok.
Offline yedekleme dediğimize dikkat edin. Bu sözcük ile yedeklemeden önce Exchange Server’ı durdurmamız gerektiğini anlatıyoruz.
Exchange Server’ı durdurup bu üç dosyayı güvenli bir yere kopyaladıktan sonra Exchange Server servislerini tekrar başlatarak Exchange Server’ı online duruma getirebiliriz.
Dosyaları kopyalayacağımız güvenli yer manyetik bant kartuşu olabileceği gibi ağ üzerinde bulunan başka bir bilgisayarın uygun büyüklükteki bir diski de olabilir. Bu ikinci seçenek yedeklemenin daha hızlı gerçekleşmesini de sağlar.
Yedeklemeyi düzenli bir şekilde yapabilmek için bir toplu iş dosyası (batch file) yaratabiliriz. Toplu iş dosyamızda yer alan komutlarla önce Exchange Server hizmetlerini durduracağız, sonra dosyaları kopyalacağız, en son olarak da Exchange Server hizmetlerini tekrar çalıştıracağız.
Bu toplu iş dosyasında Exchange Server’ın hizmetlerini durdurmak için Net Stop komutunu, başlatmak için de Net Start komutunu kullanabiliriz. Örnek olarak yedekle.bat adındaki bir dosya ile Exchange Server verilerini K: sürücüsündeki Yedek klasörüne kopyalayalım.
Yedekle.bat
REM Hizmetler durduruluyor
Net Stop “Microsoft Exchange Internet Mail Service”
Net Stop “Microsoft Exchange Event Service”
Net Stop “Microsoft Exchange Message Transfer Agent”
Net Stop “Microsoft Exchange Information Store”
Net Stop “Microsoft Exchange Directory”
Net Stop “Microsoft Exchange System Attendant”
REM Dosyalar kopyalanıyor
Copy c:exchsrvrdsadatadir.edb k:yedek
Copy c:exchsrvrmdbdatapriv.edb k:yedek
Copy c:exchsrvrmdbdatapub.edb k:yedek
REM Hizmetler yeniden başlatılıyor
Net Start “Microsoft Exchange System Attendant”
Net Start “Microsoft Exchange Directory”
Net Start “Microsoft Exchange Information Store”
Net Start “Microsoft Exchange Message Transfer Agent”
Net Start “Microsoft Exchange Event Service”
Net Start “Microsoft Exchange Internet Mail Service”
NT’nin AT komutunu kullanarak yedekleme işlemini belirli zamanlarda otomatik olarak yaptırabiliriz. AT komutunun çalışması için Control Panel’den Services’dan Scheduler ya da Task Scheduler hizmetinin çalışır durumda olması gerektiğini unutmayalım.
Yedekleme saati olarak sabah saatlerini seçersek Exchange Server’ın durdurulması kullanıcıları çok etkilemeyecektir. Örnek olarak MAILSERVER adındaki bir Exchange Server bilgisayarında hergün saat üçte, yukarda oluşturduğumuz yedekle.bat’ın çalıştırılmasını sağlayalım:
AT 03:00 MAILSERVER yedekle.bat
Geri Yükleme
Yukardaki işlemlerle Exchange Server’ın offline olarak yedeklemesini sağladık. Peki, geri yüklemeyi nasıl yapacağız? Hatta durumu biraz daha abartalım; Exchange Server yüklü makina yok oldu. Ne yapmam gerekiyor?
Yedeklerimiz sağlam bir şekilde duruyorsa kaygılanmaya gerek yok. Geri dönüş de kolay bir şekilde sağlanabilir. Yeni bir makinaya NT’yi kurar aşağıdaki gibi de Exchange Server verilerini yedekten geri yükleriz.
Geri dönüş için dikkat etmemiz gereken şeyler var:
1) Yeni kurulacak makinanın adı eskisiyle aynı olmalı.
2) Yeni makinanın IP adresi eskisiyle aynı olmalı ya da DNS sunucularda posta sunucusu olarak yeni makinanın IP adresi girilmeli.
3) Etki alanı (domain) yapısı korunmalı. Burası önemli. Eski etki alanını muhakkak korumalısınız. Yeni bir etki alanı kurup buna eski etki alanının adını vermek çözüm değil. Çünkü adı aynı bile olsa yeni etki alanı farklı bir SID (Security ID)’e sahip olacaktır. Bu da geri yüklemeyi olanaksız hale getirir.
Yukardaki kısıtlara dikkat ederek bir makinaya NT kurduktan sonra şu işlemleri yapacağız:
1) Exchange Server’ı kuracağız. Kurarken Exchange organizasyon adı, site adı ve kullanılan hizmet hesabı (service account) eski kurulumla aynı olmalı
2) Bir önceki kurulumda Internet Mail Service yüklenmişse, haber grubu beslemesi (newsfeed) tanımlanmışsa bu aşamada yeni kuruluma da bunları yüklüyeceğiz. Internet Mail Service bir konnektördür ve ona ilişkin bilgi Exchange Server’ın dizininde (directory) sakladır. Eğer bu hizmeti bu aşamada yüklemezsek biraz sonra offline restore işlemini gerçekleştirdiğimizde, konnektöre ait bilgi dizinde yer alırken konnektöre ait dosyaların hiçbiri yüklenmemiş olacak, bu da hataya yol açacaktır.
3) Exchange Server durdurulacak (artık nasıl yapıldığını biliyoruz, değil mi?).
4) Yedek klasöründe sakladığımız üç adet veritabanı dosyasını (DIR.EDB, PRIV.EDB ve PUB.EDB) yerlerine kopyalayacağız.
5) exchsrvrdsadata altındaki log uzantılı dosyalar silinecek. Bu dosyalar şu andaki DIR.EDB dosyasına ilişkin dosyalar. Halbuki biz eski bir DIR.EDB yüklüdeik. Dolayısıyla da veritabanı dosyası ile log dosyaları uyuşmayacak. Silmemizin nedeni bu. “Peki, log dosyasız nasıl çalışacağız?” diye sorarsanız yanıtı basit: Bu dosyaların olmadığı anlaşılınca yeni log dosyaları yaratılıyor. Sorun yok.
6) Control Panel’deki Services uygulaması içinden önce “Microsoft Exchange System Attendant” hizmeti sonra da “Microsoft Exchange Directory” hizmeti başlatılacak.
7) Komut satırına inilecek, exchsrvrin klasörüne geçilecek. Orada şu komut verilecek:
ISINTEG –PATCH
ISINTEG komutunun açıklamasına bakarsanız bir offline restore işleminden sonra bu komutun verilmesi gerektiğini görürsünüz. Biz de bunu yaptık.
8) Şimdi sırasıyla diğer Exchange Server hizmetlerini çalıştırıp Exchange Server’ı faaliyete geçirebiliriz.
Yukarda açıkladığım yöntem çalışan ve işgören bir yöntem. Basit olduğunu da düşünüyorum ama açıklamalardan anlayabileceğiniz gibi bir sürü şeyi belli bir sırayla yapmanız gerekiyor. Bu yöntemin bir de bariz dezavantajı var: Yedekleme yaparken Exchange Server’ın durdurulması. Her ne kadar bu işlemi gece yarısına atarak etkilerini minimuma indirmeye çalışıyorsak da yoğun e-posta alışverişi yapan yerler için gerçek bir dezavantaj bu. Peki, ne yapacağız? Bu türlü durumlarda daha profesyonel çözümlere gideceğiz.