Exchange Server 2016 Kurulum ve Yapılandırma – Bölüm 4
Mailbox Database Oluşturma ve Taşıma İşlemleri
Merhaba, Exchange Server 2016 yazı serimizin 4. bölümünde, kurulum sonrası yapılması gereken önemli adımlardan biri olan farklı disk bölümleri üzerinde mailbox database oluşturma ve mevcut mailbox hesaplarının bu database’e taşınması işlemlerini detaylıca ele alacağız. Bu adımlar, hem performansı optimize etmek hem de veri güvenliğini sağlamak için oldukça kritik bir öneme sahiptir.
Hatırladığınız üzere, Exchange Server kurulumu sırasında Database ve Log dosyaları için farklı disk alanları ayırmıştık. Bu, hem performans hem de güvenlik açısından oldukça önemli bir adımdır. Varsayılan kurulumlarda, bu dosyalar Program Files dizini altında tutulur ve burada biriken log dosyalarının veya büyüyen veritabanı boyutunun, işletim sisteminin yüklü olduğu disk alanını doldurması olasıdır. Böyle bir durumda, sunucu erişilemez hale gelebilir ve hizmet kesintileri yaşanabilir. Bu riskleri en aza indirmek için Database ve Log dosyalarının ayrı disk bölümlerine taşınması, Exchange Server yönetiminde kritik bir önlem olarak karşımıza çıkmaktadır.
ECP paneline giriş yaptıktan sonra, Servers bölümünde bulunan Databases sekmesine geçtiğinizde, Exchange Server kurulumuyla birlikte varsayılan olarak oluşturulmuş olan Mailbox Database‘ini görebilirsiniz. Bu veritabanı, kurulum sırasında belirlenen varsayılan ayarlara göre oluşturulmuştur ve tüm yeni kullanıcı posta kutuları başlangıçta bu veritabanında barındırılır.

Exchange Management Shell üzerinden aşağıdaki komut ile varsayılan Mailbox Database‘e ait detayları görüntüleyebilirsiniz:
Get-MailboxDatabase -Status | Format-List Name, Server, Mounted, EdbFilePath, LogFolderPathBu komutu çalıştırarak, mevcut Mailbox Database hakkında detaylı bilgilere erişebilirsiniz. Özellikle, veritabanı dosyasının (EdbFilePath) ve log dosyalarının (LogFolderPath) varsayılan olarak C:\Program Files\Microsoft\Exchange Server\V15 dizini altında oluşturulduğunu görebilirsiniz. Bu bilgiler, veritabanı ve log dosyalarını daha güvenli ve performanslı bir disk bölümüne taşıma planlaması yaparken oldukça faydalı olacaktır. Bu nedenle, önce yeni bir mailbox database oluşturmamız gerekecektir. Ardından, varsayılan olarak gelen mailbox database üzerindeki mailboxları yeni oluşturacağımız mailbox database üzerine taşıyacağız.

Mailbox Database Oluşturma
Yeni bir Mailbox Database oluşturmak için, Servers sekmesindeki Databases bölümüne gidip + butonuna tıklayarak işlemi başlatabilirsiniz. Açılan pencerede, veritabanı için bir isim belirleyin ve barındırılacağı sunucuyu seçin. Daha sonra, veritabanı dosyalarının saklanacağı dizini Database File Path kısmında, log dosyalarının saklanacağı dizini ise Log Folder Path kısmında tanımlayın. Örneğin, veritabanı dosyalarını D: sürücüsünde, log dosyalarını ise E: sürücüsünde saklamak için uygun klasör yapısını önceden oluşturabilirsiniz. Ayrıca, Mount this database seçeneğini işaretleyerek oluşturulan veritabanının aktif hale gelmesini sağlayabilirsiniz. Tüm bu bilgileri girdikten sonra, işlemi tamamlamak için OK butonuna tıklayın.

Mailbox Database oluşturma işlemi tamamlandıktan sonra, Exchange Server tarafından Microsoft Exchange Information Store servisinin yeniden başlatılması gerektiğine dair bir uyarı alırsınız. Bu uyarıyı dikkate alarak, ilgili servisi yeniden başlattıktan sonra veritabanınızı sorunsuz bir şekilde kullanmaya başlayabilirsiniz.

