修的了电脑 敲得了代码
     写得了前端 稳得住后端

迁移 RDS for MySQL 数据到本地 MySQL(亲测并亲身经历)

里云数据库 MySQL 版支持通过物理备份文件和逻辑备份文件两种途径将云上数据迁移到本地数据库。

利用物理备份文件导出

背景信息

因为软件限制,目前数据恢复只支持在 Linux 系统下进行。如果您要恢复数据到 Windows 系统,可以先将数据恢复到 Linux 系统下,再将数据迁移到 Windows 系统。

前提条件

操作系统中已安装数据恢复工具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

操作步骤

本例以本地服务器为 RHEL6/x64 系统,备份文件存储路径为 /home/mysql/ 为例。

  1. 下载云数据库 物理备份文件 并上传至目标服务器。备份文件获取方法请参见 下载数据备份和日志备份。如果目标服务器可以访问源实例,您也可以使用 wget "url" 下载备份文件。其中 url 为备份文件下载地址。
  2. 切换路径到备份文件所在路径。
    cd /home/mysql/
  3. 解压备份文件。
    tar vizxf filename.tar.gz

    其中,filename.tar.gz为备份文件名。

  4. 检查解压后文件包含的数据库是否正确。
    cd filename/ll

    系统显示如下,其中 db0dz1rv11f44yg2mysql 和 test 为云数据库中存在的数据库。

    -rw-r--r-- 1 root root       269 Aug 19 18:15 backup-my.cnf
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 db0dz1rv11f44yg2
    -rw-rw---- 1 root root 209715200 Aug  7 10:44 ibdata1
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 mysql
    drwxr-xr-x 2 root root      4096 Aug 21 10:31 test
    -rw-r--r-- 1 root root        10 Aug 19 18:15 xtrabackup_binary
    -rw-r--r-- 1 root root        23 Aug 19 18:15 xtrabackup_binlog_info
    -rw-r--r-- 1 root root        77 Aug 19 18:15 xtrabackup_checkpoints
    -rw-r--r-- 1 root root      2560 Aug 19 18:15 xtrabackup_logfile
    -rw-r--r-- 1 root root        72 Aug 19 18:15 xtrabackup_slave_info
  5. 恢复数据文件。
    innobackupex --defaults-file=./backup-my.cnf --apply-log ./

    系统显示innobackupex: completed OK!,则数据恢复成功。

    6.修改配置文件 backup-my.cnf ,紧保留innodb_data_file_path、 innodb_log_files_in_group、innodb_log_file_size(其他全部注释),并且添加 datadir=/home/data/aliyunjieya/task/mysql/,如下所示。

    # This MySQL options file was generated by innobackupex.
    
    # The MySQL server
    [mysqld]
    #innodb_checksum_algorithm=innodb
    #innodb_log_checksum_algorithm=innodb
    innodb_data_file_path=ibdata1:200M:autoextend
    innodb_log_files_in_group=2
    innodb_log_file_size=1572864000
    #innodb_fast_checksum=false
    #innodb_page_size=16384
    #innodb_log_block_size=512
    datadir=/home/data/aliyunjieya/task/mysql/
    skip-grant-tables#破解密码,跳过权限认证
    #innodb_undo_directory=.
    #innodb_undo_tablespaces=0
    
    #rds_encrypt_data=false
    #innodb_encrypt_algorithm=aes_128_ecb

    7.修改文件属主。

    chown -R mysql:mysql /datadir=/home/data/aliyunjieya/task

                把解压出来的目录的权限全部设置成mysql

8.启动 mysqld 进程。

    mysqld_safe --defaults-file=/home/data/aliyunjieya/task/backup-my.cnf --user=mysql --datadir=/home/data/aliyunjieya/task &

需要修改两个参数为自己的。第一个--defaults-file,backup-my.cnf的位置。--datadir 解压出来的数据库目录。

 

9.试用sqlyog连接该mysql数据库。

(1)设置ssh,输入账号和密码、ip

(2)设置连接mysql。地址填写locahost、填写mysql的账号和密码。(如果backup-my.cnf使用了skip-grant-tables跳过密码验证,这里的密码随便填写,如123456)

 

(3)设置这两个参数,点击一下连接或者测试连接都可以

 

赞(1)
未经允许不得转载:流云溪|码农 » 迁移 RDS for MySQL 数据到本地 MySQL(亲测并亲身经历)