恢复腾讯云云mysql5.7数据库xb后缀备份文件到新的云数据库
恢复腾讯云云mysql5.7数据库xb后缀备份文件到新的云数据库
背景:之前业务中的项目下线了,使用腾讯云的全量备份备份了腾讯云的云数据库mysql5.7的数据库,文件后缀是xb,现在想要重新将数据恢复出来。
大致流程:先购买一台云服务器,将数据库数据恢复到该云服务器中,导出成为sql文件,再购买一台云数据库,内网在云数据库中导入该sql文件,实现数据的恢复。
备份文件说明:为节约存储空间,腾讯云云数据库 MySQL 的物理备份和逻辑备份文件,都会先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具)进行压缩与打包。
腾讯云说明文档:https://cloud.tencent.com/document/product/236/33363
(说明文档注意点:“MySQL 5.6、5.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
1.1.2格式化 mkfs -t ext4 /dev/vdb
1.1.3临时挂载数据盘 mount /dev/vdb /opt
查看是否生效 df -Th
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
2.2安装mysql
2.2.1浏览器登录安装(软件商店-搜索mysql-安装-mysql5.7-急速-提交)
2.2.2停止mysql服务(软件商店-已安装-设置-停止)
可以使用 ps -ef |grep mysql检查
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
查看是否安装完成 yum list | grep percona
3.2安装qpress
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
3.2.2解压工具并设置环境变量
tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile
4.上传待恢复文件
降待恢复的xb后缀的文件上传到服务器中,这里我使用xftp上传到数据盘挂载的opt目录
如果下载的文件没有xb后缀,可以手动用mv给加上一个xb后缀
5.开始恢复数据库
5.1创建用于存放恢复文件的目录 mkdir /opt/data-mysql
5.2使用 xbstream 命令将备份文件解包到目标目录,执行命令后等待解包。
xbstream -x -C /opt/data-mysql < /opt/zct5_backup_20230111000756.xb
其中/opt/data-mysql为之前创建的用于存放恢复文件的目录,/opt/zct5_backup_20230111000756.xb为待恢复的数据库备份文件。
5.3解压qp文件
xtrabackup --decompress --target-dir=/opt/data-mysql
其中/opt/data-mysql为用于存放恢复文件的目录,解压时间相对会较长
输出“completed OK!”即为解压完成
5.4Prepare 备份文件
备份解压出来之后,执行如下命令进行 apply log 操作
xtrabackup --prepare --target-dir=/opt/data-mysql
执行后若结果中包含如下输出,则表示 prepare 成功。
5.5修改配置文件
备份并且编辑配置文件
vim /opt/data-mysql/backup-my.cnf
用#注释掉多余的参数,只保留
[mysqld]
innodb_data_file_path,innodb_log_files_in_group,innodb_log_file_size,innodb_undo_directory,innodb_undo_tablespaces,server_id
5.6修改文件属性,并检查文件所属为 mysql 用户
chown -R mysql:mysql /opt/data-mysql
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为存放恢复文件的目录
没有错误报错,查看进程
可以ctrl+c关闭输错,后台还会继续运行的,也可以另开一个窗口来连接查看数据库
5.7.2客户端登录 mysql 验证
mysql -uroot -p
无需密码,直接回车后回车就行了
5.7.3查看数据库数据
至此就恢复成功了
6. 导出数据库数据
6.1用mysqldump导出sql文件
例如:
mysqldump -u root -p -d cnr_quartz_pm2_1 > /opt/33.sql
需要输入数据库密码才能导出
7. 导入sql到数据库
登录新的云数据库,选择相应的数据库,使用source导入sql文件。