WINDOWS DNS备份、还原

DNS备份
当你的DNS服务器正常运行起来后,大家可以按照下列步骤对自己的服务器配置进行备份:
1. 停止DNS服务。
2. 打开Regedit程序,找到键
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS。
3. 右键单击DNS文件夹并且选择“导出”。把文件命名为dns1然后按Enter键。
4. 现在找到键
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server。
5. 右键单击DNS Server文件夹,并且选择“导出”命令。把文件命名为dns2然后按Enter键。
在前面的步骤中我们创建了两个注表文件,分别叫dns1.reg和dns2.reg。把它们存入到移动存储或者保存在不在此服务器上的其他媒体中。
打开文件夹\Windows\System32\DNS并且把其中所有后缀为.dns的文件都复制出来。也保存到你存储.reg文件的媒体中。现在你已经完成了备份,接下来重新启动DNS服务。

DNS的恢复
如果你的DNS服务器出现了故障,那么你可以迅速找到另一台机器代替它,设置步骤如下:
1.建立一个Server2003系统。给它取与所代替机器相同的名字,使用相同的DNS后缀和IP地址。
2.在其系统中安装DNS服务。
3.停用DNS服务。
4.把所有后缀为.dns的文件复制到这台机器的\windows\system32\dns文件夹下。
5.找到那两个后缀为.reg的文件。双击它们,一次一个,并且确认自己想把它们安装到注册表中。
6.重新启动DNS服务。
现在你就拥有了原DNS服务器的一个替代系统。要记住,如果你只想把一个区域的主服务器角色从一台机器转移到另一台机器,那么只需要把*.dns文件复制到目标计算机上就行了,然后再运行“新建区域”向导程序,告诉它你已经有了一个区域文件。
7.在目标 DNS 服务器上,启动 DNS 服务器服务。要开始注册服务器的 A 和 PTR 资源记录,请在命令提示符下运行以下命令:
ipconfig /registerdns
8.如果此服务器同时还是域控制器,请停止并重新启动 Net Logon 服务来注册服务 (SRV) 记录,或在命令提示符下运行以下命令:
netdiag /fix
9. 如果替换 DNS 服务器是域控制器,则可将其上以前是 Active Directory 集成区域的标准区域转换回 Active Directory 集成区域。
10.确认每个区域上的 SOA 资源记录包含正确的主服务器名,并且区域的 NS 资源记录正确无误。



另一种方法
现在的服务器上运行了很多系统服务,虽然中间没有出过什么问题,但是还是怕,要是出了问题,就是好几天的时间没有了,累4人的事情啊。所以要把什么东西都backup一下。ghost备份的是系统,但是服务的配置是随时在变化的,总不能时不时的来个ghost吧,再说没有显示器,很麻烦的。
研究了一个下午,终于实现了DNS和DHCP的自动备份。[dog]
DNS的备份
1、停止DNS服务
2、打开regedit,找到HKLM\system\currentcontrolset\services\dns
3、将DNS这个分支导出。命名为DNS-1
4、找到HKLM\software\microsoft\windows NT\currentversion\DNS server
5、将DNSserver分支导出,命名为DNS-2
6、打开\windows\system32\DNS ,把其中的所有*.dns文件复制出来,并和DNS-1.reg及DNS-2.reg保存在一起。
把上述内容备份出来即可。
DNS的恢复:
1、当区域里的DNS服务器发生故障,重新建立一台win2003服务器,并与所要替代的DNS服务器起相同的名字,设置相同的DNS后缀和IP地址。
2、在新系统中安装并启动DNS服务。
3、把前面备份出来的*.dns文件复制到新系统的\windows\system32\dns文件夹中。
4、停用DNS服务。
5、把备份的dns-1.reg和dns-2.reg导入到注册表中。
6、重新启动DNS服务。
dhcp的快速备份
命令行:
netsh dhcp server dump >dhcp_bak.txt
备份完成。
如果原DHCP服务器损坏,需要新建一台DHCP服务器,并把DHCP-bak.txt复制过来。
在命令行运行:
netsh exec dhcp_bak.txt
这样,相关的信息就恢复了,但租约信息用这种办法无法恢复。

这只是手动实现的方法,作为服务器,这样做是不够的,天天去备份不但费事也很不保险(忘记了怎么办?),所以我们可以做个批处理,然后建立个任务,让它自动的实现备份。

以下是备份的代码:

=================================================
@echo Backup DNS config start…………
@echo 请在D盘下建立backup\DNS和DNCP两个文件夹
::拷贝system32\dns下的dns文件
copy c:\windows\system32\dns\*.dns d:\backup\DNS /y
::导出注册表文件
regedit /e d:\backup\DNS\DNS-1.reg HKEY_LOCAL_MACHINE\system\currentcontrolset\services\dns
::全路径文件名两侧加上引号
regedit /e d:\backup\DNS\DNS-2.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server"
@echo DNS config backup complete!
@echo Backup DHCP config start…………
::备份dhcp文件
netsh dhcp server dump >d:\backup\dhcp\dhcp_bak.txt /y
echo DHCP config backup complete!
echo off
exit
=========================================================
把上面的代码保存为bat文件就可以了,双击运行就可以自动完成DNS和DHCP的备份了。
HCP和DNS自动恢复代码:
===============================================
@echo Resume DNS config start…………
net stop dns
::把.dns文件拷贝到system32\dns下
copy d:\backup\DNS\*.dns c:\windows\system32\dns /y
::导入注册表文件

reg import d:\backup\DNS\DNS-1.reg
reg import d:\backup\DNS\DNS-2.reg
net start dns
@echo DNS Resume complete!
@echo Resume DHCP config start…………
::恢复dhcp文件
net stop tcpsvcs
netsh exec d:\backup\dhcp\dhcp_bak.txt
net start tcpsvcs
echo DHCP config resume complete!
echo off
exit
===========================================
这里涉及到注册表的导出和导入问题
导出:
regedit /e filename path
当出现空格时要用引号把整个路径引起来,不然在dos下是不识别空格的
导入:
开始的时候实了下regedit /s命令,好像没有用,所以用了reg import命令,在windows 2003下通过测试!