云mysql 冷备恢复

TX云的CCD–MYSQL 的物理和逻辑备份文件,都先通过了qpress的压缩,再通过 xbstream打包, 最后展示于控制台。
所以在本地恢复的时候需要反向操作, 先通过 xb 解压在通过 qpress解压, 最后才能直接使用。

1.准备一个和云上版数据库 大版本相同的本地数据库

云上采用 mysql 5.7 故在本地部署一个 5.7版本
https://www.ivdone.top/article/815.html
可参考如上进行部署
环境这里使用了centos 8 测试时发现8 默认提供了 mysql 8.0版本。所以在使用 8.0部署 5.7前需要将默认的mysql模块禁用。 不禁用的话部署好repo 后使用yum默认安装的还是myql8.0

mysql57的repo地址可参考如下
注意这里使用的是TX内网的地址,若需要公网使用请将域名替换为
mirrors.cloud.tencent.com

                [mysql5.7-server]
		name = mysql5.7-server
		baseurl = http://mirrors.tencentyun.com/mysql/yum/mysql-5.7-community-el7-x86_64/
		enabled = 1
		gpgcheck = 0

禁用 centos repo 中自带的 mysql 8.0

yum module disable mysql

安装 mysql 57

yum install mysql-community-server

启动mysql 57并查询root默认密码

systemctl restart mysqld.service &&  grep password /var/log/mysqld.log 

查询结果

2020-07-31T04:26:16.588949Z 1 [Note] A temporary password is generated for root@localhost: zWslZXJqj5?_

登陆mysql并重置密码

 ALTER USER 'root'@'localhost' IDENTIFIED BY '9OMv1Q8f1XSa$D5O';

2.安装 xtrabackup

mysql 57版本一下使用 2.4版本,最新版本建议配合mysql 8.0 使用。

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

xbstream和 xtrabackup 都是该包提供的

安装完成后下载冷备文件

wget -c '备份文件下载地址' -O test.xb

下载qpress 工具

wget http://www.quicklz.com/qpress-11-linux-x64.tar

若直接下载出现异常, 可直接访问网站进行下载。
如下是 下载完成的 qpress 工具

wget https://cd-test-gao-1257166515.cos.ap-chengdu.myqcloud.com/%E5%AD%A6%E4%B9%A0/qpress-11-linux-x64.tar

3.进行数据解压

使用xbstream工具进行首次解压(解包备份文件)完成后如下

xbstream -x -c /data/ < test.xb 

部署 qpress 并解压备份文件

部署

tar -xf qpress-11-linux-x64.tar -C /usr/local/bin/
 source /etc/profile
 qpress 

 解压
 该命令将目标目录 data 中的 .qp文件解压出来
xtrabackup --decompress --target-dir=/data 
aQ2e1A.md.png

修改恢复的备份文件中的mysql.cnf

    vim /data/backup-my.cnf

注释部分参数比变小版本不同导致的的异常

    #innodb_checksum_algorithm

    #innodb_log_checksum_algorithm

    #innodb_fast_checksum

    #innodb_page_size

    #innodb_log_block_size

    #redo_log_version   
aQRe5F.md.png

修改恢复的文件权限为mysql,停止mysql后使用命令启动恢复的库。
chown -R mysql:mysql /data

mysqld --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &
aQh7If.png
aQhDq1.png

启动后 通过公网使用云数据库的密码即可登录了 (是被恢复数据库的密码)
mysql -uroot -h”IP” -p