【MySQL Database】Percona XtraBackup備份
阿新 • • 發佈:2020-11-30
使用官方Yum Repository安裝Percona XtraBackup [root@wallet01 ~]# wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm [root@wallet01 ~]# rpm -ivh percona-release-latest.noarch.rpm [root@wallet01 ~]# yum install -y percona-xtrabackup-24 建立使用者,授予必要的許可權 [root@wallet01 ~]# mysql -uroot -pabcd.1234 mysql> create user xtrabackup@'localhost' identified by 'xtrabackup'; Query OK, 0 rows affected (0.10 sec) mysql> grant reload,lock tables,replication client,process on *.* to xtrabackup@'localhost'; Query OK, 0 rows affected (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.03 sec) 全量備份指令碼 [mysql@wallet01 ~]$ vim full_backup.sh #!/bin/bash user='xtrabackup' passwd='xtrabackup' backup_dir='/home/mysql/backup' /usr/bin/xtrabackup --backup --user=$user --password=$passwd --target-dir=$backup_dir/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ chmod a+x full_backup.sh 增量備份指令碼 [mysql@wallet01 ~]$ vi incr_backup.sh #!/bin/bash user='xtrabackup' passwd='xtrabackup' backup_dir='/home/mysql/backup' last_day=$(date -d "1 days ago" +%Y-%m-%d) filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}') /usr/bin/xtrabackup --backup --user=$user --password=$passwd --incremental-basedir=$backup_dir/$filename --target-dir=$backup_dir/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ chmod a+x incr_backup.sh 備份策略:週日全量備份,週一至週六增量備份 [mysql@wallet01 ~]$ crontab -e 00 3 * * 0 /home/mysql/full_backup.sh>/home/mysql/backup/full_backup.log 2>&1 00 3 * * 1-6 /home/mysql/incr_backup.sh>/home/mysql/backup/incr_backup.log 2>&1 保留最近兩週的備份檔案 [mysql@wallet01 ~]$ find /home/mysql/backup/ -type d -mtime +14 -exec rm -rf {} \;