暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库取证实战指南(二):阿里云数据库备份文件(_qp.xb)重构操作

Cyber取证 2025-04-03
137

点击蓝字,关注我们




前言:备份文件生成及恢复原理




1.  数据库备份文件的架构

物理备份文件(_qp.xb)采用 XtraBackup + QuickLZ + xbstream 的技术栈,其备份流程如下:

  • 数据备份:XtraBackup 对 InnoDB 表空间执热备份,生成流式数据;

  • 压缩优化:使用 qpress(基于QuickLZ 算法)对数据进行压缩,压缩比约 1:3-5,显著减少存储体积;

  • 流式封装:通过xbstream工具将压缩后的数据封装为流式文件(_qp.xb),支持分块存储和传输。

2. 恢复流程的逆操作逻辑

由于备份过程是 压缩至流式打包,恢复时必须严格遵循解包至解压的逆序

  • 解包(xbstream -x):解析流式文件结构,提取压缩数据块(.qp 文件);

  • 解压(xtrabackup --decompress):使用XtraBackup内置工具或qpress解压QuickLZ压缩的数据,恢复原始.ibd 表空间文件。

    ├── 生成原理  
    │   ├── 触发方式:手动/自动  
    │   ├── 数据捕获:全量/增量(LSN)  
    │   ├── 处理:压缩(QuickLZ/Zstandard) + 加密(AES-256)  
    │   └── 存储:OSS + 校验文件(.meta)  
    └── 恢复原理  
        ├── 下载备份文件  
        ├── 解包(xbstream -X)  
        ├── 解压(xtrabackup --decompress)  
        ├── 数据还原(copy-back)  
        └── 重启服务 (验证) 




    操作:数据库备份文件重构步骤




    1

    环境配置与软件安装

    1. 下载与安装Percona XtraBackup工具:

    1)访问官方下载中心:Percona 官网下载页面:https://www.percona.com/downloads,在Software Downloads页面选择Percona XtraBackup,根据MySQL主版本选择对应下载的XtraBackup;



    重要提示


    必须确保XtraBackup版本与MySQL数据库版本严格匹配:Percona XtraBackup 8.0 只支持MySQL 8.0的版本,Percona XtraBackup 2.4 支持MySQL 5.11 , 5.5, 5.6 和5.7的版本

    若版本不匹配,将导致解压失败或数据损坏!

    2)下载匹配的XtraBackup:复制上述版本下载链接,然后通过wget命令进行下载;

      wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/tarball/percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz

      3) 进行XtraBackup工具安装

      • 通过tar -xvf命令解压下载的安装包文件,默认解压到当前目录;

        tar -xvf percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz
        #参数说明
        #-x 解压(eXtract)
        #-v 显示解压过程(文件列表)
        #-f 指定压缩包路径(必须紧跟文件名)
        • 切换工作目录到XtraBackup安装包目录,复制旧版备份脚本到系统全局路径,复制 XtraBackup 主程序及依赖工具到系统路径,查看版本信息;

          cd percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17
          cp bin/innobackupex usr/bin
          cp bin/xtrabackup* usr/bin

          2. 下载与安装qpress工具

          1) 下载:从项目地址https://gitcode.com/open-source-toolkit/a139f 下载qpress-11-1.el7.x86_64.rpm文件(下载本地在进行上传服务器);

          2) 安装:使用命令sudo rpm -ivh qpress-11-1.el7.x86_64.rpm进行安装,安装完成后即可使用。

            sudo rpm -ivh qpress-11-1.el7.x86_64.rpm

            备注:CentOS和MySQ基础环境安装略过

            2

            备份文件解包解压

            1. 上传阿里云数据库备份文件:通过WinSCP或FinalShell等工具将备份数据库文件(*****_qp.xb)上传至服务器home路径下;

            2. 解包.xb数据库备份文件:通过xbstream -x命令解包备份文件至home路径的data目录下;(因为备份文件已经下载上传至服务器,本文解压采用的是文件重定向的输入方式xbstream -x -C dir < file.xb,直接读取文件

              xbstream -x -C home/data < hins35416560_data_20250331205415_qp.xb
              #参数说明
              #-x 解压
              #-C 指定目录
              #< 输入文件




              备注:如果是通过管道实时解压,不落地临时文件,采用管道输入方式,cat file.xb | xbstream -x -v -C dir

              3. 解压.qb文件数据库文件:通过 xtrabackup --decompress命令解压.xb文件解压出来的.qp文件;

                xtrabackup --decompress --remove-original --target-dir=/home/data

                4. 确认核对版本是否匹配:经过解包解压后,已经可以恢复原始的数据库文件结构,可以通过解压后的“xtrabackup_info”文件查看数据库及xtrabackup的版本信息。


                备注:如遇版本不匹配,需要重新安装匹配XtraBackup版本











                3


                数据库本地还原重构

                1. 下载备份文件:将解压完成后数据data文件从服务器下载到本地C盘根目录(路径自定义);

                2. 停止数据库服务:通过net stop mysql停止MySQL服务,需要确认本机mysql服务具体名称;

                备注:命令提示符需要以管理员身份运行,也可在任务管理器中找到对应mysql服务进行手动停止

                3.修改配置文件:编辑 my.ini 修改 datadir,将路径指向xb解压目录:C:\data(路径配置时Windows 推荐用正斜杠,避免转义问题 );

                4. 绕过数据库登录权限访问数据库:编辑 my.ini 添加 skip-grant-tables,找到 [mysqld] 段落,在任意位置新增(注意缩进一致),登录 MySQL 并检查数据是否完整,完成阿里云PolarDB数据库备份文件重构;

                  [mysqld]  
                  skip-grant-tables  # 新增行,禁用权限验证 




                  注意事项




                  • 软件版本兼容:确保XtraBackup工具版本与MySQL数据库版本匹配,备份数据库版本与本地重建环境MySQL数据库版本匹配;

                  • 解压空间问题:备份文件解压后体积约为原数据的1.5倍,需预留足够磁盘空间(建议 2 倍以上)

                  • 删除冗余日志:还原后若ib_logfile过大,可通过innpdb_log_file_size参数调整(需重启 MySQL)

                  以上是通过在 Linux 环境安XtraBackup等工具完成备份解包解压,再通过 Windows 部署 MySQL 实现数据重建操作的相关指引,倘若内容有误、有所遗漏,抑或存在优化空间,期待您能提出宝贵意见 

                  END









                  文章转载自Cyber取证,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论