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
修改恢复的备份文件中的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
修改恢复的文件权限为mysql,停止mysql后使用命令启动恢复的库。
chown -R mysql:mysql /data
mysqld --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &
启动后 通过公网使用云数据库的密码即可登录了 (是被恢复数据库的密码)
mysql -uroot -h”IP” -p