XBK备份方法

percona-xtrabackup 应用

介绍 

物理备份工具。备份数据文件。

下载安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

yum -y install percona-xtrabackup-*

 配置

[client]

socket=/tmp/mysql.sock

xbk备份恢复原理

备份:

InnoDB表:

  1、xbk备份执行的瞬间,立即触发ckpt,已提交的数据脏页,从内存刷写到磁盘,并记录此时的LSN号

  2、备份InnoDB表时,拷贝 ibd 、ibdata、undo、ibtmp1,将备份期间产生的redo截取拷贝,记录LSN

非InnoDB表:

  1. 触发 FTWRL 全局锁,关闭binlog记录

  2. 拷贝非InnoDB表数据。

数据完成后

  记录binlog位置,停止redo拷贝,记录last lsn,记录所有备份日志到指定日志文件中,解锁


恢复: 

1. prepare 备份:利用了InnoDB CSR的功能,使用redo进行前滚,undo进行回滚

    2. 恢复备份: cp 文件至源路径。

应用 

全备

innobackupex --user=root --password=123 --no-timestamp  /opt/full/xbkfull_`date +%F`

全备恢复演示

[root@db01 ~]# pkill mysqld

[root@db01 ~]# rm -rf /data/3306/data/*

# prepare 全备

[root@db01 ~]# innobackupex  --apply-log  /opt/full/xbkfull_2020-03-27/

# 恢复全备

[root@db01 ~]# innobackupex --copy-back /opt/full/xbkfull_2020-03-27/

或者:

[root@db01 data]# cp -r /opt/full/xbkfull_2020-03-27/* /data/3306/data/

[root@db01 ~]# chown -R mysql.mysql /data/

[root@db01 data]# /etc/init.d/mysqld start

你可能感兴趣的:(XBK备份方法)