关于服务器使用BAT做异地备份
关于使用BAT做异地备份的详细步骤
服务器的异地备份一直困扰着我,如果是单独的一个数据库做异地备份,确实没有难度!使用一个储存过程就能解决这个问题,单个数据库的异地备份,百度一下出来一片。我就不复制粘贴了。
在做这个异地备份之前我先提一下,做备份的前提条件:作为异地备份的两台服务器必须在同一个局域网,属于一个防火墙范围内。(在同一个防火墙下是因为你要做指定共享文件夹,防火墙作为一道坚定的安全防护门,可以省去因为指定共享了一个文件夹的安全着想)。
我们要完成的目标:A服务器每天自动备份大量数据库,B服务器每天复制A服务器的BAK文件
A服务器:作为数据库服务器,每天作为数据库备份服务器。
B服务器:作为异地备份的目标服务器,每天在固定时间,拷贝A服务器上数据库的备份bak文件
第一步:做共享文件夹,在B服务器上做一个共享文件夹直接共享到A服务器上。
在做共享的时候,请注意一定要给够权限,不然在服务器上打不开共享,做出来的BAT也是废物!
第二步:在A服务器上使用SQL SERVER 2005 自带的定时备份计划,把服务器里的文件做到一个文件夹里。
比如:D盘的D:/DATABAK 这个备份怎么做我就不解释了。
第三步:做一个BAT文件,主要功能就是完成从A服务器到B服务器的复制工作。
这里,我把BAT文件的内容贴上来,很简单的几句复制语句!
在两台服务器上都新建一个DATABAK
192.168.11.111 A服务器地址 DATABAK1
192.168.11.112 B服务器地址 DATABAK2
BAT完整语句:
@echo off
net use /user:administrator 888888
copy /y d:\databak1\*.*
net use /delete
@echo pause
第四步:在B服务器上做任务计划,定时复制A服务器上D:/DATABAK文件夹下的BAK文件
上回说到用过批处理把A服务器内的BAK文件复制到B服务器上的DATABAK文件夹内。
按照基本流程也算是完成了,但是最后还是要考虑一个问题:在B服务器每天复制如此量大的BAT文件,而且没有自动清除设置,导致B服务器硬盘容量无法承受如此量大的文件容量,我们必须要想办法按照A服务器上的清除方法,保存超过一周的BAK文件一律自动清除。既然在A服务器上用SQL2005能够达到自动清除的目的,我们何必再去写批处理来加大服务器的负担呢?所以我们还是用服务器预装的SQL2005来完成这个任务!
在用SQL server 2005做B服务器的BAK文件清除任务的时候,一定要注意几个情况:
一、一定要处理好SQL server 代理这个功能,要设置在服务器重启维护时自动启动,如果没有做自动启动,那么自己手动启动也是可以的,不过建议还是设置成自动启动!
二、在A服务器的共享的那个文件夹z:\DATABAK,在重启服务器后,一定要在A服务器上双击此文件夹,这时会提示需要你输入用户名和密码,这是服务器安全措施的必要环节,就算服务器外还有一道防火墙来保证服务器的安全,但是服务器多做一些防护措施是有备无患,只要不影响应用程序和系统的运行,安全还是要放在第一位的。其实服务器一个月或者几个月重启维护一次算是正常了,没有大量的系统垃圾和需要维护的工作就没必要经常重启服务器。
下图就是SQL server 2005在B服务器上的设置截图!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论