云数据库 RDS

产品文档

云数据库 RDS

帮助中心 > 产品文档 > 云数据库 RDS > 将备份恢复到自建 MySQL

将备份文件恢复到自建数据库 MySQL

您可以将云数据库 MySQL 实例的备份数据恢复到自建数据库中。

注意事项

  • 自建数据库版本需要和备份文件的源数据库版本一致。
  • 备份的解压软件只支持在 Linux 下执行。
  • 解压工具的系统软件依赖:tee,python 版本 >= 2.7。
  • 当前系统已经安装 percona xtrabackup >= 2.4 ;如果没有安装,请参考 官方手册

操作说明

  1. 安装环境依赖,见注意事项
  2. 下载备份的解压工具,点击下载,并解压,工具名 mysql_backup_extract.py,使用示例如下
    # 查看帮助手册
    ./mysql_backup_extract.py -h
     
     # 解压云数据库 MySQL 实例的备份数据
     ./mysql_backup_extract.py  -v 5.7 -f ./backup.xbstream
3. 下载备份文件
    wget -c '<数据备份下载地址>' -O <自定义备份文件名>.xbstream

    -c:启动断点续传
    -O:将下载的结果保存为指定的文件,注意文件的后者必须是 .xbstream
  1. 解压备份数据,解压后的文件会保存在当前目录的子目录 tmp_snapshot 中,假设当前目录为 $HOME。
    ./mysql_backup_extract.py -v 5.7 -f <自定义备份文件名>.xbstream
    
    -v 参数可以不指定,默认:5.7,具体 -v 后面可以跟什么变量可以通过 -h 查看帮助手册得知。
  1. 恢复解压好的备份文件
    innobackupex --defaults-file=$HOME/tmp_snapshot/backup-my.cnf --apply-log $HOME/tmp_snapshot
当看到 ***innobackupex completed OK!*** 时, 表明执行成功,你就可以继续下一步操作了。
  1. 修改配置文件 backup-my.cnf
    # The MySQL server
    [mysqld]
    innodb_checksum_algorithm=innodb
    #innodb_log_checksum_algorithm=strict_crc32
    innodb_data_file_path=ibdata1:512M;ibdata2:512M:autoextend
    innodb_log_files_in_group=3
    innodb_log_file_size=536870912
    #innodb_fast_checksum=false
    #innodb_page_size=16384
    #innodb_log_block_size=512
    innodb_undo_directory=.
    innodb_undo_tablespaces=0
    #redo_log_version=1
  1. 修改文件属主,并确定文件所属为 MySQL 用户
    chown -R mysql:mysql $HOME/tmp_snapshot
  1. 启动 MySQL 进程
    mysqld_safe --defaults-file=$HOME/tmp_snapshot/backup-my.cnf --user=mysql --datadir=$HOME/tmp_snapshot &
  1. 登录 MySQL 数据库
    mysql -uroot -p
  • 密码默认为空, 直接回车即可。
更新时间:2019-06-24 17:10:30