API 文档

使用物理备份恢复数据库

最近更新时间:2020-09-14 10:09:40

操作场景

说明:

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

开源软件 Percona Xtrabackup 可以用于对数据库进行备份恢复,本文为您介绍使用 XtraBackup 工具,将 MySQL 物理备份文件恢复至其他主机上的自建数据库。

前提条件

  • 下载并安装 XtraBackup 工具。
    下载地址请参见 Percona XtraBackup 官网,请选择 Percona XtraBackup 2.4.6 及以上的版本,安装介绍请参见 Percona XtraBackup 2.4
  • 支持的实例版本:MySQL 高可用版和金融版。
  • 启用数据加密功能的实例,不支持使用物理备份恢复数据库。

操作步骤

步骤1:下载备份文件

您可通过控制台下载云数据库 MySQL 的数据备份、日志备份。

说明:

默认每个 IP 限制10个链接,每个链接下载速度可达20Mpbs - 30Mpbs。

  1. 登录 MySQL 控制台,在实例列表,单击实例名或“操作”列的【管理】,进入实例管理页面。
  2. 在实例管理页面,选择【备份恢复】>【数据备份列表】页, 选择需要下载的备份,在“操作”列单击【下载】。
  3. 在弹出的对话框,推荐您复制下载地址,并 登录到云数据库所在 VPC 下的 CVM(Linux 系统) 中,运用 wget 命令进行内网高速下载,更高效。
    说明:

    • 您也可以选择【本地下载】直接下载,但耗时较多。
    • wget 命令格式:wget -c '备份文件下载地址' -O 自定义文件名.xb
    示例如下:
    wget -c 'https://mysql-database-backup-sh-1218.cos.ap-nanjing.myqcloud.com/12427%2Fmysql%2F0674-ffba-11e9-b592-70bd%2Fdata%2Fautomatic-delete%2F2019-12-03%2Fautomatic%2Fxtrabackup%2Fbk_61_156758150%2Fcdb-293fl9ya_backup_20191203000202.xb?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKzxfbLJ1%26q-sign-time%3D1575374119%3B1575417319%26q-key-time%3D1575374119%3B1575417319%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3Dba959757&response-content-disposition=attachment%3Bfilename%3D%22yuan177685_backup_20191203000202.xb%22&response-content-type=application%2Foctet-stream' -O ~/test.xb

步骤2:解包备份文件

  1. 使用 xbstream 命令将备份文件解包到目标目录。
    xbstream -x -C /data < ~/test.xb
    说明:

    • 本文目标目录以/data为例,您可根据实际情况替换为实际路径。
    • ~/test.xb替换为您的备份文件。
    解包结果如下图所示:
    extract.png

步骤3:解压备份文件

  1. 通过如下命令下载 qpress 工具。
    wget http://www.quicklz.com/qpress-11-linux-x64.tar
    说明:

    若 wget 下载提示错误,您可至 quicklz 下载 qpress 工具到本地后,再将 qpress 工具上传至 Linux 云服务器,请参见 通过 SCP 上传文件到 Linux 云服务器

  2. 通过如下命令解压出 qpress 二进制文件。
    tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
    source /etc/profile
  3. 使用如下命令将目标目录下所有以.qp结尾的文件都解压出来。
    xtrabackup --decompress --target-dir=/data
    说明:

    • /data为之前存储备份文件的目标目录 ,您可根据实际情况替换为实际路径。
    • Percona Xtrabackup 在2.4.6及以上版本中才支持--remove-original选项。
    • xtrabackup默认在解压缩时不删除原始的压缩文件,若需解压完删除原始的压缩文件,可在上面的命令中加上--remove-original参数。
    decompress.png

步骤4:Prepare 备份文件

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

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

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

步骤5:修改配置文件

  1. 执行如下命令打开backup-my.cnf文件。
    vi /data/backup-my.cnf
    说明:

    本文以目标目录/data为例,您可以根据实际情况将其替换成实际路径。

  2. 由于存在的版本问题,请将解压文件backup-my.cnf中如下参数进行注释。
    • innodb_checksum_algorithm
    • innodb_log_checksum_algorithm
    • innodb_fast_checksum
    • innodb_page_size
    • innodb_log_block_size
    • redo_log_version

步骤6:修改文件属性

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

chown -R mysql:mysql /data

步骤7:启动 mysqld 进程并登录验证

  1. 启动 mysqld 进程。
    mysqld_safe --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &
  2. 客户端登录 mysql 验证。
    mysql  -uroot

备份相关问题

请参见 备份常见问题备份失败原因

目录