开发者社区 问答 正文

常见问题 - 数据备份/恢复 -恢复云数据库MySQL的备份文件到自建数据库


云数据库MySQL版使用开源软件Percona Xtrabackup对数据库进行备份,所以您可以使用该软件将云数据库MySQL的备份文件恢复到自建数据库中,本文将介绍详细的操作步骤。
关于云数据库MySQL版如何备份数据,请参见 备份RDS数据

前提条件


  • 本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同。

    说明:由于软件限制,目前只支持将云数据库MySQL的备份文件恢复到安装在Linux系统中的自建MySQL数据库中。但在Linux下恢复的数据文件,可以在Windows和Linux操作系统中正常使用。

  • 操作系统中已安装数据恢复工具Percona XtraBackup。MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3。MySQL 5.7版本需要安装 Percona XtraBackup 2.4。可以从Percona XtraBackup官网下载安装,安装指导请参见官方文档 Percona XtraBackup 2.3Percona XtraBackup 2.4.

  • 操作系统中已安装数据备份文件解压工具rds_backup_extract.sh。若未安装,请点击下载


操作步骤


  1. 获取数据备份文件下载地址,具体操作步骤如下。
    登录RDS管理控制台

  2. 选择目标实例所在地域。

  3. 单击目标实例的ID,进入基本信息页面。

  4. 在左侧导航栏中,选择备份恢复,进入备份恢复页面。

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

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

  7. 在数据备份列表中,找到要下载的数据备份,并单击其对应的下载,如下图所示。
    [url=http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/41817/cn_zh/1501083530582/%E4%B8%8B%E8%BD%BD%E6%95%B0%E6%8D%AE%E5%A4%87%E4%BB%BD.png][/url]
    恢复完成后,表mysql.user中不包含在RDS实例中创建的用户,需要新建。在新建用户前,执行如下命令。

    [list=1]
  8. delete from mysql.db where user<>’root and char_length(user)>0;delete from mysql.tables_priv where user<>’root and char_length(user)>0;flush privileges;

展开
收起
梨好橙 2018-09-16 23:29:14 1947 分享 版权
阿里云 AI 助理回答

如何使用Percona XtraBackup恢复云数据库MySQL版备份到自建数据库

1. 概述

在确保数据安全和业务连续性方面,数据库备份与恢复是至关重要的操作。本文将指导您如何利用开源软件Percona XtraBackup,将阿里云RDS MySQL版的物理备份文件恢复到本地自建的MySQL数据库中,适用于需要迁移数据或构建灾备环境的场景。

2. 前提条件

  • 操作系统兼容性:确保您的自建MySQL数据库运行在64位Linux系统上,并且版本与云数据库MySQL版完全相同。
  • 工具准备
    • 安装Percona XtraBackup,版本需与MySQL版本匹配:MySQL 5.6及之前使用2.3版本,MySQL 5.7使用2.4版本。
    • 安装解压工具rds_backup_extract.sh,如果未安装,请从阿里云文档提供的链接下载。

3. 备份文件获取步骤

  1. 登录RDS管理控制台,选择目标实例所在地域。
  2. 点击目标实例ID进入基本信息页面。
  3. 在左侧导航栏选择备份恢复,进入备份恢复页面。
  4. 选择数据备份标签页,设置查询时间范围后点击查询。
  5. 在数据备份列表中找到并点击要下载的备份记录旁的“下载”按钮。

4. 数据恢复操作步骤

  1. 使用从控制台获取的下载地址,通过curl命令(支持断点续传)下载备份文件到本地。
  2. 运行rds_backup_extract.sh脚本解压下载的备份文件。
  3. 修改自建MySQL数据库的配置文件(如my.cnf),确认datadir设置正确。
  4. 根据MySQL版本,执行相应的innobackupex命令进行数据恢复,例如对于MySQL 5.7:
    sudo innobackupex --apply-log /var/mysql_bkdata/ --target-dir=/var/mysql_data/
    sudo innobackupex -defaults-file=/etc/my.cnf -copy-back /var/mysql_bkdata/
    

    其中,/var/mysql_bkdata/为解压后的备份目录,/var/mysql_data/为目标数据目录。

  5. 执行清理和权限调整等必要操作,然后重启自建MySQL服务。
  6. 执行特定SQL命令以处理用户权限问题,如删除非root用户的权限记录:
    delete from mysql.db where user<>’root’ and char_length(user)>0;
    delete from mysql.tables_priv where user<>’root’ and char_length(user)>0;
    flush privileges;
    

5. 注意事项

  • 版本一致性:确保自建数据库与RDS MySQL版版本一致,避免因版本差异导致的恢复失败。
  • 权限与安全:操作前确认具有足够的权限,并注意数据传输过程中的安全性。
  • 存储空间:检查自建数据库服务器有足够的磁盘空间用于存放恢复的数据。
  • 网络流量:若自建数据库不在阿里云内网,考虑下载备份文件可能产生的外网流量费用。

通过遵循上述步骤,您可以有效地将云数据库MySQL版的备份数据恢复至本地自建MySQL环境中,实现数据的安全迁移或备份。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答