Beehiveの検証環境をメンテしていて、手動でアーカイブログを消すのもなんだか面倒なので、RMANにやらせることにした。
RMANはバックアップを取った後、アーカイブログを消してくれる機能がある。その機能を使えば、以前紹介したようなSQLを使って「どこまで消せるか」などをいちいち調べなくてもよい。RMANが不要になったアーカイブログを検出して、消してくれる。 RMANを構成するのにやることはそんなに多くない。目的はあくまでもBeehiveの検証環境でフラッシュバック・ログ用の領域をコンパクトに保つことだから、今回はバックアップとリストアの要件をこまごまとは考えないこととする。 まずは、バックアップを実施するためのRMANのスクリプトを用意する。ファイル名は、ここではbeehive.bkpとしておこう。 configure channel device type disk format='/home/oracle/app/oracle_backups/full_db_%U'; backup as backupset database plus archivelog delete all input; つぎに、上記のRMANスクリプトを実行するシェルスクリプトを用意する。ファイル名はrman_backup.shとしておこう。 . /home/oracle/env_db rman target / @/home/oracle/script/beehive.bkp \ log=/home/oracle/beehive_bkp.log.$$ nocatalog exit ちなみに、/home/oracle/env_db には、ORACLE_HOMEだのPATHだのがあたりまえに設定されているが、ここでは説明を割愛する。 さらに、上記のrmah_backup.shをcronから定期的に実行するようにする。 $ crontab -l 0 2 * * * /home/oracle/script/rman_backup.sh これで、毎日午前二時ちょうどにRMANが起動し、バックアップを取得したあとに不要なアーカイブログを消し去ってくれる。 なお、この状態では、今度はバックアップセットがディスク領域を占有していく。不要となったバックアップセットを消していかないと、いずれはディスクが満杯になってしまう。 不要なバックアップセットもまた、RMANが消してくれる。そのための設定が下記のとおりだ。 まず、不要になったバックアップセットを消すようにRMANに指示するスクリプトを用意する。ファイル名はrman_delete.bkpとしておこう。 delete obsolete; exit 次に、上記のスクリプトをRMANに食わせるためのシェルスクリプトを作成する。 . /home/oracle/env_db rman target / @/home/oracle/script/beehive_delete.bkp \ log=/home/oracle/beehive_bkp.log.$$ nocatalog exit 最後に、上記のシェルスクリプトをcrontabに登録する。 $ crontab -l 0 2 * * * /home/oracle/script/rman_backup.sh 0 6 * * * /home/oracle/script/rman_delete.sh ちなみに手元の環境だと、cronからいかなるメールも受け取りたくないので、各行の最後に"> /dev/null 2>&1"をつけてある。 なお、RMANがバックアップセットを「必要」か「不要」か判断する基準について少々補足しておく。 RMANのデフォルトの設定では、保存方針がREDUNDANCY 1になっている。これは、バックアップセットは最後の一つだけを必要とし、それ以前のバックアップはすべて不要とみなす、という設定だ。この状況でdelete obsoleteを実行すると、最後に取得したバックアップセットだけを残して、それよりも古いバックアップセットをRMANは削除する。 心配だから二つぐらいは残しておきたいという人は、保存方針を変更するとよい。下の例では、「最新から二つ以上古いバックアップセット」を不要とみなす。 $ rman target / nocatalog RMAN>configure retention policy to redundancy 2; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 2; new RMAN configuration parameters are successfully stored バックアップセットの数ではなく、リカバリ時に遡れる日付を保障したい場合には、REDUNDANCYではなくWINDOWオプションを使う。2日前までに戻ることを保障したいのなら、 $ rman target / nocatalog RMAN>configure retention policy to recovery window of 2 days; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 2; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; new RMAN configuration parameters are successfully stored これで、フラッシュバック・ログの領域管理に頭を悩ませることはなくなった。
by beectl
| 2008-06-13 19:06
| Oracle Beehive
|
メモ帳
本ブログは個人的なものであり,PTCジャパンおよび日本オラクル株式会社とは一切関係ありません。
カテゴリ
以前の記事
お気に入りブログ
最新のトラックバック
ライフログ
検索
タグ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||