Database sekmesine döndüğümüzde, MAILDB adında bir veritabanının başarıyla oluşturulduğunu ve Mounted (Aktif) durumda olduğunu görebiliriz. Bu durum, veritabanının sorunsuz bir şekilde sunucuya bağlandığını ve kullanılabilir olduğunu gösterir.

MAILDB veritabanına ait detaylı bilgilere PowerShell komutuyla aşağıdaki gibi erişebilirsiniz:

Mailbox Database Silme
Exchange Server 2016’da varsayılan mailbox database’ini silmeye çalıştığınızda “This mailbox contains one or more mailboxes” gibi bir hata mesajı alırsınız. Bu hata mesajı, silmeye çalıştığınız veritabanının içinde aktif mailbox’lar olduğu için silinemez olduğuna işaret eder. Veritabanını silmeden önce, o veritabanında barındırılan tüm mailbox’ların başka bir veritabanına taşınması gerekir.
Karşılaştığımız bu hatada yalnızca kullanıcı mailbox’ları değil, aynı zamanda sistem mailbox’ları (örneğin, Arbitration, Public Folder, AuditLog, Monitoring, Archive gibi) da bulunabilir. Bu tür sistem mailbox’ları, Exchange Server’ın düzgün çalışabilmesi için gereklidir ve bunları silmeniz mümkün değildir. Bu nedenle bu mailbox’ları da yeni oluşturduğumuz MAILDB mailbox database’ine taşımamız gerekmektedir.

Database’ler arası Mailbox taşıma işlemi şu şekilde yapılır;
Exchange Management Shell uygulamasını yönetici olarak çalıştırdıktan sonra, aşağıdaki komut ile veritabanı üzerinde ne kadar mailbox hesabı olduğunu öğrenebilirsiniz:
Get-Mailbox -Database "Mailbox Database 1105811898"Ardından, bu komut ile mevcut mailbox hesaplarını yeni oluşturduğunuz mailbox veritabanına taşıma işlemini başlatabilirsiniz:
Get-Mailbox -Database "Mailbox Database 1105811898" | New-MoveRequest -TargetDatabase "MAILDB"Bu işlem ile yalnızca kullanıcı mailbox hesaplarını taşıyabilirsiniz. Bunun dışında, arbitration, monitoring, auditlog ve varsa public folder ve archive mailbox’larını da ayrı ayrı taşımamız gerekmektedir..

Arbitration Mailboxes: Bu mailboxlar, e-posta akışını yöneten ve onaylayan sistem işlemleri için gereklidir.
Get-Mailbox -Database "Mailbox Database 1105811898" -Arbitration | New-MoveRequest -TargetDatabase "MAILDB"
Monitoring Mailboxes: Exchange’in izleme ve raporlama süreçlerinde kullanılan posta kutuları olan izleme mailbox’larının taşınmasını tavsiye etmiyorum. Eğer bu posta kutularını taşırsanız, posta kutusu veritabanı silindiğinde olay günlüklerinde tekrarlanan uyarılarla karşılaşabilirsiniz. Ayrıca, sağlık posta kutuları bozulabilir ve izleme işlemleri düzgün çalışmayabilir. Bu nedenle, izleme posta kutusunu devre dışı bırakmak, daha sorunsuz bir yönetim sağlar ve sistemin sağlığını korur.
Aşağıdaki PowerShell komutu ile varsayılan veritabanındaki monitoring mailbox hesaplarına ulaşabilirsiniz:
Get-Mailbox -Database "Mailbox Database 1105811898" -Monitoring Varsayılan veritabanındaki monitoring mailbox’ları disable yaptıktan sonra tekrar sorguladığımızda, monitoring mailbox hesaplarının boş geldiğini görüyoruz. Monitoring mailbox’ları devre dışı bırakıldığında, veritabanından silinmeden gizli hale gelir. Yeni oluşturduğumuz MAILDB veritabanında bu hesaplar otomatik olarak oluşturulacaktır
Get-Mailbox -Database "Mailbox Database 1105811898" -Monitoring | Disable-Mailbox -Confirm:$false
Fakat yine de bu monitoring mailbox’ları taşımanız gereken bir durum olursa, aşağıdaki PowerShell komutunu kullanarak taşıma işlemini gerçekleştirebilirsiniz.
Get-Mailbox -Database "Mailbox Database 1105811898" -Monitoring | New-MoveRequest -TargetDatabase "MAILDB"
AuditLog Mailboxes: Exchange Server’ın denetim günlüklerini tutan mailboxlardır.
Get-Mailbox -Database "Mailbox Database 1105811898" -AuditLog | New-MoveRequest -TargetDatabase "MAILDB"
Public Folder Mailboxes ve Archive Mailboxes henüz yapılandırılmadığı için, sorgulama yapıldığında hiçbir mailbox hesabına erişilemiyor.

