Linux下MYSQL每天增量备份

数据库备份很重要
发生系统崩溃时恢复数据到最后一次正常的状态 把损失减小到最少
MySQLl提供了一个mysqldump命令  进行数据备份

备份tm 数据库
#mysqldump -u root -p tm > tm_050519.sql
按提示输入密码 就把tm数据库所有的表结构和数据备份到tm_050519.sql了

如果数据量逐步增大占用很大空间 可以利用gzip压缩数据
#mysqldump -u root -p tm | gzip > tm_050519.sql.gz

恢复数据
#mysql -u root -p tm < tm_050519.sql

从压缩文件直接恢复
#gzip < tm_050519.sql.gz | mysql -u root -p tm


当然 有很多MySQL工具提供更直观的备份恢复功能 比如用phpMyAdmin就很方便
但mysqldump是最基本 最通用的

 
利用crontab 系统每天定时备份mysql数据库
按日期对备份结果进行保存 达到备份的目的  

创建保存备份文件的路径/mysqldata
#mkdir /mysqldata

创建/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 -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