RDS MySQL物理备份文件恢复到自建数据库使用xb文件恢复m

2020-08-05  本文已影响0人  yichen_china

RDS MySQL物理备份文件恢复到自建数据库

转载自阿里云https://help.aliyun.com/knowledge_detail/41817.html#concept-41817-zh
开源软件Percona Xtrabackup可以用于对数据库进行备份恢复,您可以使用该软件将云数据库MySQL的备份文件恢复到自建数据库中,本文将介绍详细的操作步骤。

说明

注意事项

本文使用Linux7的操作系统以及MySQL5.7版本为例进行演示。

前提条件

实例版本如下:

说明 基础版实例仅提供快照备份,无法下载。您可以参见基础版实例的备份怎么恢复或迁移

备份恢复操作步骤

  1. 登录RDS管理控制台

  2. 在页面左上角,选择实例所在地域。

  3. 找到目标实例,单击实例ID。

  4. 在左侧导航栏中单击备份恢复

  5. 选择数据备份标签页。

  6. 选择查询的时间范围,然后单击查询

  7. 在数据备份列表中,找到要下载的数据备份,并单击其右侧的下载

    说明 如果没有下载按钮,请确认您的实例版本是否支持下载物理备份文件

  8. 实例备份文件下载窗口,单击复制外网地址旁的

    ,获取数据备份文件外网下载地址。
  9. 登录云服务器ECS。

  10. 执行如下命令,下载数据备份文件。

wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>

说明

*   -c:启用断点续传模式。
*   -O:将下载的结果保存为指定的文件(使用URL中包含的文件名后缀 .tar.gz 、.xb.gz 或 _qp.xb)。
  1. 执行如下命令,解压已下载的数据备份文件。

说明

tar xvf qpress-11-linux-x64.tar chmod 775 qpress cp qpress /usr/bin

目前物理备份集文件有3种格式:

*   tar 压缩包 (.tar.gz 后缀)
*   xbstream 压缩包 (.xb.gz 后缀)
*   xbstream 文件包(_qp.xb 后缀)

说明 2019年2月20日后创建的MySQL 5.6实例,数据备份文件的格式为xbstream文件包(_qp.xb 后缀)。

对于tar 压缩包 (.tar.gz 后缀),使用命令:

tar -izxvf <数据备份文件名>.tar.gz -C /home/mysql/data
对于xbstream 压缩包 (.xb.gz 后缀),使用命令:
gzip -d -c <数据备份文件名>.xb.gz | xbstream -x -v -C /home/mysql/data
对于xbstream 文件包(_qp.xb 后缀),使用命令:

解包

    cat <数据备份文件名>_qp.xb | xbstream -x -v -C /home/mysql/data

    ## MySQL 5.6/5.7解压
    innobackupex --decompress --remove-original /home/mysql/data
    ## MySQL 8.0解压
    xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

解包报错解决

线上mysql数据库通过[innobackupex ]工具恢复时,如工具安装不完成会发生各种各样的报错。这里简单说明下depress解压缺少工具qpress解压办法。
默认系统无法yum或apt-get,可以通过下载官网的qpress tar包解压使用。
解决办法做如下三步操作即可:

1.  wget http://www.quicklz.com/qpress-11-linux-x64.tar
2.  tar xvf qpress-11-linux-x64.tar
3.  cp qpress /usr/bin

问题解决。
重新再执行命令就可以了。

说明 -C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录。

  1. 执行如下命令,查询解压后生成的文件。
ls -l /home/mysql/data

命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时RDS实例所包含的数据库。

  1. 执行如下命令,恢复解压好的备份文件。
## MySQL 5.6/5.7
    innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

    ## MySQL 8.0
    xtrabackup --prepare --target-dir=/home/mysql/data
    xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/home/mysql/data</pre>

若系统返回如下类似结果,则说明备份文件已成功恢复到自建数据库。


image.png

说明 请确保您的Percona XtraBackup版本正确:

  1. 为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。
  2. 执行如下命令,以文本方式编辑backup-my.cnf文件。
vi /home/mysql/data/backup-my.cnf
2.  自建数据库不支持如下参数,需要注释掉。
#innodb_log_checksum_algorithm
        #innodb_fast_checksum
        #innodb_log_block_size
        #innodb_doublewrite_file
        #rds_encrypt_data
        #innodb_encrypt_algorithm
        #redo_log_version
        #master_key_id
        #server_uuid
    **说明**
#innodb_log_checksum_algorithm=strict_crc32 #redo_log_version=1 skip-grant-tables
alter table <表名> engine=myisam;
3.  按**Esc**键,然后输入`:wq`并回车进行保存。
  1. 执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /home/mysql/data
  1. 执行如下命令,启动MySQL进程。
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

说明 建议您参考官方文档重置root账户的密码。

  1. 执行如下命令,登录MySQL数据库以验证进程启动成功。
mysql -uroot -p<数据库密码>
若系统返回如下结果,进程启动成功,则说明已成功执行参数注释和修改文件属主。
image.png

常见问题

wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz

命令下载时用2个英文单引号(')将下载地址包含起来,便于程序识别具体的地址,防止出错。

相关文档

上一篇 下一篇

猜你喜欢

热点阅读