DHCP Veritabanı Yedekleme (Backup) ve Geri Yükleme (Restore)

DHCP Server'ın veritabanı; Scope'ları, Reservation'ları, seçenekleri (Options) ve istemcilere verilmiş Lease kayıtlarını tutar. Bu veritabanı bozulduğunda ya da sunucu arızalandığında, yapılandırma elle yeniden kurulana kadar Network'teki istemciler IP adresi alamaz. Düzenli ve sunucu dışında saklanan bir yedek, bu süreyi dakikalara indirir.

Bu yazıda DHCP Server veritabanının otomatik yedekleme aralığını ve yolunu değiştiriyor, elle yedek alıyor ve yedekten geri yüklüyorum. Veritabanının sıkıştırılması ve bakımı DHCP veritabanı bakımı makalemin konusu.

DHCP veritabanı yedekleme ve geri yükleme adımları Windows Server 2012 R2'den Windows Server 2025'e kadar aynı yapıdadır. Sürümler arasında ekranlarda küçük farklar olabilir.

1- DHCP Veritabanı ve Yedekleme Nasıl Çalışır?

DHCP veritabanı varsayılan olarak C:\Windows\System32\dhcp klasöründe tutulur. DHCP servisi bu veritabanını belirli aralıklarla kendiliğinden yedekler. Varsayılan aralık 60 dakika, varsayılan yedek yolu C:\Windows\System32\dhcp\Backup klasörüdür. Bu otomatik yedeğin yanında konsoldan istenen anda ve istenen klasöre elle yedek de alınabilir.

Yedek Türü Ne Zaman Alınır Nereye Alınır
Otomatik yedek BackupInterval değerine göre, varsayılan 60 dakikada bir BackupDatabasePath yolu, varsayılan C:\Windows\System32\dhcp\Backup
Elle yedek Konsolda Backup seçildiği ya da Backup-DhcpServer çalıştırıldığı anda O anda seçilen klasör

DHCP servisinin veritabanı, yedek ve günlük yollarıyla ilgili ayarları şu Registry anahtarında tutulur:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

Değer Ne Tutar Varsayılan
BackupInterval Otomatik yedeğin dakika cinsinden aralığı 60
BackupDatabasePath Otomatik yedeğin alındığı klasör C:\Windows\System32\dhcp\Backup
DhcpLogFilePath IPv4 DHCP denetim (audit) günlüklerinin klasörü C:\Windows\System32\dhcp
DhcpV6LogFilePath DHCPv6 denetim günlüklerinin klasörü C:\Windows\System32\dhcp

Mevcut ayarları DHCP sunucusunda yönetici olarak açtığım PowerShell oturumunda görebiliyorum.

Get-DhcpServerDatabase
Bir DHCP sunucusunu yeni bir sunucuya taşımak için yedek ve geri yükleme yerine Export-DhcpServer ve Import-DhcpServer cmdlet'leri kullanılır.

2- Ön Kontrol

Başlamadan önce şu maddeleri doğruluyorum:

Kontrol Beklenen Durum
DHCP Server rolü Kurulu ve servis çalışıyor
Yetki DHCP sunucusunda yerel yönetici
Yedek klasörü Yedeğin alınacağı diskte yeterli boş alan var
Ağ paylaşımı (kullanılacaksa) DHCP sunucusunun bilgisayar hesabına paylaşımda ve NTFS'te yazma izni verilmiş

3- Otomatik Yedek Aralığının Değiştirilmesi

Varsayılan 60 dakikalık aralık çoğu ortam için yeterli. Yapılandırmanın sık değiştiği ortamlarda aralık kısaltılabilir. DHCP konsolunda bu ayar yok. Değeri PowerShell ile değiştiriyorum, değişiklik servis yeniden başlatılmadan geçerli olur. Registry'de BackupInterval değerini elle düzenlemek de mümkün, ancak servis bu değeri başlarken okuduğu için o yolda DHCP servisinin yeniden başlatılması gerekir.

