edit-icon download-icon

Apsare RDS for MySQL のバックアップファイルを個人のMySQLサーバにリストアする方法

最終更新日: Aug 18, 2017

1. 概要とソフトウェアについて

1.1 概要

ApsaraDB for RDS MySQL ではオープンソースソフトウェア percona-Xtrabackup を使って、MySQLのデータベースをバックアップし、リストアすることが可能です。

1.2 ソフトウェアについて

バックアップファイルの解凍に使用するツール

RDSのバックアップファイルは圧縮パッケージファイルのため、はじめに解凍する必要があります。解凍に必要な専用のツールを次のリンク先からダウンロードしてください。 現在は64ビットLinuxシステムのみサポートしています。rds_backup_extract (sh ファイル)

ソフトウェア使用手順:

  1. bash rds_backup_extract -f backup.tar.gz/back.xb.gz -C directory

-f 解凍したいバックアップファイルを指定

-C 解凍先のディレクトリ;-C パラメータは任意です。指定しない場合には現在のディレクトリに解凍します。

  1. bash rds_backup_extract -f backup.tar.gz

※注意:bash コマンドを使って rds_backup_extract スクリプトファイル実行する必要があります。

バックアップファイルのリストアに使用するソフトウェアリストアソフトウェアは Percona-XtraBackupの公式ホームページ(ダウンロードアドレス:https://www.percona.com/downloads/XtraBackup/ )からダウンロードしてください。各OS用のインストールパッケージが提供されています。またRDS のバックアップで使用されているバージョンは2.2.9のため、2.2.9 以上の最新版をご利用ください。このツールについて詳細は公式ドキュメントをご参照ください。

2. リストア手順

2.1 バックアップファイルをダウンロード

具体的な手順はLinux システム上でwgetツールを使用しRDS のバックアップファイルとログファイルのダウンロードにご参考ください。

ダウンロードが成功した場合は以下の通りです

1

2.2 バックアップファイルの解凍

バックアップファイル解凍する前に,解凍ツール rds_backup_extract ダをウンロードします。

バックアップファイルの解凍:

  1. bash rds_backup_extract -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data

下記画像の通り:

2

解凍されたファイルを確認します。青文字のディレクトリファイルはバックアップ時に作成されたRDSのデータベースです。

3

2.3 データリストア

バックアップファイル解凍する前にPercona-XtraBackup のインストールを実施してください。
インストール完了後、下記のコマンドを実行します。

  1. innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

4

コマンドの実行後、「completaed OK!」が表示されれば、リストア成功です。

5

2.4 設定ファイルの修正

バージョンの問題のため,解凍されたファイル backup-my.cnf にある以下の設定をコメントアウトしてください。

innodb_fast_checksum
innodb_page_size
innodb_log_block_size

6

2.5 ファイル所有者の修正

ファイル所有者を mysql に修正し、所有者名がmysqlに変更されているか確認します。

  1. chown -R mysql:mysql /home/mysql/data

7

2.6 mysqldプロセスの起動とログインの検証

mysqldプロセスを起動し、正常にプロセスが起動したか確認します。

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

8

クライアントがmysqlにログインできるか検証します。

9

※注意:

● mysql.user テーブルにはに RDS で作成されたアカウントは含まれていません。リストア完了後、改めてアカウント作成が必要です。
● アカウント作成する前に下記SQL文を実行してください:
  1. delete from mysql.db where user<>'root' and char_length(user)>0;
  2. delete from mysql.tables_priv where user<>'root' and char_length(user)>0;
  3. flush privileges;

3. 他の問題

ソフトウェアの制限により、現在データリストアはLinux系OS上でしか実行できません。なお、リストアされたデータはWindows上、Linux上 どちらのOSで起動するMySQLでも正常に使用することができます。