連載
» 2011年07月21日 00時00分 公開

バックアップやアーカイブログの管理独学! ORACLE MASTER Gold 11g講座(7)(2/2 ページ)

[武見弘之,システム・テクノロジー・アイ]
前のページへ 1|2       

保存ポリシー設定

 リカバリ関連のファイルを残す範囲の設定を「保存ポリシー」と呼びます。初期設定では、各ファイルが1回分のバックアップを残すという設定になっています。そして、「保存ポリシー」の範囲外となったファイルは「不要ファイル」となります。

 万が一、取得したバックアップファイルが壊れていた場合に備え、n回分のバックアップを残す設定も可能です(n世代分のバックアップとも呼びます)。また本稿では触れませんが、、同一時点のバックアップファイルを多重に取得することも可能です。

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

 再度バックアップを取得し、削除できるファイルを確認してみます。

RMAN> backup format '/home/oracle/backup/%d_%s_%p.bus' database;
RMAN> report obsolete;
古いバックアップはありません。

 このreportやdeleteコマンドは、オプション指定が可能です。

 保存ポリシーを1世代に指定したとき、削除可能なファイルを一覧表示するには、以下のようにコマンドを実行します。

RMAN> report obsolete redundancy 1;

 3世代分バックアップを取得していないファイルの一覧は以下のコマンドで確認できます。

RMAN> report need backup redundancy 3;

 第2回で紹介している「フラッシュリカバリ領域」をバックアップやアーカイブログファイルの保存先とすることも検討しましょう。この「フラッシュリカバリ領域」はサイズ上限を設定できます。

 取得したバックアップファイルやアーカイブログファイルのファイルサイズが、設定値上限に達したとき、保存ポリシーを維持しながら、古くなったバックアップやアーカイブを自動的に削除してくれます。

RMANリポジトリを意識した管理

 気を付けたいのは、バックアップやアーカイブログのファイルを直接OS上で移動、削除してしまうことです。こうするとRMANリポジトリのデータとの不整合が生じます。

 バックアップを取得した直後で、それ以外のバックアップファイルやアーカイブログファイルなど存在していない状態を作り、OS上でバックアップファイルを消してしまいましょう。

backup $ ls
ORCL_21_1.bus
backup $ rm ORCL_21_1.bus ←OSでファイルを消しています

 続いて、RMANを使って削除対象を直接指定してdeleteコマンドを発行します。

RMAN> delete backupset 20; ← 20はリポジトリ上のバックアップセットKey
(内部管理されているID)
バックアップ・ピースのリスト
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
20      20      1   1   AVAILABLE   DISK        /home/oracle/backup/ORCL_21_1.bus
このオブジェクトを削除しますか(YESまたはNOを入力してください)。 yes
RMAN-06207: 警告: 1チャネルに対してDISKオブジェクトを削除できませんでした
RMAN-06208:          一致しないステータスのため。  CROSSCHECKコマンドを使用してステータスを修正してください
RMAN-06210: 一致しないオブジェクトのリスト
RMAN-06211: ==========================
RMAN-06212:   オブジェクト型   ファイル名/ハンドル
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Backup Piece    /home/oracle/backup/ORCL_21_1.bus

 上記のように、リポジトリではAVAILABLE登録となっているファイルですが、実際にはOS上に存在していないため、削除実行時にエラーとなりました。

 そこで、RMANのcrosscheckコマンドを実行します。このcrosscheckコマンドは、OSファイルとリポジトリの整合性を確認します。

 また、今回は続けて、delete expiredコマンドも実行します。crosscheckコマンドで調べた結果、ファイルが存在しないと判明するとリポジトリにEXPIRED(期限切れ)というフラグが立ちます。その登録を抹消するコマンドです。

