MySQL备份与恢复实战案例及生产方案
按天备份
按周备份
mysql的mysqldump备份什么时候能派上用场
1,迁移或者升级数据库时
2,增加从库的时候
3,如果因为硬件或特殊情况,主库或者从库宕机,主从可以互相切换,无需备份
4,人为的DDL,DML语句,主从库没办法了,所有库都会执行,因此需要备份
5,跨机房
增量恢复
一般有人为(或程序)逻辑的方式在数据库执行的SQL语句等误操作,才需要增量恢复,因为此时,所有的从库也执行了误操作语句
MySQL增量恢复的必备条件
1)开启MySQL的log-bin日志功能(主从库都需要开启binlog记录功能;存在一份全备加上全备之后的试看看到出问题时刻的所以增量binlog文件备份)
2)存在MySQL数据库全备
a:生产环境mysqldump备份命令,在凌晨某一时刻进行数据全备(生产环境一般通过定时任务每日凌晨执行),备份命令如下
mysqldump -uroot -p123qwe --default-character-set=gbk --single-transaction -F -B oldboy |gzip > /tmp/aaaaa/aa.sql.gz
b:innodb引擎备份:
mysqldump -uroot -p123qwe -S -F --single-transaction -A -B|gzip
c:myisam引擎备份
mysqldump -uroot -p123qwe -S -F -A -B --lock-all-tables|gzip
恢复全过程(重点):
通过防火墙禁止web等应用向主库写数据或锁表,让主库暂时停止更新,然后在进行恢复;
1)检查全备
2)检查增量备份binlog
1,停止一个从库,然后在主库刷新binlog,把mysql-bin 恢复成bin.sql(去掉drop语句)
2,把全备bak.sql及十点前的增量bin.sql恢复到从库
3,数据丢多少?10:10分刷新binlog以后的数据,mysql-bin.000015
4.停止主库,把mysql-bin.000015解析为sql,恢复到从库,切换到从库提供服务