検索
連載

ノーアーカイブログモードでのリストア・リカバリOracleバックアップ/リカバリ講座(13)(3/3 ページ)

本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)

PC用表示
Share
Tweet
LINE
Hatena
前のページへ |       

制御ファイルの障害時におけるリストア・リカバリ方法

 一部の制御ファイルが破損・損失した場合には、そのほかの正常な制御ファイルをコピーしたり、初期化パラメータcontrol_filesから破損・損失した制御ファイルを除外したりすることでリカバリできます。しかし、全損してしまった場合には、バックアップから制御ファイルをリストアする必要があります。

RMANリポジトリを別データベースのリカバリ・カタログに保持している場合

1.nomountモードで起動する

 制御ファイルをリストアする場合には、nomountモードでデータベースを起動する必要があります。すでにデータベースが起動している場合には、abortオプションを使用してデータベースを強制的に停止します(リスト9)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

2.制御ファイルをリストアする

 リカバリ・カタログを使用している場合は、制御ファイルを自動でバックアップする方法、明示的にバックアップする方法にかかわらず、リカバリ・カタログ内にバックアップ情報を保持しているため、restore controlfileコマンドで最新の制御ファイルがリストア可能です。リストア時のログは、「リスト3 制御ファイルとデータファイル全体のリストア」と重複するので省略します。

3.mountモードにする

 リストアが完了したら、ターゲット・データベースをマウントします。

4.リカバリを実行する

 マウントが完了したら、RMANでデータベースのリカバリを行います(リスト10)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

5.resetlogsオプション付きでオープンする

 リカバリが完了したら、resetlogsオプションを指定してターゲット・データベースをオープンし、データの損失などがないか確認します(リスト11)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 RMANからresetlogsオプションを使用してデータベースをオープンすると、自動的にインカネーション注1の登録とリカバリ・カタログの完全同期注2が実施されます。

注1:リカバリ・カタログを使用してバックアップを取得した場合のターゲット・データベースの管理番号。resetlogsオプションを使用してデータベースをオープンすると、ログ番号がリセットされ、新規のデータベースとしてバックアップするために管理番号が更新される。

注2:resetlogsオプションを使用してデータベースをオープンしたため、ターゲット・データベースの制御ファイルの内容が変更される。これによりリカバリ・カタログの情報が以前の制御ファイルの内容の状態になっているため、最新の制御ファイルの内容に合わせるため同期を行う。


RMANリポジトリをターゲット・データベースの制御ファイルに保持している場合

 RMANリポジトリをターゲット・データベースの制御ファイルに保持している場合、制御ファイルのバックアップを明示的に取得している場合と、自動で取得している場合ではリストア方法が異なります。この違いを含めて、以下では制御ファイルのリストア・リカバリ方法を説明していきます。なお、制御ファイルをリストアする前にnomountモードでインスタンスを起動している前提になります。

 明示的に制御ファイルのバックアップを取得している場合

 明示的にBACKUPコマンドで制御ファイルのバックアップを取得している場合には、制御ファイルのリストア時にバックアップセット名を明示的に指定する必要があります。しかし、RMANリポジトリを制御ファイルに保持している場合、制御ファイル自体をリストアするのでRMANリポジトリからバックアップセット名を確認することが不可能です。そのため、バックアップ取得時のログファイルからバックアップセット名を特定します。

 リスト12では、制御ファイルのバックアップセット名を「V10R2xxx-617460721-20070316-51_1jiddan4_1_1.ctl」として、リストアを行います。リストアを実施する前には、念のためDBIDの設定を行います。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 自動的に制御ファイルのバックアップを取得している場合

 制御ファイルが全損した場合、「DBID」と「自動バックアップで取得したデバイスタイプとファイルパス」をリストア前に設定する必要があります。これは、自動バックアップ先ディレクトリを変更していた場合、デフォルトの自動バックアップ先が参照されてしまうためです。明示的に自動バックアップ先のディレクトリを設定し、自動バックアップした制御ファイルをリストアします(リスト13)。この設定を行わない場合には、デフォルトの出力場所($ORACLE_HOME/dbs)に自動バックアップの制御ファイルが存在しないためエラーとなります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 この後の作業は明示的な制御ファイルのバックアップ、自動バックアップからのリストア時も同様で、リカバリ・カタログを使用している場合と同じ手順になります。

 データベースのオープン後、データベース全体のフルバックアップの取得を推奨します。なお、ここではリカバリ・カタログを使用していないので、制御ファイルとの再同期は不要です。

連載の最後に

 約1年間にわたって、Oracleデータベースのバックアップに必要となる知識とテクニックを、具体的な例を交えながら紹介させていただきました。データベースのバックアップにはさまざまな方法があり、個々の要件に合ったバックアップ方法を選択することが重要です。しかし最も大事なことは「戻したいと考えている状態にデータベースをリカバリすることができる」ということです。

 一般的にバックアップを取得して満足してしまいがちですが、いざというときにバックアップしたデータが使用できず、リカバリが不可能になってしまうと、その影響は計り知れません。特にリストア・リカバリ作業は、ほかの作業とは異なり、実際に作業する機会が少なく、リカバリ手順が確立していても、ちょっとした手順ミスで混乱してしまうことがあります。可能であれば、開発環境でリストア・リカバリの障害復旧テストを行うことで、いざというときに慌てず、手順にのっとって作業ができるでしょう。

 これからバックアップの設計・運用を手掛けようとされている方々に、本連載の情報が少しでもお役に立てば幸いです。長い間ご愛読いただきましてありがとうございました。(連載完)

著者紹介

荒井 智也

株式会社アゲハ


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る