网站数据自动备份方法

 

近来由于国家打击,所以各地难免会出现封机房、断网的情况,针对这种情况,站长们最需要的就是能及时备份自己的数据,本文是根据作者自己多年的维护经验,来和大家分享下网站数据自动备份的一些经验。

目前站长们大多使用的网站程序无外乎ASP\asp.net\php\jsp   数据库的话,大多是access\sqlserver\mysql

我们分2种情况来说明下。

对于win服务器下的自动数据备份,网站文件,自然是比较好备份的,那么如果数据库也可以自动备份,那就基本实现完美自动备份。

如果你有独立服务器,那么这个备份工作就更加简单,下面我们来看看:

独立服务器数据异地自动备份

网站文件我们使用绿环FTP备份软件,在异地的服务器上挂上绿环FTP,设置好备份任务,然后设置好网站数据FTP,利用绿环的自动备份功能,就可以轻松对网站的文件进行自动异地备份。

数据库,我们先在服务器上做备份,然后利用绿环把备份文件异地备份到备份服务器。

mysql数据库:我们可以使用以下批处理脚本:

net stop mysql

xcopy c:\mysql\data\bbs\*.* d:\db_bak\bbs\%date:~0,10%\ /y

net start mysql

比如,设置这个为批处理文件bak.bat,然后设置windows的计划任务,每天定时运行该批处理,就可以自动备份MYSQL了,注意,里边的路径,请自己修改为自己的路径,c:\mysql\data\bbs\*.*为MYSQL数据文件路径,d:\db_bak\bbs\%date:~0,10%后边这个为MYSQL数据库备份路径。

有的朋友的计划任务不能正常运行,请查看服务里边的计划任务的服务Task Scheduler是否开启,另注意服务器装有麦咖啡的朋友,请注意你的麦咖啡规则设置,看是否有限制备份的规则存在。

对于SQLserver,我们知道,SQLsever本身有按计划备份的功能,所以,你可以用同样的原理,进行备份,然后进行异地备份操作。本文不在这里详述了。

同样,对于linux下的mysql备份,就更简单,利用crontab系统每天定时备份MySQL数据库,至于详细设置,本文引用下网上的老鸟的做法:

1、创建保存备份文件的路径/mysqldata  

#mkdir /mysqldata  

2、创建/usr/sbin/bakmysql文件  

#vi /usr/sbin/bakmysql  

输入  

rq=` date +%Y%m%d `  

tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql  

或者写成  

rq=` date +%Y%m%d `  

mysqldump --all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz  

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同  

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。  

3、修改文件属性,使其可执行  

# chmod +x /usr/sbin/bakmysql  

4、修改/etc/crontab  

#vi /etc/crontab  

在下面添加  

01 3 * * * root /usr/sbin/bakmysql  

表示每天3点钟执行备份  

5、重新启动crond  

# /etc/rc.d/init.d/crond restart  

完成。  

这样每天你在/mysqldata可以看到这样的文件  

mysql20100101.tar.gz  

在tar命令执行前,停止数据库服务进程或锁定数据库,你可以利用时间差设置个计划任务,暂停掉数据库,或者在执行备份脚本时候设置,注意,当使用上面的第2种热备份模式,是不需要停止MYSQL服务器的,不然你就没法备份了。

以上是对于对立服务器用户,那么对于虚拟主机用户,我想你可以在本地电脑设置绿环FTP,备份文件就没问题了,对于数据库,你可以设置一个自动脚本,每天0点触发这个脚本,关于mysql的备份脚本,网上很多,至于如何触发,有很多方法吧,我想用过discuz的朋友,都知道discuz中计划任务的原理吧,另外dede系统也有自动定时生成HTML的脚本,都是这样的原理。

当然,对于ASP程序的用户,如果没有数据库,那就更简单了。

好了,进行了以上的相关设置,那么就可以实现数据全自动异地备份,就再也不怕服务器被封了。

posted @ 2010-04-11 19:10  感生  阅读(214)  评论(0编辑  收藏  举报