近来由于国家打击,所以各地难免会出现封机房、断网的情况,针对这种情况,站长们最需要的就是能及时备份自己的数据,本文是根据作者自己多年的维护经验,来和大家分享下网站数据自动备份的一些经验。
目前站长们大多使用的网站程序无外乎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程序的用户,如果没有数据库,那就更简单了。
好了,进行了以上的相关设置,那么就可以实现数据全自动异地备份,就再也不怕服务器被封了。