网站数据自动备份方法

  • Post author:
  • Post category:其他


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

目前站长们大多使用的网站程序无外乎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程序的用户,如果没有数据库,那就更简单了。

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



版权声明:本文为hzq0201原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。