数据库的重要性不言而喻,那么数据库的备份就显得非常重要了,手动人工备份肯定工作量大,而且有可能还会出错.
这里讲讲利用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二进制增量备份……