- iki adet Database oluşturmak
- Database özelliklerini düzenlemek
- Database adını değiştirmek
- Database başka diske taşımak
- Database stabdart 1tb boyutunu 2Tb yapmak
- Database içindeki mailleri başka bir database taşımak
- Database silmek
- Log dosyalarının diski doldurmaması için otomatik silinmesi
- DB'nin kendi kendini temizleme (Online Defragmentation) saatlerini ayarlama.
1. Temel Kontrol (Hangi DB Nerede Aktif?)
Tüm veritabanlarını ve o an hangi sunucuda bağlı (mounted) olduklarını listelemek için şu komutu kullanın:
PowerShell
Get-MailboxDatabase -Status | Select-Object Name, Server, Mounted
Name: Veritabanının adı (Hala default isimdeyse o uzun rakamlar).
Server: Veritabanının o an aktif olarak çalıştığı sunucu.
Mounted:
Trueise o sunucuda hizmet veriyor demektir.
2. Detaylı DAG Kopya Durumu (En Sağlıklı Görünüm)
Sizin için en öğretici komut budur; çünkü sadece aktif olanı değil, pasif kopyaların sağlığını da gösterir:
PowerShell
Get-MailboxDatabaseCopyStatus -Identity *
Status = Mounted: Bu satırdaki sunucu, veritabanının o anki aktif sahibidir.
Status = Healthy: Bu satırdaki sunucu, veritabanının yedek (pasif) kopyasını barındırır.
DB adını ecp panelden ve edb adını değiştirmek
Her zaman "isimlendirme, dökümantasyonun temelidir" . belirlediğimiz Merkez ve Fabrika lokasyon stratejisine göre, kafa karıştıran o varsayılan (default) isimlerden kurtulalım.
Hem ECP (Exchange Admin Center) panelinde görünen mantıksal ismi hem de diskteki fiziksel .edb dosya adını eşitlemek için izleyeceğimiz en güvenli rota şudur:
1. Önerilen Standart İsimlendirme Tablosu
| Mevcut (Default) İsim | Yeni Mantıksal İsim (ECP) | Yeni Dosya Adı (.edb) | Birincil Sunucu (Active) |
|---|---|---|---|
| Mailbox Database 177... | DB_MERKEZ_01 | DB_MERKEZ_01.edb |
EXCHANGE (Merkez) |
| Mailbox Database 065... | DB_FABRIKA_01 | DB_FABRIKA_01.edb |
EXCHANGE2 (Fabrika) |
2. Uygulama Adımları (Teknik Prosedür)
DAG yapısı aktif olduğu için dosya ismini değiştirmek "canlı cerrahi" gibidir. Şu sırayı takip etmeliyiz:
Adım A: Pasif Kopyaları Kaldırma
DAG açıkken dosya yolu değiştirilemez. Önce EXCHANGE2 üzerindeki kopyayı (veya tersi) kaldırmalısınız.
- ECP: Databases > DB seç > Sağdaki "Remove" (Pasif kopya için).
Adım B: Mantıksal ve Fiziksel İsim Değişikliği
Exchange Management Shell (EMS) üzerinden şu komutları sırayla çalıştırın (Örnek Merkez DB için):
İsmi Değiştirin:
Get-MailboxDatabase "Mailbox Database 1773237686" | Set-MailboxDatabase -Name "DB_MERKEZ_01"Veritabanını Ayırın (Dismount):
Dismount-Database "DB_MERKEZ_01" -Confirm:$falseEDB Dosya Adını ve Yolunu Eşitleyin:
Move-DatabasePath "DB_MERKEZ_01" -EdbFilePath "C:\ExchangeDatabases\DB_MERKEZ_01\DB_MERKEZ_01.edb"(Bu komut dosyayı fiziksel olarak da adlandırır ve taşır).
Tekrar Bağlayın:
Mount-Database "DB_MERKEZ_01"
Adım C: DAG Kopyasını Tekrar Oluşturma
İsimler eşitlendikten sonra, yüksek erişilebilirliği tekrar aktif edin:
Add-MailboxDatabaseCopy -Identity "DB_MERKEZ_01" -MailboxServer EXCHANGE2 -ActivationPreference 2
aynı işlemi fabrika db içinde yapalım
her zaman "bir işi bir kere yap, tam yap" . Merkez veritabanı için hazırladığımız o temiz yapıyı şimdi Fabrika (EXCHANGE2) tarafındaki veritabanı için de uygulayalım.
Fabrika lokasyonundaki kullanıcıların ana evi olacak olan DB_FABRIKA_01 için izlemeniz gereken tam PowerShell (EMS) rotası şudur:
1. Fabrika Veritabanı İsimlendirme ve Yapılandırma Tablosu
| Mevcut (Default) İsim | Yeni Mantıksal İsim (ECP) | Yeni Dosya Adı (.edb) | Birincil Sunucu (Active) |
|---|---|---|---|
| Mailbox Database 0651986762 | DB_FABRIKA_01 | DB_FABRIKA_01.edb |
EXCHANGE2 (Fabrika) |
2. Uygulama Adımları (Adım Adım Kodlar)
Bu işlemi yaparken EXCHANGE (Merkez) üzerindeki pasif kopyanın kaldırılmış olduğundan emin olun.
Adım A: Mantıksal İsmi Güncelleyin
PowerShell
Get-MailboxDatabase "Mailbox Database 0651986762" | Set-MailboxDatabase -Name "DB_FABRIKA_01"
Adım B: Veritabanını Ayırın (Dismount)
Not: Bu işlem sırasında fabrika sunucusunda mailbox'ı olan kullanıcıların bağlantısı kısa süreliğine kesilecektir.
PowerShell
Dismount-Database "DB_FABRIKA_01" -Confirm:$false
Adım C: Dosya Yolunu ve İsmini Eşitleyin
Bu komut dosyayı fiziksel olarak da adlandırır ve taşıyarak profesyonel bir düzen sağlar.
PowerShell
Move-DatabasePath "DB_FABRIKA_01" -EdbFilePath "C:\ExchangeDatabases\DB_FABRIKA_01\DB_FABRIKA_01.edb"
Adım D: Veritabanını Tekrar Bağlayın (Mount)
PowerShell
Mount-Database "DB_FABRIKA_01"
Adım E: DAG Kopyasını (Merkez Sunucusuna) Ekleyin
PowerShell
Add-MailboxDatabaseCopy -Identity "DB_FABRIKA_01" -MailboxServer EXCHANGE -ActivationPreference 2
Teknik Tavsiyem
her iki veritabanı da artık temiz isimlere sahip olduktan sonra, bir defaya mahsus Get-MailboxDatabaseCopyStatus -Identity * komutuyla her şeyin "Healthy" (Sağlıklı) ve "Mounted" (Bağlı) olduğunu teyit edin.
Teknik Tavsiyem
bu işlem sırasında veritabanı "Dismount" edileceği için o DB içindeki kullanıcılar kısa bir süre mail erişimi sağlayamazlar. Bu yüzden mesai saati dışında yapmanız veya dökümantasyonunuzda bir "bakım penceresi" (maintenance window) tanımlamanız ISO 27001 süreçleri için çok daha şık duracaktır.
Database ve Log dosyalarını ayrı ayrı disklerde duracak şekilde ayarlamak
her zaman "hata mesajları, sistemin güvenliğini koruyan bariyerlerdir"
1. Hata Teşhisleri
Hata 1 (Root Directory): "Exchange can't store database (.edb) files in the root directory." Exchange, güvenlik ve dosya sistemi yönetimi gereği
.edbdosyasının direktK:\kök dizininde durmasına izin vermez; mutlaka bir alt klasör (Örn:K:\DB_MERKEZ_01\) içinde olmalıdır.Hata 2 (Replicated Databases): "Move-DatabasePath is not allowed for replicated databases." DAG yapısı aktifken ve veritabanının pasif kopyaları varken fiziksel yol değiştirilemez; çünkü diğer sunucu (EXCHANGE2) hala eski yolu aramaya devam edecektir.
2. Çözüm: Adım Adım Güvenli Taşıma Prosedürü
Bu hataları gidermek ve dosyalarınızı K: ile L: sürücülerine taşımak için şu sırayı takip etmelisiniz:
Pasif Kopyayı Kaldırın:
Önce
EXCHANGE2üzerindeki kopyayı silmelisiniz. (EMS:Remove-MailboxDatabaseCopy -Identity "DB_MERKEZ_01\EXCHANGE2").Klasörlü Yol ile Taşıma Komutunu Ateşleyin:
Fiziksel klasörleri de içerecek şekilde komutu şu haliyle çalıştırın (Exchange klasörleri otomatik oluşturacaktır):
PowerShell
Move-DatabasePath -Identity "DB_MERKEZ_01" -EdbFilePath "K:\DB_MERKEZ_01\DB_MERKEZ_01.edb" -LogFolderPath "L:\Merkez1"Kopyayı Tekrar Ekleyin:
Taşıma bittikten sonra yüksek erişilebilirliği geri getirin:
PowerShell
Add-MailboxDatabaseCopy -Identity "DB_MERKEZ_01" -MailboxServer EXCHANGE2 -ActivationPreference 2
Teknik Tavsiyem (Mimarın Gözüyle)
Taşıma bittikten sonra Get-MailboxDatabase -Status | FL *Path* komutuyla her şeyin tam istediğiniz gibi K: ve L: üzerinde olduğunu teyit edin. Bu işlem bittiğinde, C: sürücünüzdeki o yoğun I/O yükünün kalktığını ve sistemin daha stabil tepki verdiğini Proxmox üzerinden göreceksiniz.
Database Ayarları
Database stabdart 1tb boyutunu 2Tb yapmak
her zaman "sistemin sınırlarını önceden belirle". Exchange Server 2019 Standard Edition sürümünde veritabanı boyutu varsayılan olarak 1024 GB (1 TB) ile sınırlandırılmıştır. Bu sınıra yaklaştığınızda veritabanı kendiliğinden "Dismount" olur ve hizmet kesintisi yaşanır.
Bu sınırı 2 TB (2048 GB) seviyesine çıkarmak için Kayıt Defteri (Registry) üzerinde şu değişikliği yapmalısınız:
1. Kayıt Defteri (Registry) Düzenlemesi
Her iki Exchange sunucunuzda (EXCHANGE ve EXCHANGE2) şu adımları izleyin:
Regedit'i yönetici olarak açın.
Şu yola gidin:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS<Server Name>\Private-<database GUID>
- Not: kısmında ismini değiştirdiğimiz veritabanının kimliğini görmelisiniz.
- Burada
Database Size Limit in GBadında yeni bir DWORD (32-bit) değeri oluşturun (varsa düzenleyin). - Değer verisini Decimal (Ondalık) tabanında 2048 olarak girin.
2. Değişikliğin Devreye Alınması
Kayıt defteri ayarının aktif olması için Microsoft Exchange Information Store servisini yeniden başlatmanız veya veritabanını ayırıp tekrar bağlamanız (Dismount / Mount) gerekir.
Database içindeki mail kutularını başka bir database taşımak
sistemin sadece donanımsal değil, verisel olarak da dengeli (load balanced) olması gerekli. Veritabanlarını lokasyon bazlı (Merkez/Fabrika) olarak ayırdığımıza göre, şimdi kullanıcıları ilgili veritabanlarına taşıma ve bu süreci izleme vaktidir.
Exchange dünyasında bu işleme "Mailbox Move Request" diyoruz
- Veritabanı İçindeki Kullanıcıları Listeleme
Bir veritabanında kimlerin olduğunu görmek için şu komutu kullanabilirsiniz:
PowerShell
Get-Mailbox -Database "DB_MERKEZ_01" | Select-Object Name, Alias, PrimarySmtpAddress
- Kullanıcıyı Başka Bir Veritabanına Taşıma
Belirlediğiniz bir kullanıcıyı (veya tüm listeyi) hedef veritabanına taşımak için New-MoveRequest komutunu kullanıyoruz:
Tek bir kullanıcıyı taşımak için:
PowerShell
New-MoveRequest -Identity "ferhat.yildiz" -TargetDatabase "DB_FABRIKA_01" -BatchName "FabrikaTasima"
Veritabanındaki tüm kullanıcıları topluca taşımak için:
PowerShell
Get-Mailbox -Database "DB_MERKEZ_01" | New-MoveRequest -TargetDatabase "DB_FABRIKA_01" -BatchName "TopluTasima"
- Taşıma Kuyruğunun Durumunu Görüntüleme
Taşıma işlemi arka planda (asenkron) çalışır. Durumu anlık izlemek için şu komutları kullanmalısınız:
Genel özet:
PowerShell
Get-MoveRequest | Get-MoveRequestStatistics
Yüzdesel ilerleme ve detaylı durum:
PowerShell
Get-MoveRequest -BatchName "FabrikaTasima" | Get-MoveRequestStatistics | Select-Object DisplayName, StatusDetail, PercentComplete, TotalMailboxSize
StatusDetail = InProgress: Taşıma devam ediyor.
StatusDetail = Completed: Taşıma başarıyla bitti.
StatusDetail = Queued: Sıra bekliyor.

0 Yorumlar
Ferhat YILDIZ Web sayfasına gönderdiğiniz yorum incelendikten sonra yayına alınacaktır. Yorumunuz için teşekkürler...