Merhabalar,
Bu makalede, exchange sunucu üzerinde database lokasyonunu değiştirme durumu oluşturacak senaryolardan bahsetmek istiyorum.
Exchange sunucunuza ait Database’lerin bulunduğu diskte yer azalması gibi durumlarda, log dosyaları ile Database’in yerini değiştirip başka bir diske taşımanız gerekebilir. Bazen yedekler sağlıklı şekilde alınamayabilir ya da yedekleme job ları fazla ise uzun süre bekleme dolayısıyla time out olup hatalı sonlandırılabilir. Dolayısıyla transaction loglar silinemez. Bu da database’lerin üzerinde çalıştığı diskin kapasitesini doldurabilir. Sonucunda da DB’ler dismount olur ve sistem çalışmaz hale gelir.
Sanallaştırma teknolojisinin esnek ve bir güzel yanı da burada ortaya çıkmakta. Acilen müdahale etmek için sanallaştırma platformundan, exchange sanal makinenizin disk kapasitesini arttırıp, exchange sunucu işletim sistemi altından da işletim sistemi diskini genişletirseniz, databaseler yeniden mount edilebilecektir. Fakat sağlıklı yedek alınıp bu loglar silinmediği sürece de bu risk devam etmiş olur. Burada öncelikle sistemi çalışır hale getirmek, sonra da sağlıklı yedek aldırarak bu logların silinmesi ve disk kapasitesinin düşürülmesi gereklidir.
Başka bir senaryo düşünelim. Örneğin disk boyutlarınız 2 TB sınırına ulaştı ve disk arttırmak istediniz… Eğer bu disk MBR formatlıysa (ki default olarak birçok kişi buna dikkat etmez), sanal disk boyutunu arttırsanız da işletim sistemi içinden bu diskin boyutunu 2 TB üstüne çıkartamazsınız. Bu durumda ne yapacaksınız? Çeşitli MBR to GPT komutları ya da araçları vardır elbette ama veri kaybı riski ya da yanlış işlem durumunda daha fazla riskli durum olacağı için pek önermiyorum.
Bu durumda hemen yeni bir disk ekleyip, Database’leri taşıyarak dolan diskte yer açmak en mantıklı yol olacaktır.
Siz sunucunuza hemen başka bir disk ekleyip işletim sistemi içinden formatladığınızı varsayalım. Sonra da exchange DB sunucunuz üzerinde Exchange Management Shell’i Run as Administrator olarak çalıştırıp aşağıdaki komutları kendinize göre uyarlayarak DB taşıma yapabilirsiniz.
1.Yöntem : Komut satırından Database ve Log dizinlerinin taşınması
Mesela taşıyacağımız yeni lokasyon E diski üzerinde olsun, o zaman aşağıdaki komuta göre uyarlamanız gerekecektir. Exchange Management Shell açarak aşağıdaki komutu uygulayalım.
Move-Databasepath “Database adı” –EdbFilepath “E:\Exchange\Yeni Database\DBAdı.edb” -LogFolderpath “E:\Exchange\Yeni Database”
Bu komutu kendi yapınıza göre düzenleyip uygulamanız gerekmektedir. Benim yapımdaki kullanım şekli aşağıdaki gibi oldu.
Öncelikle şu komut ile DB listesini ve o anki kapasitelerinin listesine bakalım.
Get-MailboxDatabase -Status | select ServerName,Name,DatabaseSize
Ve ardından taşımak istediğim DB için ilgili komutu yazıyorum.
Move-DatabasePath DB4-1 -EdbFilePath E:\MailBoxDB\DB4-1\DB4-1.edb -LogFolderPath E:\MailBoxDB\DB4-1
İlk soru taşıma yapmak istediğimizden emin olup olmadığımızı soruyor. Y ile geçiyoruz.
İkinci soru ise taşıma süresince DB dismount durumda olacağına ve erişim olmayacağına dair bilgilendirme yaparak emin olup olmadığımızı soruyor. Y ile geçiyoruz.
Ve taşıma başlamış olur. Aşağıda da taşıma sırasında DB dismounted durumda olduğu görülmekte. İşlem bittiğinde otomatik olarak mounted duruma geçecektir.
Burada unutmamanız gereken şey şudur : Eğer dismount olan database üzerinde, kullanıcı mailbox’ları varsa, database dismount olduğu için bu kullanıcıların mail akışı duracaktır. Böyle bir işlem öncesinde belki bu kullanıcı mailbox’larını başka database üzerine taşımayı değerlendirebilirsiniz.
2. Yöntem : Grafik arayüzden taşıma
Diğer bir yol ise grafik arayüzden taşıma yapmaktır. Exchange Management Console açıp Organization Configuration altında mailbox seçilerek ilgili mailbox database’e sağ tıklanır. Move database path seçilir ve yeni lokasyonu tanımlanır.
Taşımak istediğimiz yeni diski tanımlıyoruz ve Move seçiyoruz. Ben bu database’i E diskine değil de G diskine taşıyacağım.
Taşıma işlemi başlamış oluyor.
Taşıma işleminden sonra, eski lokasyondaki DB klasörünü silmeye çalıştığımızda dosyanın kullanıldığına dair uyarı verebilir ve klasörü silemeyebilirsiniz. İçeriğine baktığınızda Catalog klasörünün durduğunu ve hala kullanıldığını göreceksiniz. Exchange sunucunun Exchange Search Indexing servisini stop edip bu DB klasörünü silebilirsiniz. Silme işlemi sonrası yeniden servisi çalıştırmalısınız. Böylece eski lokasyondaki tüm bilgileri kalıcı olarak temizlemiş olursunuz.
Ayrıca bu yöntemi diğer exchange sunucu versiyonları için de kullanabilirsiniz.
Yararlı olması dileğiyle.
Yusuf İşleyen