系統:Centos 7.4
版本:MySQL5.7.24
備份工具:percona xtrabackupd
全量備份
備份命令:innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd --stream=tar /tmp | gzip >$data_file
恢復命令:
service mysql stop #停止服務
mv /data/database /data/database_`data +%F` #重命名數據庫數據目錄
mkdir /data/database #新建數據庫數據目錄
tar -zxvf $data_file -C /data/database #解壓備份壓縮包到新建數據庫數據目錄
innobackupex --defaults-file=/etc/my.cnf --apply-log /data/database #恢復
chown -R mysql:mysql /data/database #修改權限
service mysql start #啟動服務
優勢:恢復時間短,維護成本低。
劣勢:占用磁盤空間多,備份時占用資源多。
推薦:適合大多中小型公司。
增量備份
全量+增量備份
命令:innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd /data/mysqldata/backup/ #一次全量
innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd --incremental /data/mysqldata/backup_rec --incremental-basedir=/data/mysqldata/backup/$(`data +%F`) #增量第一次
恢復命令:
service mysql stop #停止服務
mv /data/database /data/database_`data +%F` #重命名數據庫數據目錄
mkdir /data/database #新建數據庫數據目錄
innobackupex --defaults-file=$db_cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) #恢復全量
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) --incremental-dir=/data/mysqldata/backup_rec/$(`data +%F`)$1 #恢復第一次增量
innobackupex --defaults-file=/etc/my.cnf --apply-log /data/mysqldata/backup/$(`data +%F`) --incremental-dir=/data/mysqldata/backup_rec/$(`data +%F`)$2 #恢復最后一次增量
innobackupex --defaults-file=$db_cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) #再執行一次恢復全量
innobackupex --defaults-file=$db_cnf --copy-back /data/mysqldata/backup/$(`data +%F`) #還原備份數據
chown -R mysql:mysql /data/database #修改權限
service mysql start #啟動服務
優勢:占用空間小,不經常鎖表。
劣勢:增量備份越多,恢復時間越長,維護成本越高。
推薦:適合大公司。