Set-DhcpServerDatabase -BackupInterval 30

Kontrol Noktası
Get-DhcpServerDatabase çıktısında BackupInterval(m) değeri girilen dakikayı göstermeli.

4- Elle Yedek Alınması

Yapılandırmada büyük bir değişiklik yapmadan önce ya da yedeği sunucu dışına almak istediğimde elle yedek alıyorum.

1- DHCP konsolunda sunucunun adı üzerinde sağ tıklayıp Backup... seçeneğini seçiyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

2- Açılan pencerede varsayılan olarak C:\Windows\System32\dhcp\Backup klasörü geliyor. Elle yedeği otomatik yedeklerden ayırmak için farklı bir klasör seçiyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

3- Bu örnekte C:\DHCP_DB_Backup klasörünü seçiyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

4- Yedek alındı. Bu klasörü sunucu arızasında da erişilebilmesi için bir Storage birimine ya da yedekleme sistemine kopyalıyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

Aynı yedeği PowerShell ile de alabiliyorum. {Yedek Klasörü} yerine yedeğin alınacağı klasörü yazıyorum.

Backup-DhcpServer -Path "{Yedek Klasörü}"

Kontrol Noktası
Yedek klasöründe DhcpCfg dosyası ve veritabanı dosyalarını içeren new klasörü oluşmuş olmalı.

5- Otomatik Yedek Yolunun Değiştirilmesi

Otomatik yedekler varsayılan olarak sistem diskinde tutulur. Sistem diski arızalandığında veritabanıyla birlikte yedekleri de kaybetmemek için otomatik yedek yolunu değiştiriyorum.

1- DHCP konsolunda sunucunun adı üzerinde sağ tıklayıp Properties seçeneğini seçiyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

2- Advanced sekmesindeki Backup path alanında varsayılan C:\Windows\System32\dhcp\Backup yolu görünüyor. Bu lab ortamında yolu, Storage üzerinde paylaşıma açtığım \\192.168.1.222\srv001dhcpBackup klasörüyle değiştiriyorum. Bu ayar yalnızca otomatik yedeğin yerini değiştirir, elle alınan yedekleri etkilemez.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

3- Değişikliği hızlıca görebilmek için BackupInterval değerini test amacıyla 1 dakikaya düşürmüştüm. Paylaşım klasörüne baktığımda yedeğin dakikada bir alındığını görüyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

1 dakikalık aralık yalnızca test içindir. Test bittikten sonra BackupInterval değerini üretim değerine geri alıyorum.

Otomatik yedek yolu bir ağ paylaşımı olduğunda DHCP servisi paylaşıma sunucunun bilgisayar hesabıyla erişir. Bu yüzden paylaşım izinlerinde ve NTFS izinlerinde DHCP sunucusunun bilgisayar hesabına yazma izni veriyorum. Paylaşıma ulaşılamadığı her an otomatik yedek alınamaz ve bu durum yalnızca olay günlüğünde görünür. Yedek DHCP yapılandırmasının tamamını içerdiği için paylaşımın erişimini de kısıtlıyorum.

Daha dayanıklı bir yaklaşım, otomatik yedeği sunucunun sistem diski dışındaki yerel bir diske almak ve yedek klasörünü düzenli olarak yedekleme sistemine kopyalamaktır. Böylece ağ paylaşımına ulaşılamadığında da otomatik yedek alınmaya devam eder. Yolu PowerShell ile de değiştirebiliyorum, değişiklik servis yeniden başlatılmadan geçerli olur. {Yedek Yolu} yerine yeni klasörün yolunu yazıyorum.

Set-DhcpServerDatabase -BackupPath "{Yedek Yolu}"

Kontrol Noktası
Bir yedekleme aralığı sonunda yeni yedek yolunda güncel tarihli yedek dosyaları oluşmalı.

