RDS for MySQL では、物理および論理バックアップファイルを使ってローカルデータベースへクラウドデータを移行することができます。

物理バックアップファイルを使ったエクスポート

背景情報

ソフトウェアの制限により、データの復旧は現在 Linux のみで実行できます。 Windows にデータを回復する場合は、まずデータを Linux へ回復してから Windows へデータを移行します。

前提条件
データ復旧ツール Percona XtraBackup を Linux システムへインストールする必要があります。
  • MySQL 5.6 またはそれ以前のバージョンの場合は、Percona XtraBackup 2.3 をインストールします。
  • MySQL 5.7 の場合は、Percona XtraBackup 2.4 をインストールします。
インストール方法は、『Percona XtraBackup 2.3』および『Percona 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
    システムには RDS のデータベースである ”db0dz1rv11f44yg2”、"mysql"、および ”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_fast_checksum"、"innodb_page_size"、および "innodb_log_block_size" をコメントアウトし、"datadir=/home/mysql" を追加します。
    # This MySQL options file was generated by innobackupex-1.5.1.
    # The MySQL Server
    [mysqld]
    innodb_data_file_path=ibdata1:200M:autoextend
    innodb_log_files_in_group=2
    innodb_log_file_size=524288000
    #innodb_fast_checksum=0
    #innodb_page_size=16364
    #innodb_log_block_size=512
    datadir=/home/mysql/
  7. MySQL を再インストールし、データベースのルート権限を取得します。
    rm -rf mysql
    mysql_install_db --user=mysql --datadir=/home/mysql/
    mysql システムの再インストールが成功した場合、システムに次の情報が表示されます。
    Installing MySQL system table...
    OK
    Filling help table...
    OK
  8. ファイルの所有者を変更します。
    chown -R mysql:mysql /home/mysql/
  9. mysqld プロセスを開始します。
    mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &
  10. クライアントから、データベースへログインします。
    mysql–u root –p
  11. データベースの整合性を確認します。
    show databases;
    データベースの復元に成功した場合、システムに次の情報が表示されます。
    
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db0dz1rv11f44yg2   |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+

論理バックアップファイルを使ったエクスポート

この例では、ローカルサーバーが RHEL6/x64 システムを実行しており、バックアップファイルの保存パスは "/home/mysql/" であると仮定します。

手順
  1. 論理バックアップファイルをダウンロードし、そのファイルを対象サーバーへアップロードします。 バックアップファイルの取得方法については、「データとログバックアップファイルのダウンロード」をご参照ください。 ソースインスタンスから対象サーバーへアクセスできる場合は、wget "url"を使用し、バックアップファイルをダウンロードします。"url" はバックアップファイルのダウンロードアドレスを示します。
  2. バックアップファイルパスへ切り替えます。
    cd /home/mysql/
  3. バックアップファイルを解凍します。
    tar vizxf filename.tar.gz
    "filename.tar.gz" はバックアップファイルの名前を示します。
  4. SQL ファイルを解凍します。
    gunzip filename.sql.gz
    ”filename.sql.gz" は、解凍された SQL ファイルの名前です。
  5. 論理インポートを実行して、対象データベースへデータをインポートします。
    mysql -u userName -p -h hostName -P port dbName < filename.sql
    ”filename.sql” は、解凍したSQL ファイルの名前です。