(1/3)本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。Manager(以下、RMAN)によるリストア・リカバリの方法について説明していきます。RMANにはOSコマンドによるバックアップ/リストア/リカバリ方法と比べて便利な機能もありますので、こちらについても紹介していきたいと思います。2で実行したものになります。RMANによるリストア・リカバリの流れRMANを使った場合も、リストア・リカバリの基本的な考え方、障害の検出、確認方法についてはOSコマンドの場合と同様に考えることができます。RMANでは、リストアやリカバリの実行時に、データベースや表領域など、処理対象を指定するだけで、必要なバックアップファイルやアーカイブREDOログファイルをRMANが自動選択し、リカバリ作業を行ってくれます。そのため、OSコマンドのように、リカバリに必要なバックアップファイルをユーザーが探してリストアを行う必要がないので、OSコマンドと比べて障害発生時の作業を簡略化させることができます。RMANによるリストア・リカバリの流れを簡単に説明します(図1)。実際に使用するコマンドについては後述する「リカバリ」の「完全リカバリ」「不完全リカバリ」の項目で併せて説明していきます。RMANによるリストア・リカバリの流れ1.障害発生個所の調査データベースの「リストア・リカバリを伴う障害」に限ったことではありませんが、アプリケーションにエラーが返された場合も、データベース管理者はアラートログファイル、ユーザープロセスのトレースファイルを必ず調査します。出力されたエラー内容やアラートログファイル、トレースファイルを調査した結果、データベース構成ファイルに障害が発生したことが確認できたときには、動的パフォーマンス・ビュー(v$recover_file、v$datafile_header)などを使用して、エラーの発生している以外のデータベース構成ファイルにもエラーがないか確認します。2.ターゲット・データベースを復旧可能な状態にする障害が発生したファイルを確認できたらリストア・リカバリを行います。データベース全体でリストア、リカバリを行う際には、ターゲット・データベースをマウントモードにします。表領域やデータファイルを単位にオンラインでリストア・リカバリを実行する際には、復旧対象の表領域をオフラインにする必要があります。リストア・リカバリ時に使うデータベースの起動/停止や一部のコマンドは、RMANから直接実行できます。表領域やデータファイルのオフラインやオンラインについてはRMANには直接実行するコマンドがありませんが、リスト1のようにSQLコマンドを使用することにより、RMAN上からでもSQLの実行が可能になります。RMANでUSERS表領域をオフラインにする例3.バックアップファイルをリストアするRMANではRESTOREコマンドを用いてリストア対象を指定すると、必要なデータファイルをバックアップファイルからリストアできます。リストアの指定方法はデータベース、表領域、データファイルなどの単位です(そのほか、制御ファイル、SPFILE単位でのリストアも可能)。データベース単位や表領域単位でRESTOREコマンドを使用すると、RMANが自動的に必要なデータファイルをすべてリストアします。RMANではRESTOREコマンドが発行されると、初めにコマンドで指定された対象のデータファイルのヘッダにある情報を確認し、制御ファイル内の情報と一致しないものだけをリストアします。これにより、復旧に必要なリストア時間を最小限に抑えることができます。データファイルヘッダは正常で実データ部分のみが破損している場合は、逆にRMANではデータファイルヘッダは正常と認識してリストア対象から除外してしまいます。このような場合は、後述するように「force」句を追加してリストアを強制的に行う必要があります。4.リカバリを行うリストアが終わったら、次はリカバリです。RMANではRECOVERコマンドを使用します。RESTOREコマンドと同様に、対象を指定すると必要なデータファイルに対してリカバリを行っていきます。リカバリが終了したら、最後にターゲット・データベースをオープンまたは対象の表領域をオンラインに戻して、作業完了になります。【TOPIC】リストアやリカバリの進ちょく状況についてRMANでリストアやリカバリを行っているときに、画面上には各チャネルの処理対象とするデータファイルやアーカイブREDOログファイルが表示されますが、実際どこまでリストアされているのか、どのくらいアーカイブREDOログファイルが適用されているかが判断しにくいことがあります。-f」コマンドなどで監視する方法が有効です。Managerのチューニング・ポイント集」で紹介したTOPICにあるV$SESSION_LONGOPSでも確認可能です。logfile'/opt/app/oracle/archive/1_85_616340345.dbf'...次ページからは、OSコマンドと同じ障害ケースを想定して、RMANによるリストア・リカバリの流れを具体的に説明していきます。障害個所の確認や復旧後の確認方法についてはこれまでと同様の方法になりますので、以降の手順では省略します。Managerは完全マスター」の4ページ「ディスク上にバックアップ・セットでデータベース全体の非一貫性バックアップを取得」で説明した、バックアップ(リスト4)を毎日行っているものとします。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。