大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说自建单机MySQL数据库备份方案[通俗易懂],希望您对编程的造诣更进一步.
一、环境
环境:Centos 6.5 ,MySQL 5.7.22, yum install 命令安装
二、备份
指定备份路径,指定 –master-data=2 参数备份时输出 MASTER_LOG_POS 位置信息
备份脚本:
1 #!/bin/bash 2 3 backup_path=/home/app/bak_mysql 4 password="password" 5 6 err() { 7 echo "[$(date +"%Y-%m-%d %H:%M:%S")]: $@" >&2 >>${backup_path}/fail_$(date +%Y%m%d).log 8 } 9 #错误后打印错误信息生成日志 10 11 mysqldump -uroot -p${password} --opt -R --events --triggers=true 12 --master-data=2 --single-transaction databaseName --ignore-table=databaseName.t_attachment 13 | gzip > ${backup_path}/backup_$(date +%Y%m%d).sql.gz 14 #备份同时压缩 15 16 if [ $? -ne 0 ];then 17 err $? 18 exit 19 fi
代码100分
三、定时任务:
- 查看定时任务
代码100分[root@daf ~]# crontab -u username -l no crontab for vfit
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done
给指定用户创建定时任务
代码100分1 [root@*** ~]# crontab -u username -e 2 no crontab for username - using an empty one 3 crontab: installing new crontab 4 [root@*** ~]# crontab -u username -l 5 0 2 */2 * * /home/username/backup_mysql/backup_mysql.sh
chmod u+x backup_mysql.sh
三、恢复方案
1、准备好最新的备份文件进行全量恢复
2、找出增量文件
3、恢复数据
1 [vfit@iZ946xtgmogZ bak_mysql]$ grep MASTER_LOG_POS bak.sql 2 -- CHANGE MASTER TO MASTER_LOG_FILE="mysql-bin.000004", MASTER_LOG_POS=1633307; 3 4 [vfit@iZ946xtgmogZ bak_mysql]$ mysqlbinlog --no-defaults --database=bak --start-position=1633307 /var/lib/mysql/mysql-bin.000004 > ~/addbak.sql 5 //删除问题语句 执行恢复代码 6 [vfit@iZ946xtgmogZ bak_mysql]$ mysql -uroot -pgo2020@Vfangtuan bak < ~/bak.sql 7 [vfit@iZ946xtgmogZ bak_mysql]$ mysql -uroot -pgo2020@Vfangtuan bak < ~/addbak.sql
错误语句示例:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7628.html