6- Yedekten Geri Yükleme

Restore, sunucudaki mevcut DHCP yapılandırmasının ve Lease kayıtlarının üzerine yazar. Yedekten sonra oluşturulan Scope'lar, Reservation'lar ve verilen Lease'ler kaybolur. Bu yüzden Restore öncesinde mevcut durumu ayrı bir klasöre yedekliyorum. Restore sonucu beklendiği gibi olmazsa geri dönebileceğim tek yol bu yedek.

Restore sonrası, yedekten sonra verilmiş Lease'lerin kayıtları kaybolur. Bu adresler başka istemcilere verilip IP çakışması oluşabilir.

1- DHCP konsolunda sunucunun adı üzerinde sağ tıklayıp Restore... seçeneğini seçiyor ve geri yüklenecek yedeğin klasörünü gösteriyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

2- Konsol, geri yükleme için DHCP servisinin durdurulup yeniden başlatılacağını belirtiyor. Servis çalışırken veritabanı dosyaları kullanımda olduğu için geri yükleme servis durdurularak yapılır. Yes ile onaylıyorum.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

3- Servis yeniden başlatılıyor.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

4- Geri yükleme tamamlandı.

DHCP DATABASE BACKUP, RESTORE ve PATH değiştirme.

Geri yüklemeyi PowerShell ile de yapabiliyorum. İlk komut mevcut durumu yedekler, ikinci komut seçilen yedeği geri yükler. Cmdlet, servisin yeniden başlatılması için onay ister.

Backup-DhcpServer -Path "{Restore Öncesi Yedek Klasörü}"
Restore-DhcpServer -Path "{Geri Yüklenecek Yedek Klasörü}"

7- Restore Sonrası Doğrulama

Geri yüklemeden sonra servisin çalıştığını ve Scope'ların geri geldiğini PowerShell ile kontrol ediyorum. {Scope ID} yerine kontrol edeceğim Scope'un ağ adresini yazıyorum.

Get-Service -Name DHCPServer
Get-DhcpServerv4Scope
Get-DhcpServerv4Reservation -ScopeId {Scope ID}
Get-DhcpServerv4Lease -ScopeId {Scope ID}

Servisin durumu Running olmalı, Scope ve Reservation listesi yedeğin alındığı andaki durumla eşleşmeli. Ardından DHCP konsolunda IPv4 üzerinde sağ tıklayıp Reconcile All Scopes ile veritabanındaki Lease kayıtlarının tutarlılığını kontrol ediyorum.

Yedekten sonra verilmiş Lease'lerin çakışma yaratmaması için, IPv4 Properties penceresinin Advanced sekmesindeki Conflict detection attempts değerini geçici olarak 1 ya da 2 yapıyorum. Bu ayarla DHCP sunucusu bir adresi vermeden önce ping ile kullanımda olup olmadığını kontrol eder. Lease'ler yeniden oturduktan sonra değeri eski haline getiriyorum.

Sunucu bir DHCP Failover ilişkisindeyse Restore sonrası iki sunucunun yapılandırması farklılaşır. Failover ilişkisini kontrol edip replikasyonu yeniden yapıyorum.

Yedekleme yapısının tamamlandığını şu ölçütlerle anlıyorum: otomatik yedek belirlenen aralıkta sistem diski dışındaki bir yola alınıyor, elle alınan yedekler sunucu dışında saklanıyor ve bir test ortamında yapılan geri yükleme sonrası Scope, Reservation ve Lease kayıtları beklenen durumda görünüyor. Bu noktadan sonra veritabanının sıkıştırılması ve bakımıyla devam edebilirim.

Faydalı olması dileğiyle...

Bu makaleye henüz yorum yapılmadı. İlk yorum yapan sen ol!

750 karakter yazabilirsiniz.
Güvenlik kodu
Yorumlar, onaylandıktan sonra yayınlanmaktadır.
E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.