MySQL數據庫全備和增備、增量數據恢復案例以及定時清理 binlog 日誌
阿新 • • 發佈:2018-09-06
代碼 fun transacti 適合 壓縮包 password 意願 root ati 一、mysql 全量備份以及增量備份
1、全量備份命令:
1、全量備份命令:
/application/mysql/bin/mysqldump -uroot -p123456 --lock-all-tables -A -B -F --master-data=2 --single-transaction --events|gzip > /opt/Mysql_Backup/all_backup/all_backup.sql.gz
如上一段代碼所示,其功能是將所有數據庫全量備份。其中 MySQL 用戶名為:root ,密碼為:123456。備份的文件路徑為:/opt/Mysql_Backup/all_backup,當然這個路徑是按照個人意願修改的。備份的文件壓縮包名為 all_backup.sql.gz 參數 --lock-all-tables:鎖定所有數據庫; 參數 -A:備份所有庫; 參數 -B:指定多個庫,增加建庫語句和 use 語句; 參數 -F:刷新 binlog 日誌; 參數 --master-data=0|1|2: 0: 不記錄 1:記錄為CHANGE MASTER語句 2:記錄為註釋的CHANGE MASTER語句; 參數 --single-transaction:適合 innodb 事務數據庫備份; 參數 --events:導出事件; 參數 gzip:備份壓縮文件。 2、全量備份腳本:
> #!/bin/bash > . /etc/init.d/functions > user=root > password="123456" > Backup_Tools=/application/mysql/bin/mysqldump > BackupDir=/opt/Mysql_Backup > All_Backup=$BackupDir/all_backup > mkdir -p $All_Backup > echo ‘==========‘$(date +"%Y-%m-%d %H:%M:%S")‘==========‘ “備份開始” >>$All_Backup/all_backup.log > $Backup_Tools -u$user -p$password -A -B -F --master-data=2 --single-transaction --events|gzip >$All_Backup/all_backup_$(date +%Y%m%d).sql.gz > if [ $? -eq 0 ] > then > echo ‘==========‘$(date +"%Y-%m-%d %H:%M:%S")‘==========‘ "備份完成" >>$All_Backup/all_backup.log > action "Mysql full backup is ok" /bin/true > else > action "Mysql full backup is not ok" /bin/false > fi 3 、恢復全量備份命令:
cd /opt/Mysql_Backup/all_backup
gzip -d all_backup.sql.gz
mysql -uroot -p123456 < all_backup.sql
或者:
mysql> source /opt/Mysql_Backup/all_backup/all_backup.sql
MySQL數據庫全備和增備、增量數據恢復案例以及定時清理 binlog 日誌