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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容