mysql备份恢复(二)

下载地址:https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

方法1

yum localinstall https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.24/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm

 

 

 

方法2

https://www.percona.com/doc/percona-xtrabackup/2.4/installation/yum_repo.html

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum list | grep percona
yum install percona-xtrabackup-24.x86_64

[root@zhh73 ~]# xtrabackup -v
xtrabackup: recognized server arguments: --datadir=/var/lib/mysql --server-id=1 --log_bin=mysql-bin 
xtrabackup version 2.4.24 based on MySQL server 5.7.35 Linux (x86_64) (revision id: b4ee263)

 

备份

PASS=$(base64 -d <<< QWJjNzc4ODk5IQo=)

innobackupex --user=root --password=$PASS /backup/

 

恢复

先模拟故障

[root@zhh73 lib]# cd /var/lib/
[root@zhh73 lib]# mv mysql mysql.bk

 

恢复数据

[root@zhh73 ~]# innobackupex --defaults-file=/etc/my.cnf  --copy-back /backup/2021-10-22_00-59-49/

 

root@zhh73 ~]# ls /var/lib/mysql
ib_buffer_pool ibdata1 mysql performance_schema sys tidb_binlog xtrabackup_info zhh

[root@zhh73 ~]# chown mysql -R /var/lib/mysql
[root@zhh73 ~]# systemctl restart mysqld

 

 

完整+增量的备份

完整备份后 新增一些数据

 

 

 

 

增量备份 需要指定上一次增量备份的目录

[root@zhh73 ~]# innobackupex --user=root --password=$PASS --incremental /increnment/  --incremental-basedir=/backup/2021-10-22_00-59-49/

 

 

 

 

 

 

 基于增量备份  再创建备份

新增一些数据

 

 

 

 

 

基于第一次的增量  做增量备份

[root@zhh73 2021-10-22_01-23-23]# innobackupex --user=root --password=$PASS --incremental /increnment/  --incremental-basedir=/increnment/2021-10-22_01-23-23/

 

 

xtrabackup 把备份过程中可能有尚未提交的事务或已经提交但是未同步数据文件的事务,写到xtrabackup_logfile文件,所以要先通过这个日志文件回滚,把未完成的事务同步到备份文件,保证数据文件处于一致性

[root@zhh73 2021-10-22_01-36-37]# innobackupex --apply-log  --redo-only /backup/2021-10-22_00-59-49/

 

合并第一次增量的备份

[root@zhh73 2021-10-22_01-36-37]# innobackupex --apply-log --redo-only /backup/2021-10-22_00-59-49/  --incremental-dir=/increnment/2021-10-22_01-23-23/

 

检查 完整备份和增量备份的checkpoint

 

 

合并后就可以恢复了

rm -rf /var/lib/mysql

innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2021-10-22_17-33-01/

chown mysql:mysql -R /var/lib/mysql

systemctl restart mysqld

 查看数据

 

 

合并第二次增量备份

[root@zhh73 backup]# innobackupex --apply-log --redo-only /backup/2021-10-22_17-33-01/ --incremental-dir=/increnment/2021-10-22_17-39-44/

 

查看checkpoint

 

 

恢复数据

rm -rf /var/lib/mysql

innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2021-10-22_17-33-01/

chown mysql:mysql -R /var/lib/mysql

systemctl restart mysqld

 

 

备份文件归档发送到备份服务器

[root@zhh73 ~]# innobackupex --databases=tidb_binlog --user=root --password=$PASS  --stream=tar /mysql_backup 2>/mysql_backup/bak.log |ssh root@172.18.109.74  "cat - > /mysql_backup/`date +%F`.tar"

 

解压

[root@zhh74 mysql_backup]# tar -ixvf 2021-10-22.tar

 

归档备份

[root@zhh73 mysql_backup]# innobackupex --user=root --password=$PASS --stream=tar /mysql_backup > /mysql_backup/`date +%F`.tar

 

压缩归档备份

[root@zhh73 backup]# innobackupex --user=root --password=$PASS --stream=tar /mysql_backup |gzip >/backup/`date +%F`.tar.gz


posted @ 2021-10-22 11:09  xihuxiangri  阅读(41)  评论(0编辑  收藏  举报