站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

批次檔備份 DHCP 資料庫

前言

本文為配合批次檔使用三種方式 (copy、export、dump) 來備份 Windows DHCP 資料庫,其中若是有刪除單筆 DHCP 保留區記錄的話使用 export 備份方式是無法復原的,因為 export 為備份整個領域方式所以變成要把整個領域砍掉在利用 import 來還原,若使用 copy、dump 則無此限制,而使用 export、dump 在備份及還原時此時 DHCP 服務為暫停的 (也就是暫時無法提供服務)。

Windows DHCP Service 預設會自動每隔 60 分鐘利用覆蓋方式來備份 DHCP 資料庫至 C:\WINDOWS\System32\dhcp\backup 資料夾內 (但若您改變預設備份路徑則不會執行自動備份!!),若想修改自動備份時間可以透過修改機碼值 BackupInterval 來改變。

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters //機碼路徑
 BackupInterval                                                             //機碼值 (預設 60 分鐘)

以下為 copy、export、dump 等三種備份 DHCP 資料庫比較表

備份方式本機/遠端能否復原單筆刪除記錄 (ex. 保留區)備份檔能否利用筆記本讀取備份期間 DHCP 能否服務
copy可 / 透過 UNC (配合權限)否,開啟後內容為亂碼
export可 / 否,僅可本機執行否,僅能復原整個領域否,開啟後內容為亂碼否,停止服務
dump可 / 可 (配合權限)可,開啟後可看到相關設定資訊否,停止服務

如何執行備份?

如何執行還原?

export 及 dump 詳細參數

 netsh dhcp server export /?           //將本機伺服器的服務設定匯出到檔案
 netsh dhcp server import /?           //從檔案匯入本機伺服器服務設定
 netsh dhcp server dump /?             //傾印 DHCP 伺服器的設定 
 netsh exec /?                         //載入指令檔並執行它

實作環境

Windows Server 2003

自動備份 DHCP 資料庫實作

您可將下面內容貼至筆記本後存檔為 .bat 並配合排定的工作來達成自動備份 DHCP 資料庫的目的。

實作一、利用 copy 方式自動備份 DHCP 資料庫

 rem ----- 將開始複製時間寫入 log 紀錄中 -----
 echo 開始複製 DHCP Database Files >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 rem ----- 開始複製 DHCP Database Files-----
 rem /S 複製每個目錄及其包含的子目錄,不複製空目錄
 mkdir D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\copy
 xcopy C:\WINDOWS\system32\dhcp\backup  D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\copy /S >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 rem ----- 將結束複製時間寫入 log 紀錄中 -----
 echo 結束備份 DHCP Database Files >>  D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log

實作二、利用 export 方式自動備份 DHCP 資料庫

 rem ----- 將開始 Export 時間寫入 log 紀錄中 -----
 echo 開始 Export DHCP Database Config >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 rem ----- 開始 Export DHCP Database Config -----
 mkdir D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\export
 C:\WINDOWS\system32\netsh.exe dhcp server export D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\export\dhcp.mdb all >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 rem ----- 將結束 Export 時間寫入 log 紀錄中 -----
 echo 結束 Export DHCP Database Config >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log

實作三、利用 dump 方式自動備份 DHCP 資料庫

 rem ----- 將開始 Dump 時間寫入 log 紀錄中 -----
 echo 開始 Dump DHCP Database Config >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 rem ----- 開始 Dump DHCP Database Config -----
 mkdir D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\dump
 C:\WINDOWS\system32\netsh.exe dhcp server dump > D:\dhcp_db\%date:~0,4%%date:~5,2%%date:~8,2%\dump\dhcp.mdb
 rem ----- 將結束 Dump 時間寫入 log 紀錄中 -----
 echo 結束 Dump DHCP Database Config >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log
 TIME /T    >> D:\log\dhcp\%date:~0,4%%date:~5,2%%date:~8,2%.log

參考

[Microsoft TechNet Managing DHCP Servers]

[netsh 的所有說明(上)]

[如何將 DHCP 資料庫從執行 Windows NT Server 4.0、Windows 2000 或 Windows Server 2003 的電腦中移動到執行 Windows Server 2003 的電腦中]

[如何備份、還原DHCP資料 @ 040's Box ::PIXNET 痞客邦::]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com