Ancak, bu mailbox’lar var olduğunda taşımak için kullanılacak komutlar aşağıdaki gibi olacaktır.
Public Folder Mailboxes: Eğer organizasyonunuzda public folder kullanılıyorsa, bu mailboxları da taşımanız gerekir. İlk kurulumda public folder yapılandırılmadığı için boş gelecektir.
Get-Mailbox -Database "Mailbox Database 1105811898" -PublicFolder | New-MoveRequest -TargetDatabase "MAILDB"Archive Mailboxes: Kullanıcıların arşivlerini taşıma işlemi de gerektiğinde yapılabilir. İlk kurulumda archive mailbox özelliği yapılandırılmadığı için boş gelecektir.
Get-Mailbox -Database "Mailbox Database 1105811898" -Archive | New-MoveRequest -TargetDatabase "MAILDB"Her bir mailbox türü için ayrı ayrı taşıma işlemini yaparak, tüm mailbox verilerinizi yeni veritabanına taşımış olursunuz.
Taşıma işleminin tamamlanıp tamamlanmadığını anlamak için aşağıdaki komutu kullanabilirsiniz. Bu komut sayesinde Exchange Server’daki taşıma işlemleri ile ilgili ayrıntılı bilgileri görüntüleyebilirsiniz. Bu komut, her bir taşıma işleminin durumunu ve ilerleme oranını gösterir. Eğer taşıma işlemi başarılı bir şekilde tamamlandıysa, StatusDetail sütununda “Completed” ifadesini görebilirsiniz.
Get-MoveRequest | Get-MoveRequestStatistics
Taşıma işlemi tamamlandıktan sonra taşıma isteklerinin silinmesi gerekmektedir. Çünkü taşınan posta kutularına ait taşıma talepleri, işlem tamamlandığı halde Exchange sisteminde yer alabilir ve gereksiz veri birikmesine yol açabilir. Ayrıca, bu tamamlanmış taşımalarla ilgili kayıtların devam etmesi, posta kutusu taşıma işlemlerinin düzgün şekilde sonlandırılmadığı izlenimini oluşturabilir. Bu nedenle, taşıma taleplerini temizlemek, sistemin verimli çalışmasını ve yönetimsel karmaşanın önlenmesini sağlar. Taşıma taleplerini temizlemek için aşağıdaki PowerShell komutunu kullanabilirsiniz.
Get-MoveRequest -MoveStatus Completed -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false
Tüm mailbox hesaplarını taşıdıktan sonra, varsayılan mailbox veritabanını tekrar silmeye çalıştığınızda işlem başarılı bir şekilde tamamlanır. Ancak, eski veritabanı dosyalarının manuel olarak silinmesi gerektiği konusunda bir uyarı alırsınız. Bu adımdan sonra, eski veritabanı dosyalarını temizlemek için “C:\Program Files\Microsoft\Exchange\v15\MailBox” klasörüne giderek eski mailbox database klasörünü silebilirsiniz. Bu işlem, gereksiz dosyaların sistemden temizlenmesini sağlar ve sunucunun disk alanının verimli kullanılmasına yardımcı olur.

Buraya kadar, Exchange Server 2016’nın Mailbox Database yapılandırmalarını tamamladık ve database ile log dosyalarını farklı bir disk üzerine taşıdık. Bir sonraki adımda, Exchange Server 2016 için gerekli olan kurulum sonrası konfigürasyonlara geçeceğiz.
Paylaş