原 【DB宝16】使用PXB全量恢复+mysqlbinlog二进制日志增量恢复华为云RDS备份到本地MySQL库实现完全恢复
Tags: 原创LinuxMySQLrac备份恢复其它主从复制
日常的数据备份及恢复测试,是DBA工作重中之重的事情,所以要做好备份及测试。MySQL数据库常见备份有mysqldump+binlog备份、xtrabackup+binlog备份,无论那一种,几乎都少不了对binlog的备份,说明了binlog在数据恢复中的重要性。
本文的恢复场景为:源库为华为云RDS for MySQL 5.7数据库,需要恢复到本地自建ECS中。本文演示的是一般恢复过程,详细日志没有写出。
恢复原理:华为云的RDS for MySQL的全备使用的是PXB进行的备份,没有增量备份,只有二进制日志的备份。
恢复工具:首先使用PXB(Percona XtraBackup)执行完全恢复,再使用mysqlbinlog工具解析二进制日志实现增量恢复。
一、本地ECS上安装相关软件
1.1 安装PXB软件(用于全量恢复,必须)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # PXB官网下载: https://www.percona.com/downloads/ #方法一: yum在线安装 yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum list | grep percona-xtrabackup yum install -y percona-xtrabackup-24 #方法二: 二进制包安装 yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL numactl tar -zxvf percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz mv percona-xtrabackup-2.4.20-Linux-x86_64 /usr/local/percona-xtrabackup-2.4.20-Linux-x86_64 ln -s /usr/local/percona-xtrabackup-2.4.20-Linux-x86_64 /usr/local/xtrabackup-2.4.20 ln -s /usr/local/percona-xtrabackup-2.4.20-Linux-x86_64/bin/innobackupex /usr/bin/innobackupex ln -s /usr/local/percona-xtrabackup-2.4.20-Linux-x86_64/bin/xtrabackup /usr/bin/xtrabackup ln -s /usr/local/percona-xtrabackup-2.4.20-Linux-x86_64/bin/xbstream /usr/bin/xbstream innobackupex --version xtrabackup --version xtrabackup --help |
1.2 安装qpress软件(用于解压操作,必须)
1 2 3 | wget http://www.quicklz.com/qpress-11-linux-x64.tar tar -xvf qpress-11-linux-x64.tar mv qpress /usr/bin/qpress |
1.3 安装mysqlbinlog软件(如果有MySQL Server环境,则不用单独安装,可选)
https://support.huaweicloud.com/usermanual-rds/rds_05_0138.html
1、MySQL的二进制日志(binary log)是一个二进制文件,主要记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。
2、mysqlbinlog工具用于解析binlog日志,包含在MySQL软件包中。您可在MySQL官网下载对应版本的MySQL软件包,解压并获取解压包中的mysqlbinlog工具(MySQL 5.6和5.7对应的mysqlbinlog版本均为3.4)。如果使用的mysqlbinlog工具版本太旧,就有可能无法正确解析MySQL binlog。软件包版本最好与当前您使用的msyqld大版本保持一致。3、binlog格式是二进制日志,mysql使用mysqlbinlog工具解析。
mysqlbinlog语法格式:mysqlbinlog mysql-bin.000001 | mysql -uroot -p 数据库名
mysqlbinlog 常用参数:
(1)-d:指定特定数据库的binlog
(2)-r:相当于重定向到指定文件,与>、<作用相同
(3)--start-position和--stop-position:按照指定位置解析binlog日志(精确),如不接--stop-positiion则一直到binlog日志结尾
(4)--start-datetime和--stop-datetime:按照指定时间解析binlog日志(模糊,不准确),如不接--stop-datetime则一直到binlog日志结尾
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!