RDSスナップショットから一部テーブルを復元する

0

RDSスナップショットから一部テーブルを復元する手順をまとめました。

ざっくりですが、環境は以下の図のようになります。

※データベースエンジンはMySQLです。

※EC2にはphpMyAdminがインストールされています。

1) スナップショットの復元

AWSマネジメントコンソールからスナップショットの復元を行います。

復元したいスナップショットを選択し、アクションから「スナップショットを復元」を選択します。

「DBインスタンスの復元」ボタンをクリックします。

※DBインスタンスの復元が完了するまで10分程度かかります。

2) phpMyAdminの設定ファイル編集

EC2インスタンスへインストールしているphpMyAdminの設定を変更します。

$ cd <phpMyAdminのディレクトリまで移動>

$ vi  config.inc.php

/*
* First server
*/
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = '稼働中データベースのエンドポイント';
$cfg['Servers'][$i]['verbose'] = 'productionDB';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;


/*
* Second server
*/
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'スナップショットから復元したデータベースのエンドポイント';
$cfg['Servers'][$i]['verbose'] = 'snapshotDB';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

赤文字の行を追加します。

※$cfg[‘Servers’][$i][‘verbose’] は、phpMyAdminのログイン時にサーバー選択プルダウンに表示される名称です。わかりやすい名前を入力してください。

3) テーブルのエクスポート

ブラウザからphpMyAdminへアクセスします。

サーバーの選択(Server Choice:)からスナップショットから復元したデータベース「snapshotDB」を選択してログインします。(パスワードなどのログイン情報は稼働中のデータベースと同じです)

スナップショットのデータベースからテーブルを選択してエクスポートを行います。

稼働中データベースのテーブルを削除してスナップショットのテーブルに置き換えるので、DROP TABLEコマンドを追加し、「実行」ボタンをクリックします。

4) テーブルのインポート

ログアウトし、今度は稼働中のデータべース「productionDB」を選択してへログインします。

インポートを行うデータベースを選択し、インポートを選択します。

「ファイルを選択」ボタンをクリックし、先ほどエクスポートしたファイルを選択し、「実行」ボタンをクリックします。

※作業が完了し、スナップショットから復元したデータベースが必要ない場合はマネジメントコンソールから削除を行います。

0
タイトルとURLをコピーしました