数据库的重要性不言而喻,那么数据库的备份就显得非常重要了,手动人工备份肯定工作量大,而且有可能还会出错.
这里讲讲利用linux的crontab每天定时备份mysql数据库
两点要求
(1)每天定时备份,可在深夜进行,以免影响服务器;
(2)自动删除上个月老的备份文件,但保留上月最后几天的备份。
1、创建保存备份文件的路径/mysqldata
#mkdir /usr/local/mysqldata
2、创建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
rq=` date +%Y%m%d `
tar zcvf /usr/local/mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者写成
rq=` date +%Y%m%d `
mysqldump ——all-databases -u root -p密码 > /mysqldata/mysql$rq.sql
/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可以看到这样的文件
mysql20040619.tar.gz
定时备份
使用系统的crontab
crontab -e
# m h dom mon dow command
0 3 * * * /var/backup/backup-mysql.sh
时间的格式是
分 时 日 月 周
上面的例子是指定每天3点备份一次数据库
提高:
当然,还可以加上一些更好的功能,如
备份后的文件压缩一下,这个很简单
只保留最近xx天的备份文件,这个要稍微复杂一点点
使用mysql二进制增量备份……