本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)
主な内容
--Page 1--
▼ノーアーカイブログモードで運用している場合のリストア・リカバリ
--Page 2--
▼制御ファイルのバックアップとリカバリ
--Page 3--
▼制御ファイルの障害時におけるリストア・リカバリ方法
▼連載の最後に
今回は前回「Recovery Managerによるリストア・リカバリの方法」に引き続き、Recovery Manager(以下、RMAN)を使用した、ノーアーカイブログモードでの運用におけるリストア・リカバリ、および制御ファイルのリストア・リカバリについて説明していきます。以降の実行結果については、これまでと同様にLinux環境のOracle 10g Release 2で実行したものになります。
ノーアーカイブログモードで運用している場合のリカバリでは、第11回「OSコマンドを使用したリストア・リカバリの方法」と同様に、どのような障害パターンでも一貫性のあるデータベースのバックアップをすべてリストアする必要があります。以降では、障害によって制御ファイル、オンラインREDOログファイル、データファイルがすべて損失した場合のリストア・リカバリ方法について説明します。なお、使用するバックアップは、リスト1のコマンドで順に取得していることを前提とします。
RMAN> backup format '%U.dbf' database; |
リスト1 RMANを使用した一貫性バックアップの取得 バックアップファイルのフォーマットに「%U」を指定することで、一意の識別子が保証されます。また、バックアップ時にファイル名の指定がない場合には、デフォルトで「%U」を使用したファイル名になります。 |
なお、RMANリポジトリの保存先にはターゲット・データベースの制御ファイルを使用しています。それでは、実際にノーアーカイブログモードで運用している場合のリストア・リカバリ方法を見ていきましょう。
リストアを行うためには、ターゲット・データベースをnomountモードで起動し直す必要があります。ターゲット・データベースが起動している場合は、abortオプションを使用してデータベースを強制停止してから、nomountモードで起動します(リスト2)。
SQL> shutdown abort |
リスト2 nomountモードでのデータベース起動 |
RMANを使用してターゲット・データベースに接続し、restore controlfileコマンドで制御ファイルをリストアします。このときFROM句を使用し、明示的にリストアする制御ファイルのフルパスを指定する必要があります。その後、mountモードにすることで制御ファイルがオープンされるため、制御ファイルに含まれるバックアップ情報を基に、restore databaseコマンドでデータファイル全体をリストアします(リスト3)。
oracle@single> rman target / nocatalog |
リスト3 制御ファイルとデータファイル全体のリストア |
最後に、ターゲット・データベースをresetlogsオプションを使用してオープンします。オプションを指定することで、バックアップしていないオンラインREDOログファイルが作成されます(リスト4)。
RMAN> alter database open resetlogs; |
リスト4 ターゲット・データベースのオープン |
RMANでは、一時表領域はバックアップから自動的に除外されているため、ローカル管理の一時表領域の復旧に関しては、再作成を手作業で行う必要がありました。Oracle 10g Release2から、ローカル管理の一時表領域は、リカバリ時に自動的に再作成されます。再作成が行われた場合、アラートログにその旨が出力されます(リスト5)。ただし、サイズについては、ファイル作成時(初期サイズ)のものとなるので、その後ファイルサイズが拡張していた場合は、必要に応じて、手動で拡張を行ってください。
Sun Mar 4 10:50:59 2007 |
リスト5 一時表領域の自動作成ログ |
Copyright © ITmedia, Inc. All Rights Reserved.