目录
前言
在互联网高速发达的今天,数据对于我们每个人,每个公司都是非常非常重要的,对于我们开发人员来说,尤为如此。因此,数据备份和恢复就尤其重要,今天就一起来学习了解下mysql的数据备份。
原理
1、关闭所有打开的表
2、调用FTWRL锁定所有的表,全局禁止更新
3、修改实例隔离级别
4、开启一致性快照读
5、获取gtid和binlog、pos信息
6、释放FTWRL锁
7、设置回滚点逐一备份数据表
8、备份完成
实践
创建一个shell脚本执行mysqldump,通过cron定时执行shell脚本备份mysql数据
创建脚本
touch DatabaseBackup.sh
设置权限
chmod u+x databaseBackup.sh
编写脚本
#!/bin/bash
find /data/backup/ -mtime +7 -name "*.sql" -delete && docker exec mysql sh -c "mysqldump -uroot -ppassword test" > /data/backup/test_`date +%F`.sql;
cron添加定时任务
crontab -e
配置定时任务
0 1 * * * /home/sayHello/mysql/backup/DatabaseBackup.sh
这个配置是每天凌晨1点备份数据库,这样就能自动通过mysqldump备份sql数据了,再也不怕删库删表的误操作了
数据恢复
mysql -u username -p test < backup_file.sql