RMAN> crosscheck backupset; ←バックアップセットのcrosscheck
チャネルORA_DISK_1の使用
バックアップ・ピースがクロスチェックされました: 'EXPIRED'が検出されました
バックアップ・ピース・ハンドル=/home/oracle/backup/ORCL_21_1.bus レコードID=20 スタンプ=754153131
RMAN> crosscheck copy; ← イメージコピーとアーカイブログのcrosscheck
〜後略〜
RMAN> delete expired backup; ←EXPIERDが付いたファイルのリポジトリ上からの削除
チャネルORA_DISK_1の使用
バックアップ・ピースのリスト
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
20      20      1   1   EXPIRED     DISK        /home/oracle/backup/ORCL_21_1.bus
このオブジェクトを削除しますか(YESまたはNOを入力してください)。 YES
バックアップ・ピースが削除されました
バックアップ・ピース・ハンドル=/home/oracle/backup/ORCL_21_1.bus レコードID=20 スタンプ=754153131
1EXPIREDオブジェクトを削除しました

 Oracleの世界ではEXPIREDを「期限切れ」と直訳していますが、実際に何かの期限が切れたととらえるよりも、リポジトリ上と実ファイルの状態不一致を表現したフラグととらえた方が分かりやすいでしょう。第6回でご紹介した「圧縮」の用語定義にも通じますが、もともとの機能や意味をしっかりとらえて、問題文が実際には何を指しているのかを読み解くようにしてください。

 ただし、RMANでバックアップを取得しているときは、可能な限りでRMANコマンドで運用することをお勧めします。

読み取り専用表領域

 Oracleのテーブルには、「読み取り専用表領域」という文字通り、読み取りしかできない領域があります。つまりこの領域に格納されたデータは変更できないのです。この設定、実はバックアップやリカバリの効率を上げるためのものです。表領域に書き込めないということは、内容が変わることがないと保証できるからです。内容に変動がないということは、1度バックアップを取ってしまえば、次回からその領域のバックアップを取る必要がなくなるのです。

SQL> ALTER TABLESPACE 表領域名 READ [ ONLY | WRITE ];
Archive

 では、今回解説したことについて確認問題で復習しましょう。

確認問題

問題1

 「不要なファイル」について正しい説明を選択しなさい

a. 不要なファイルとは、すでに回復に使うことができないバックアップやアーカイブログのことである

b. 不要なファイルは、CROSSCHECKコマンドで発見できる

c. 不要なファイルはDELETE OBSOLETE コマンドで削除される

d. 不要なファイルは保存ポリシー期限が切れたため EXPIERD とマークされる

正解:c

●解説

不要なファイルとは保存ポリシーの範囲外となってしまったファイルのことです。いつでも削除して大丈夫ですが、保存ポリシーの範囲外であっても、バックアップからアーカイブ・ログが継続的に存在していれば、それらのファイルを利用して回復することが可能です。

CROSSCHECKは、実際のファイルとRMANリポジトリ情報の同期をチェックするコマンドです。「不要なファイル」の判断には使われません。

 また、EXPIERDはCROSSCHECKで判断されるものですが、「不要なファイル」とは無関係です。


問題2

 読み取り専用表領域について正しい説明をすべて選択しなさい

a. 読み取り専用表領域にすると、書き込み可能な表領域に戻すことはできない

b. 読み取り専用表領域にした後、その表領域に対して、バックアップを複数回実行することはできない

c. 読み取り専用表領域に変更し、すぐにバックアップを取得した。その読み取り専用表領域が壊れてもアーカイブ・ログが必要になる

d. 復旧にあたり、読み取り専用表領域に変更する以前に取得したバックアップを使うことも可能である

正解:d

●解説

読み取り専用表領域と書き込み可能表領域は相互に変更できます。

読み取り専用表領域に変更してバックアップを取得した場合、それ以降バックアップをする必要はありませんが、複数回バックアップを取得すること自体は可能です。

読み取り専用表領域に変更してバックアップを取得の後、データファイルが壊れた場合、ファイルをリストアするのみで復旧できます。アーカイブ・ログを使用する復旧にはなりません。

ただし、読み取り専用表領域にしたのに、その後バックアップを取得していない場合、書き込み可能表領域の時代に獲得したバックアップと、そこからのアーカイブ・ログを使って復旧することになります。



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。