恢复腾讯云云mysql5.7数据库xb后缀备份文件到新的云数据库 -萝卜胡-我爱你
寻寻觅觅,冷冷清清,
凄凄惨惨戚戚。
#夸夸我 #抱抱我 #亲亲我

恢复腾讯云云mysql5.7数据库xb后缀备份文件到新的云数据库

发布于 2023-09-26 19:11:10 | 标签:XtraBackup | 阅读量:284

恢复腾讯云云mysql5.7数据库xb后缀备份文件到新的云数据库

 

背景:之前业务中的项目下线了,使用腾讯云的全量备份备份了腾讯云的云数据库mysql5.7的数据库,文件后缀是xb,现在想要重新将数据恢复出来。

 

大致流程:先购买一台云服务器,将数据库数据恢复到该云服务器中,导出成为sql文件,再购买一台云数据库,内网在云数据库中导入该sql文件,实现数据的恢复。

 

备份文件说明:为节约存储空间,腾讯云云数据库 MySQL 的物理备份和逻辑备份文件,都会先经过 qpress 压缩,后经过 xbstream 打包(xbstream Percona 的一种打包/解包工具)进行压缩与打包。

腾讯云说明文档:https://cloud.tencent.com/document/product/236/33363

(说明文档注意点:MySQL 5.65.7 请选择 Percona XtraBackup 2.4.6 及以上的版本”,修改“backup-my.cnf”文件这两处而需要额外注意。)

 

目录:

1.准备云服务器

2.安装mysql5.7

3.安装恢复程序

4.上传待恢复文件

5.开始恢复数据库

6.导出数据库数据

7.导入sql到数据库

 

 

1. 准备云服务器

2c4g-centos7.5 64-50g系统盘-200g数据盘

1.1格式化并挂载数据盘(如未格式化的话)

1.1.1查看未挂载的数据盘fdisk -l

image.png 

1.1.2格式化 mkfs -t ext4 /dev/vdb

image.png 

1.1.3临时挂载数据盘 mount /dev/vdb /opt

查看是否生效 df -Th

image.png 

 

2. 安装mysql5.7

2.1安装宝塔面板以安装临时使用的msyql5.7

宝塔官网:https://www.bt.cn/new/download.html

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

image.png 

2.2安装mysql

2.2.1浏览器登录安装(软件商店-搜索mysql-安装-mysql5.7-急速-提交)

image.png 

2.2.2停止mysql服务(软件商店-已安装-设置-停止)

image.png 

可以使用 ps -ef |grep mysql检查

image.png 

 

 

3. 安装恢复程序

3.1安装Percona XtraBackup

percona-xtrabackup-24-2.4.6-2.el7.x86_64.rar


下载2.4.6及以上版本的Percona XtraBackup,并上传到服务器中,yum本地安装,在文件目录下执行:

yum localinstall  percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm

image.png 

查看是否安装完成 yum list | grep percona

image.png 

 

3.2安装qpress

qpress-11-linux-x64.tar


3.2.1下载工具 wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar

image.png 

3.2.2解压工具并设置环境变量

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

source /etc/profile

image.png 

 

4.上传待恢复文件

降待恢复的xb后缀的文件上传到服务器中,这里我使用xftp上传到数据盘挂载的opt目录

如果下载的文件没有xb后缀,可以手动用mv给加上一个xb后缀

image.png 

 

5.开始恢复数据库

5.1创建用于存放恢复文件的目录 mkdir /opt/data-mysql

image.png 

5.2使用 xbstream 命令将备份文件解包到目标目录,执行命令后等待解包。

xbstream -x -C /opt/data-mysql < /opt/zct5_backup_20230111000756.xb

其中/opt/data-mysql为之前创建的用于存放恢复文件的目录,/opt/zct5_backup_20230111000756.xb为待恢复的数据库备份文件。

image.png 

image.png 

5.3解压qp文件

xtrabackup --decompress --target-dir=/opt/data-mysql

其中/opt/data-mysql为用于存放恢复文件的目录,解压时间相对会较长

image.png 

输出completed OK!”即为解压完成

image.png 

 

5.4Prepare 备份文件

备份解压出来之后,执行如下命令进行 apply log 操作

xtrabackup --prepare  --target-dir=/opt/data-mysql

image.png 

执行后若结果中包含如下输出,则表示 prepare 成功。

image.png 

 

5.5修改配置文件

备份并且编辑配置文件

vim /opt/data-mysql/backup-my.cnf

image.png 

#注释掉多余的参数,只保留

[mysqld]

innodb_data_file_pathinnodb_log_files_in_groupinnodb_log_file_sizeinnodb_undo_directoryinnodb_undo_tablespacesserver_id


image.png 

 

5.6修改文件属性,并检查文件所属为 mysql 用户

chown -R mysql:mysql /opt/data-mysql

image.png 

 

5.7开始查看恢复的数据库

5.7.1启动 mysqld 进程

mysqld_safe --defaults-file=/opt/data-mysql/backup-my.cnf --user=mysql --datadir=/opt/data-mysql &

使用mysqld_safe启动,其中--defaults-file为修改的配置文件的路径,--datadir为存放恢复文件的目录

image.png 

没有错误报错,查看进程

image.png 

可以ctrl+c关闭输错,后台还会继续运行的,也可以另开一个窗口来连接查看数据库

5.7.2客户端登录 mysql 验证

mysql -uroot -p

无需密码,直接回车后回车就行了

image.png 

5.7.3查看数据库数据

image.png 

至此就恢复成功了

 

6. 导出数据库数据

6.1mysqldump导出sql文件

例如:

mysqldump -u root -p -d  cnr_quartz_pm2_1 > /opt/33.sql

 

需要输入数据库密码才能导出

 

7. 导入sql到数据库

登录新的云数据库,选择相应的数据库,使用source导入sql文件。