OSコマンドを使用したリストア・リカバリの方法:Oracleバックアップ/リカバリ講座(11)(4/4 ページ)
本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)
不完全リカバリ
不完全リカバリには、取り消しベース(RECOVERコマンド実行時にCANCELを選択)、時間ベース(指定した時間までリカバリを実施)、変更ベース(特定のSCN:システム変更番号までリカバリを実施)があります。障害の発生個所や、システム要件に応じて、不完全リカバリの方式を選択します。例えば、アーカイブREDOログファイルの一部を消失しまった場合に、適用できるアーカイブREDOログファイルをすべて適用するのであれば、取り消しベースのリカバリを実施します。
不完全リカバリによりデータベース全体を過去に戻す場合、一部のデータファイルのみが古い/新しいなどの状態は認められません。そのため、データベースを過去の状態に戻したい場合には、障害の発生していないデータファイルも含め、全データファイルについて過去のファイルをリストア後、必要な時点までのアーカイブログを適用することになります。
今回は、アーカイブREDOログファイルの一部が消失してしまった場合を例に挙げて説明していきます。
1.障害個所の確認
オフラインリカバリの「1.障害個所の確認」と同様に、アラートログ、ユーザープロセスのエラー確認後、データベースが起動している場合にはデータベースを停止させます。
2.データファイルのリストア
障害の発生していないファイルを含むすべてのデータファイルを、既存のデータファイルと置き換えます。
3.データファイルのリカバリ
データファイルのリストア後、データベース全体のリカバリを実施するため、データベースをmountモードで起動します。
動的パフォーマンス・ビュー(v$datafile)のSTATUS列を確認し、すべてのデータファイルがONLINEの状態になっているかを確認します。ONLINEの状態になっていない場合には、「ALTER DATABASE DATAFILE 'データファイル名' ONLINE」文を使用してデータファイルをONLINEに変更します。
次にデータベース全体を取り消しベースでリカバリを実施します(リスト10)。
SQL> startup mount ORACLEインスタンスが起動しました。 Total System Global Area 109051904 bytes Fixed Size 1217980 bytes Variable Size 83888708 bytes Database Buffers 20971520 bytes Redo Buffers 2973696 bytes データベースがマウントされました。 SQL> select t.name tablespace_name, d.name file_name, r.* from v$recover_file r,v$datafile d,v$tablespace t 2 where r.file# = d.file# 3 and d.ts# = t.ts#; TABLESPACE_NAME FILE_NAME FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ------------------------------ ---------------------------------------- ---------- ------- ------- -------------------- ---------- ------------------- …… USERS /opt/app/oracle/oradata/users01.dbf 4 OFFLINE OFFLINE 3832882 2007/01/28 04:03:22 …… 6行が選択されました。 SQL> alter database datafile '/opt/app/oracle/oradata/users01.dbf' online; データベースが変更されました。 SQL> select t.name tablespace_name, d.name file_name, r.* from v$recover_file r,v$datafile d,v$tablespace t 2 where r.file# = d.file# 3 and d.ts# = t.ts#; TABLESPACE_NAME FILE_NAME FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ------------------------------ ---------------------------------------- ---------- ------- ------- -------------------- ---------- ------------------- …… USERS /opt/app/oracle/oradata/users01.dbf 4 ONLINE ONLINE 3832882 2007/01/28 04:03:22 …… 6行が選択されました。 SQL> recover database until cancel ORA-00279: 変更3833045(01/28/2007 04:51:30で生成)にはスレッド1が必要です ORA-00289: 検討すべきログ・ファイル:/opt/app/oracle/archive/1_26_611947833.dbf ORA-00280: 変更3833045(スレッド1)は順序番号26に存在します。 ログの指定: {<RET>=suggested | filename | AUTO | CANCEL} cancel メディア・リカバリが取り消されました。 SQL>
4.リカバリ完了後の確認
オフラインリカバリの「4.リカバリ完了後の確認」と同様に動的パフォーマンス・ビューのv$recover_fileにレコードがなく、v$datafile_headerのERROR列がNULLであることを確認し、表領域が正常にリカバリできたことを確認します。
5.データベースのオープン
データベースをRESETLOGSモードでオープンします。不完全リカバリを実行した場合には、必ずRESETLOGSオプションを指定してデータベースを起動する必要があります。これにより、オンラインREDOログファイルが初期化されます(リスト11)。
SQL> alter database open resetlogs; データベースが変更されました。
ノーアーカイブログ運用でのリカバリ
ノーアーカイブログ運用の場合には、一貫性のあるデータベースのバックアップをすべてリストアすることによってのみリカバリが可能です。
では、実際にノーアーカイブログモードでのリカバリを見ていきましょう。
【TOPIC】
一貫性バックアップの対象
一貫性バックアップ時には、一時ファイルやオンラインREDOログファイルのバックアップは必須ではありません。オンラインREDOログファイルはRESETLOGSオプションでオープンすることで再作成されますし、一時ファイルは再作成が可能です。
しかし、これらのファイルも併せてバックアップしておくことで、再作成によるRESETLOGSを指定したデータベースのOPENにかかる時間の節約や、TEMPORARY TABLESPACE再作成後のディスクソート処理の効率劣化の回避といったメリットを享受できます。これらのメリットが重要なシステムでは、一時ファイル、オンラインREDOログファイルのバックアップも検討するとよいでしょう。
1.バックアップファイルのリストア
バックアップファイルのリストアを行う前に、データベースが起動している場合には、データベースを停止します。
取得した一貫性のあるオンラインREDOログファイル、一時ファイルを含むすべてのバックアップを既存ファイルと置き換えます。これによって、リカバリを実施することなくデータベースをオープンすることが可能です。
2.データベースのオープン
データベースを「STARTUP」でオープンします(リスト12)。
SQL> startup ORACLEインスタンスが起動しました。 Total System Global Area 109051904 bytes Fixed Size 1217980 bytes Variable Size 83888708 bytes Database Buffers 20971520 bytes Redo Buffers 2973696 bytes データベースがマウントされました。 データベースがオープンされました。
今回はOracleのリカバリの種類ごとに具体的なリカバリ手順を説明しました。次回は、RMANによるリカバリについて説明していきます。
- ノーアーカイブログモードでのリストア・リカバリ
- Recovery Managerによるリストア・リカバリの方法
- OSコマンドを使用したリストア・リカバリの方法
- Recovery Managerのチューニング・ポイント集
- バックアップの所要時間を短縮するテクニック
- これだけでRecovery Managerは完全マスター
- 物理バックアップの失敗を根絶するノウハウ
- OSコマンドによる物理バックアップの全手順
- Data Pumpを使った論理バックアップの実践
- Recovery Managerを使ったバックアップ方法
- Oracleの代表的なバックアップ方法
- アーキテクチャから理解するOracleリカバリ
- プロとしてのバックアップ/リカバリ基礎知識
Copyright © ITmedia, Inc. All Rights Reserved.