一、環境 環境:Centos 6.5 ,MySQL 5.7.22, yum install 命令安裝 二、備份 指定備份路徑,指定 --master-data=2 參數備份時輸出 MASTER_LOG_POS 位置信息 備份腳本: 1 #!/bin/bash 2 3 backup_path=/hom ...
一、環境
環境: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
三、定時任務:
- 查看定時任務
[root@daf ~]# crontab -u username -l no crontab for vfit要查看所有用戶的,只能根據 /etc/passwd 文件中的用戶名一一列舉了,可以用腳本。
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done
給指定用戶創建定時任務
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 定時任務日誌文件目錄:/var/log/cron
三、恢復方案
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
錯誤語句示例: