今天一位老友跟我说他的mysql备份文件后缀.xb无法还原,或者还原出来只有表格没有数据, 于是我决定尝试进行一下备份还原, 在网上搜了一下 有一个腾讯云的文档, 按照腾讯云的来吧
首先
解包备份文件
- 由于备份文件先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具),所以下载备份文件后,应该先用 xbstream 将其解包。xbstream 工具可以通过 Percona XtraBackup 官网下载或者直接下载二进制包。
- Percona XtraBackup 官网下载安装
请选择 Percona XtraBackup 2.4.6 及以上的版本,安装介绍请参见 官网文档,
选完对应的系统版本后, 选择在线安装
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-24
其实就是上面两个命令 ,安装完成后
1.安装好 XtraBackup 之后,使用 xbstream 命令将备份文件解包到目标目录。
xbstream -x -C /data < ./test.xb /data 是还原文件 在、data 名称是 test.xb
2.使用 qpress 命令将目标目录下所有以.qp
结尾的文件都解压出来。
xtrabackup --decompress --target-dir=/data /data
3.Prepare 备份文件
备份解压出来之后,需要执行以下命令进行 apply log 操作。
xtrabackup --prepare --target-dir=/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 用户。
chown -R mysql:mysql /data
启动 mysqld 进程并登录验证
- 启动 mysqld 进程。
mysqld_safe --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &
这里要说明一下 , 我在使用 mysqld_safe 时报错commond not found, 于是我就 直接使用 mysqld 具体区别请百度
2.客户端登录 mysql 验证。
mysql -uroot -p
这里我没有拿到 root 账户密码 没办法设置远程登录 于是我直接使用mysqldump 把需要的数据库进行导成sql ,然后在本地导入sql 正常 腾讯说明文档https://cloud.tencent.com/document/product/236/33363