·背景
一些公司为了安全及保险起见,常在网络上有两个服务器,对外提供互联网相关应用服务。一种可能的应用是:服务器A作为主服务器,对外提供网络服务, 比如IIS网站服务,而另一台服务器B则作为数据库服务器或辅服务器(也可能是备份服务器)。当服务器A因为某种原因发生故障时,服务器B马上顶替服务器 A,这样不会导致网络服务的中断。
·问题
1、两台服务器之间的自动备份的问题
如何实现两台服务器之间的自动备份是网管们经常遇到的问题。
比如:我们需要在夜间或服务器相对闲暇时,自动将服务器A中指定目录下的重要数据备份到服务器B中某个指定的目录中。
2、隔N天备份到不同目录的问题
有时,我们也可能遇到将服务器进行隔N天进行自动备份,同时又希望某一天的数据备份到另一个与上一天完全不同的目录中,这样,一旦万一出现某种错误,仍然可以做上一天的目录中恢复相关数据。这里讲的是“万一”,不怕一万,就怕万一。安全第一呀,呵!
3、多服务器间日期自动校对的问题
由于服务器长时间运行,不同服务器可能会出现时间不一致的情况。而有时,可能对时间的要求也比较严格,需要有一个统一的时间标准……,在一些特定的应用领域,比如金融、财经等,需要各服务器的时间保持高度的一致性。如何自动将多台服务器的时间校正为某一台服务器的时间呢?
·解决
这里仅就两台服务器的自动备份问题进行方法阐述。
任何实现方法都是有一定条件的,本解决之道也不例外。
首先,我们这里所讲的服务器,必须是在同一局域网内或相互之间是可以访问。现实的情况是,一个中小型企业的服务器一般会将服务器托管到一个相同的IDC服务商那里。当然也有例外——这个你就别与我没完没了地“钻牛角尖”了,我这里只讲技术问题,嘿嘿~~
其次,必须有相关访问权限。
好了,如果都有,我们继续。
先在服务器B中建立多个备份用的文件目录,这些目录用来备份主服务器上的相关目录的重要资料。为了方便描述,我这里仅用两个目录,分别是Even和Odd,前者用来备份双日(比如9月10日)的,后者用来备份单日(比如9月11日,哇,真巧,9·11!)的数据资料。
分别将两个目录共享出来,记得设置好相应的共享权限,特别建议设置一个用于备份的特别的用户帐号,并设置好密码——具体怎么建,这个别问我,太基础了。
进入服务器A某个目录中(比如:C:/CopyTask/目录下),建立用于备份的批处理文件CopyAToB_Even.bat及CopyAToB_Odd.bat,具体文件名,你自己取,但文件后缀名请使用.bat(这是一个批处理文件)。
CopyAToB_Even.bat的内容为:
xcopy E:/yourDir //BServerName/Even /S /E /Y
exit
CopyAToB_Odd.bat的内容为:
xcopy E:/yourDir //BServerName/Odd /S /E /Y
exit
(注:这里的E:/yourDir为你在服务器A中需要备份的重要资料的文件目录,以下将此目录的数据全部自动定时备份到服务器B上。)
接下来,再各自给它们分别建立一个.vbs文件(特别建议放在与.bat批处理文件相同的目录下,以方便管理,这里是C:/CopyTask/),文件名与上面的文件名相同,但后缀名改为.vbs。
其中:
CopyAToB_Even.vbs的内容为:
CreateObject("WScript.Shell").Run "cmd /c C:/CopyTask/CopyAToB_Even.bat",0
CopyAToB_Odd.vbs的内容为:
CreateObject("WScript.Shell").Run "cmd /c C:/CopyTask/CopyAToB_Odd.bat",0
再下来,就是建立定时任务了。
在任务计划中双击“添加任务计划”,一步一步地操作,设置你要运行的程序时,通过浏览方式指向上面的C:/CopyTask /CopyAToB_Even.vbs,然后设置好时间,比如每天早上凌晨四时(4:00)开始备份,为了实现上述隔天备份到不同目录的目的,特别将备份 周期改为每两天,开始日期分别为当前日之前的单日和双日。比如:CopyAToB_Even.vbs为9月9日,而CopyAToB_Odd.vbs为9 月10日。具体设置根据你的需要而定,不详述。
OK。做完之后,你需要测试一下,测试时,你可以将时间调整为当前时间的一分钟之后测试,如果一切正常,再调整为你需要的备份时间。之后退出,大功告成!
·本方案优点
(1)自动执行,且执行时无烦人的弹出式黑窗口。
(2)在某方案基础上进行变通,可以进行多服务器、多任务备份工作。