通过华为云数据库.qp备份文件恢复自建数据库

举报
吴韩德MVP 发表于 2023/04/02 14:13:09 2023/04/02
【摘要】 华为云云数据库RDS原生支持全量物理备份和Binlog备份,可以非常方便的在云端进行数据恢复,但是近期,我的小伙伴需要将数据恢复至本地自建数据库中,操作中发现控制台下载的全量物理备份文件是.qp格式的,一时间不知道如何操作恢复,于是我在研究过后特此整理了测试环境的完整恢复过程。

      主要步骤:

  • 一、本地Centos7.8环境下自建mysql5.7
  • 二、下载安装qpress、Percona XtraBackup
  • 三、下载数据库物理备份文件
  • 四、执行备份恢复

一、本地Centos7.8环境下自建mysql5.7

检查删除默认mariadb
#rpm -qa|grep mariadb
#root rpm -e --nodeps mariadb-libs
#rpm -qa|grep mariadb

上传安装mysql5.7软件包
#tar -zxv mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-5.7.16-1.el7.x86_64.rpm
mysql-community-common-5.7.16-1.el7.x86_64.rpm
mysql-community-devel-5.7.16-1.el7.x86_64.rpm
mysql-community-embedded-5.7.16-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.16-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.16-1.el7.x86_64.rpm
mysql-community-libs-5.7.16-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.16-1.el7.x86_64.rpm
mysql-community-server-5.7.16-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.16-1.el7.x86_64.rpm
mysql-community-test-5.7.16-1.el7.x86_64.rpm

安装libaio包和net-tools包
#yum install libaio 
#yum install net-tools 

执行安装mysql5.7 (按照依赖顺序安装)
#rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
#rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
#rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
#rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

mysql初始化
#mysqladmin --version
#mysqld --initialize --user=mysql
#cat /var/log/mysqld.log |grep password
#systemctl start mysqld
#systemctl enable mysqld
#mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16 MySQL Community Server (GPL)

设置新密码
mysql>set password=password('新密码');

二、下载安装qpress、Percona XtraBackup

1、linux中用于解压.qp文件的命令qpress

解压下载的tar包,取出可执行文件
tar xvf qpress-11-linux-x64.tar
设置qpress文件的执行权限
sudo chmod 775 qpress
拷贝qpress到/usr/bin中
cp qpress /usr/bin

2、安装Percona XtraBackup(对于MySQL 5.7,需要下载及安装Percona XtraBackup 2.4及以上版本)

上传官网下载rpm文件
#rpm -ivh percona-xtrabackup-24-2.4.27-1.el7.x86_64.rpm --nodeps --force
#innobackupex  --version

三、下载数据库物理备份文件

四、执行备份恢复

创建临时目录
#mkdir /data

解包
#xbstream -x -p 4 < /root/备份文件.qp -C /data/

解压
#innobackupex --parallel 4 --decompress /data
应用日志
#innobackupex --apply-log /data

参数含义
--defaults-file	通过传入文件设置MySQL默认选项。
--apply-log	应用此目录下的事务日志文件xtrabackup_logfile到备份集解压后的路径中。
--prepare	xtrabackup工具备份前的准备命令,与后续备份恢复有关。
--datadir	源数据库数据所在路径。与MySQL服务的位置有关。
--target-dir	备份集解压后的路径。

注意:避免出现版本问题,需要修改解压后的backup-my.cnf文件,注释掉自建数据库不支持的参数
#innodb_log_checksum_algorithm
#innodb_fast_checksum
#innodb_log_block_size
#innodb_doublewrite_file
#innodb_encrypt_algorithm
#rds_encrypt_data
#redo_log_version
#master_key_id
#server_uuid
skip-grant-tables

停止数据库 备份数据
#systemctl stop mysqld
#mv /var/lib/mysql /var/lib/mysql_bak
#mkdir /var/lib/mysql
#chown mysql:mysql /var/lib/mysql
#innobackupex --defaults-file=/etc/my.cnf --copy-back /data

启动数据库,验证数据恢复
#systemctl start mysqld
#mysql -uroot -p
mysql>show databases;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。