NEWSニュース&ブログ

RDS for Oracleのバックアップ検討中の人注目! (⑤RDSのバックアップとリカバリ)

この記事は最終更新から3年以上経過しています。内容が古くなっている可能性があります。

投稿日:2014/10/10

今回もAmazon Relatinal Database Service (以下RDS)のリカバリについて記載しています。
前回はDBバックアップを使用して異なるDB名でリストアを行いました。
今回はDBスナップショットを使用してソースと同一DB名でのリストア結果を確認します。
(自動化バックアップとDBスナップショットについてはこちらをご参照ください。)

検証で使用する環境と実施する内容

検証で使用する環境を紹介します。
AWS上にRDS(Oracle 11gR2)を一つ作成し、検証環境上のOracle Client 11gR2から接続します。

図1:検証環境の構成 ・実施する内容

①テストデータ挿入
②自動化バックアップを使用した最新時刻へのリカバリ
③リカバリ結果確認
⇒①~③はブログ「RDS for Oracleのバックアップ検討中の人注目!(②RDSのバックアップとリカバリ)」を参照してください。
④テストデータ挿入
⑤自動化バックアップを使用した特定時刻へのリカバリ
⑥リカバリ結果確認
⇒④~⑥はブログ「RDS for Oracleのバックアップ検討中の人注目!(③RDSのバックアップとリカバリ)」を参照してください。
⑦テストデータ確認
⑧DBスナップショットを使用したリカバリ
⑨リカバリ結果確認
⇒⑦~⑨ブログ「RDS for Oracleのバックアップ検討中の人注目!(④RDSのバックアップとリカバリ)」を参照してください。

今回は以下を実施!!!
⑩テストデータ挿入
⑪DBスナップショットを使用したリカバリ(同一DBインスタンス名)
⑫リカバリ結果確認


今回リカバリ確認する作業の流れは以下の通りです。

図2:検証手順 ・テストデータを挿入後、手動バックアップを取得します。
・手動バックアップ取得後、DBを削除します。
・削除したDBと同一DB名にてリストアを行います。
・手動バックアップ取得時点のデータが挿入されていることを確認します。

では検証結果を見ていきます。

 

⑩ テストデータ確認

今度はDBスナップショット(手動バックアップ)を使用してソースと同一のDBインスタンス名を指定してリストアを検証します。

(1)DBスナップショット取得

1)テストデータの作成
以下のコマンドを実行しテストテーブルを作成します。
SQL> select * from test_table;
SQL> create table test_table (no varchar2(5), text varchar2(10)) tablespace USERS;
10:59:35 SQL> select * from test_table;
select * from test_table
              *
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。

10:59:43 SQL> create table test_table (no varchar2(5), text varchar2(10)) tablespace USERS;
表が作成されました。

 

2) テストデータ挿入
以下のコマンドを実行しテストデータを挿入します。
それぞれ10:59、11:00に実行します。
--10:59に実行
SQL> insert into test_table (no,text) values ( '1059','AAAAAAAAAA');
SQL> commit;
--11:00に実行
SQL> insert into test_table (no,text) values ( '1100','BBBBBBBBBB');
SQL> commit;
10:59:48 SQL> insert into test_table (no,text) values ( '1059','AAAAAAAAAA');
1行が作成されました。

10:59:49 SQL> commit;
コミットが完了しました。

10:59:52 SQL> select * from test_table;

NO         TEXT
---------- --------------------
1059       AAAAAAAAAA

10:59:55 SQL>
11:00:29 SQL> insert into test_table (no,text) values ( '1100','BBBBBBBBBB');
1行が作成されました。

11:00:31 SQL> commit;
コミットが完了しました。

11:00:33 SQL> select * from test_table;

NO         TEXT
---------- --------------------
1059       AAAAAAAAAA
1100       BBBBBBBBBB

 

2)DBスナップショット(手動バックアップ)の取得
「Instances」画面の「Instance Actions」プルダウンから「Take DB Snapshot」を押します。

図3:DBスナップショット(手動バックアップ)の取得

 

Snapshot Nameの欄にスナップショット名を入力し、「Yes, Take Snapshot」を押します。

図4:DBスナップショット(手動バックアップ)の取得

 

左ペインで「Snapshots」を選択し、取得したDBスナップショット名の「Status」が「available」になっていることを確認します。

図5:DBスナップショット(手動バックアップ)の取得

 

⑪ DBスナップショットを使用したリカバリ(同一DBインスタンス名)

(1) DBインスタンス削除

1. 「Instances」画面で「Instance Actions」のプルダウンから「Delete」を押します。

図6:DBインスタンス削除

 

2. 「Delete DB Instance」画面で「Create final Snapshot?」に「No」を選択し、「Yes,Delete」を押します。

図7:DBインスタンス削除

 

3. 「Instances」画面でDBインスタンスが削除されていることを確認します

図8:DBインスタンス削除

 

(2)DBスナップショットからリストアを実行
「Snapshots」画面で「Restore Snapshot」を押します。

図9:DBスナップショットからリストアを実行

 

(3)インスタンスパラメータ指定
「Restore DB Instance」画面でDBインスタンスのパラメータを指定して、リカバリを実行します。
例として以下のようにソースと同一のDBインスタンスパラメータを指定し、「Launch DB Instance」を押します。
(画像一部省略)

図10:DBインスタンスパラメータ指定1 図11:DBインスタンスパラメータ指定2

⑫リカバリ結果確認

(1)リカバリ完了確認
「Instances」画面でリストアしたDBインスタンス名の「Status」列が「creating」から「available」に変わることを確認します。

図12:リカバリ完了確認

 

(2)リカバリ完了確認(アラートログ)
「Instances」画面の最下部の「Logs」ボタンを押します。
「Recent Events & Logs」タブの最下部付近に「trace/alert_.log」 が表示されていることを確認し「view」ボタンを押します。
例として以下のログが表示されていることを確認します。
・ALTER DATABASE OPEN

図13:リカバリ完了確認(アラートログ)

 

(3)リカバリ完了確認
リストアしたDBインスタンスに接続し、DBスナップショットを作成時のデータが新規DBインスタンスで復旧していることを確認します。

1)DBインスタンス接続
以下のコマンドを実行し、DBインスタンスへ接続します。
(事前にOracle Clientのtnsnames.oraにORCLの接続情報を追記しています。)
C:\app\administrator> sqlplus oracle@orcl
SQL> select instance_name from v$instance;
(出力結果省略)

 

2)データの確認
以下のコマンドを実行し、データを確認します。

SQL> select * from test_table;

以下のようにテーブルとデータが復旧していることが確認できます。
11:31:24 SQL> select * from test_table;

NO         TEXT
---------- --------------------
1059       AAAAAAAAAA
1100       BBBBBBBBBB

11:31:28 SQL>

 

以上が、DBスナップショットを使用したリカバリの検証になります。
ソースと同一のDBインスタンス名でリストアをした場合は、resetlogsを使用した不完全リカバリは実行されず、begin backup/end backup時の静止点で取得したスナップショットからDBが起動されています。ユーザーフレンドリーなインターフェースで数回のクリックで簡単にバックアップとリカバリが実行できますので、ヒューマンエラーなどの際にDBインスタンスの復旧作業が迅速に行えることが期待できます。

以上