ORACLE MASTER資格の上級に位置付けられる「ORACLE MASTER Gold Oracle Database 11g」。本連載では、Gold試験の頻出ポイントを解説する。確認問題付き。
前回は、圧縮バックアップや増分バックアップなど、RMAN(Recovery Manager)が備える多様なバックアップ機能の使い方を解説しました。今回は、バックアップやアーカイブログのファイルを管理する時に気を付けるポイントについて説明します。
突然ですが、バックアップやアーカイブログのファイルは削除してもよいものでしょうか? 大まかにいうと「条件が整えば削除して良い」となるのですが、はっきりしませんね。その条件は、もう一度リカバリの仕組みについて復習することで見えてきます。詳細については第2回をご確認いただくとして、ポイントとなる図を再掲します。
ここで覚えておくべきポイントは2つです。1つ目は、アーカイブログファイルだけでは完全には復旧できないということ。復旧するには、データファイルのバックアップが必要です。
もう1つは、アーカイブログファイルを使ってトランザクションをやり直すことで、復旧できます。ただし、このときアーカイブログファイルは、バックアップ取得時点から連続していなければなりません。そして、バックアップ取得以前の状態にまで戻すことはできません。
以上のポイントを考えると、削除できるバックアップやアーカイブログファイルは以下の図のようになります。
バックアップを取得した後、再びバックアップを取得せずに長い間放置しておくと、アーカイブログファイルがたまり続け、ディスク領域を圧迫してしまいます。こうなる前に、データファイルのバックアップを再度取得することで、過去のアーカイブログファイルが不要となり、削除できることになります。もちろん、以前のバックアップも不要となります。
第4回で解説した通り、RMANバックアップの取得履歴はRMANリポジトリにたまります。また、アーカイブログファイルの取得履歴もRMANリポジトリに入ります。こうすることで、RMANがリポジトリを確認し、バックアップやアーカイブログファイルをどの範囲まで削除できるかを判断させることが可能になっているのです。
では、実際に検証してみましょう。バックアップセットは/home/oracle/backupに、アーカイブ・ログ/home/oracle/archに生成するように設定します。
続いて、アーカイブログファイルを生成します。以下の例のようにコマンドを入力してください。こうすると、強制的にログスイッチを発生させ、ログデータの出力先が変わります。
SQL> ALTER SYSTEM SWITCH LOGFILE;
OS上にどのようなファイルができたか確認します。
arch $ ls -sh 合計 34M 34M 1_9_750707953.arc
では、データファイルすべてのバックアップを取得し、確認します。
RMAN> backup format '/home/oracle/backup/%d_%s_%p.bus' database; RMAN> list backupset; バックアップ・セットのリスト =================== BS Key Type LV Size Device Type Elapsed Time 終了時間 ------- ---- -- ---------- ----------- ------------ -------- 1 Full 1.13G DISK 00:00:18 11-06-16 BPキー: 1 ステータス: AVAILABLE 圧縮: NO タグ: TAG20110616T134156 ピース名: /home/oracle/backup/ORCL_1_1.bus 〜略〜
今度は、再度ALTER SYSTEM SWITCH LOGFILEコマンドを実行し、アーカイブログファイルを生成してOS上のファイルを確認します。
arch $ ls -sh 合計 58M 34M 1_9_750707953.arc 24M 1_10_750707953.arc ← 新しいアーカイブログファイル
ここで、RMANのreportコマンドを実行します。reportコマンドは、削除可能と判断できるファイルを表示してくれます。また、コマンド実行時にバックアップができないデータファイルを示す機能なども備えています。
report obsoleteを実行すると、削除可能なファイル一覧を表示します。
RMAN> report obsolete; Recovery Manager保存ポリシーがコマンドに適用されます。 Recovery Manager保存ポリシーが冗長性1に設定されます。 古いバックアップおよびコピーのレポート Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- アーカイブ・ログ 1 11-06-16 /home/oracle/arch/1_9_750707953.arc
バックアップ前に取得したアーカイブログを確認できました。
そして、RMANのdeleteコマンドを使用すると、指定したファイルのリポジトリとファイル本体の両方を削除します。
deleteコマンドには、reportコマンドと同様にobsoleteオプションを付けることができます。こうすると、削除可能と判断できるファイルとリポジトリを削除します。
RMAN> delete obsolete; Recovery Manager保存ポリシーがコマンドに適用されます。 Recovery Manager保存ポリシーが冗長性1に設定されます。 チャネルORA_DISK_1の使用 次の不要なバックアップおよびコピーが削除されます: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- アーカイブ・ログ 1 11-06-16 /home/oracle/arch/1_9_750707953.arc このオブジェクトを削除しますか(YESまたはNOを入力してください)。 yes アーカイブ・ログを削除しました アーカイブ・ログ・ファイル名=/home/oracle/arch/1_9_750707953.arc レコードID=1 スタンプ=754148409 1オブジェクトを削除しました
OS上でファイルを確認してみましょう。
arch $ ls -sh 合計 24M 24M 1_10_750707953.arc ←バックアップ後のアーカイブログのみが残っている
RMANから再度バックアップを取得し、OS上のファイルを確認します(制御ファイルとSPFILEのバックアップも生成されますが、本稿では省略しています)。
RMAN> backup format '/home/oracle/backup/%d_%s_%p.bus' database;
backup $ ls -sh 合計 2.4G 1.2G ORCL_1_1.bus 1.2G ORCL_3_1.bus ← 新たに取得したバックアップ
再度RMANからdelete obsoleteコマンドを実行します。
RMAN> delete obsolete; 〜中略〜 次の不要なバックアップおよびコピーが削除されます: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- バックアップ・セット 1 11-06-16 バックアップ・ピース 1 11-06-16 /home/oracle/backup/ORCL_1_1.bus アーカイブ・ログ 2 11-06-16 /home/oracle/arch/1_10_750707953.arc このオブジェクトを削除しますか(YESまたはNOを入力してください)。YES 〜略〜
このように、最新のバックアップよりも古いアーカイブログファイルとバックアップファイルが削除されます。
backup $ ls -sh 合計 124M 124M ORCL_3_1.bus
OS上でファイルを確認しても、古いファイルが消えていることが分かります。
Copyright © ITmedia, Inc. All Rights Reserved.