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

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

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

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

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

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

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

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

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

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


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

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

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

$ vi  config.inc.php

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

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


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

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

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

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

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


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

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

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

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

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

※掲載内容は、記事公開時点のものです。紹介されているサービス内容は変更される場合がありますので、ご利用の際は事前にサービス提供元等をご確認ください。

銀座ITラボ | FirebaseやAWSに関する技術情報を配信中

銀座ITラボは、iOS/Androidアプリなどのスマホアプリ、Firebase、AWSなどのクラウドサービス、Webシステム等の技術情報に関する記事を紹介するシンプルメーカーのオウンドメディアです。