0) { obj.className = "imgborder_on"; } } } function hideImage(obj) { if (obj.className.substr(0, 10) == "imgborder_") { obj.src = eyeglass.src; obj.className = "imgborder_off"; } } function showAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { showImage(imgs[i]); } } function hideAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { hideImage(imgs[i]); } } //-->

Oracle Data Recovery Advisorの使用

目的

このチュートリアルでは、Oracle Data Recovery Advisorを使用してデータ障害を診断および修復する方法を紹介します。 ここでは、いくつかのシナリオを通じて学習します(以下を参照)。

所要時間

約60分

トピック

このチュートリアルでは、以下のトピックについて説明します。

 概要
 シナリオ
 前提条件
 Oracle Enterprise Managerを使用した"停止"データベースの修復
 Oracle Enterprise Managerを使用したブロック破損の修復
 Oracle RMANコマンドラインを使用した"停止"データベースの修復

クリーンアップ

まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (注意: この操作によって、同時にすべてのスクリーンショットがロードされるため、ご使用のインターネット接続によってはレスポンス時間が遅くなる場合があります)。

注: 各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

概要

Oracle Data Recovery Advisorについて

Oracle Data Recovery Advisorは、データの障害と破損を診断および修復するための支援ツールです。 Oracle Data Recovery Advisorは、症状に応じて障害を分析し、最適な修復方法を決定します。 また、診断した障害を自動的に修復することもできます。

トピック・リストに戻る

シナリオ

1. Oracle Enterprise Managerを使用した"停止"データベースの修復

最初のシナリオでは、データベースが"停止"しているとします。 本番環境においてこれは非常に危機的な状況であり、"企業を守る"ためにできる限り迅速に問題を解決する必要があります。 データベースを再開しようとしますが、これに失敗します。 次に、Oracle Enterprise Manager Database ControlからOracle Data Recovery Advisorを使用して、障害を診断します。 診断の結果、アクセス不能な2つのデータファイルがあることが判明します。 最初のデータファイルの問題については、手動修復オプションを使用します(データファイルの名前変更)。 この問題は、DBAが ALTER DATABASE ... RENAME FILE ...コマンドを実行したにもかかわらず、システム管理者がオペレーティング・システムでデータファイルの名前を正しく変更しなかった場合に発生します。

最初のデータファイルの問題を解決した後、もう一度、Oracle Data Recovery Advisorに修復アドバイスを要求します。 2番目のデータファイルの問題については、自動修復オプションを使用して、損失したデータファイルのリカバリを行います。 最後に、データベースが稼働中であることを再確認します。

2. Oracle Enterprise Managerを使用したブロック破損の修復

このシナリオでは、いくつかの破損ブロックが確認されます。 Oracle Data Recovery Advisorを使用すると、最適なリカバリ方法としてブロック・メディア・リカバリが選択されます(全データベースやデータファイルのリカバリではない)。

3. Oracle Recovery Manager(Oracle RMAN)コマンドラインを使用した"停止"データベースの修復

このシナリオは最初のシナリオとまったく同じですが、Oracle RMANコマンドを使用して障害の診断および修復の手順を実行します。

トピック・リストに戻る

前提条件

このチュートリアルを始める前に、次のことを確認してください。

1.

チュートリアル Installing Oracle Database 11g on Linux に従って、データベースをインストールします。

2.

dra.zipファイルを作業ディレクトリにダウンロードして解凍します。

3.

端末ウィンドウで作業ディレクトリに移動し、次のコマンドを実行します。

                                           
./dra_setup.sh
                                        

4. 一度に作業できるシナリオは1つだけですが、以下の順序に従う必要はありません。 それぞれのシナリオには、障害を発生させる独自の追加設定が含まれています。残りの手順を実行して、この障害を修復します。

トピック・リストに戻る

Oracle Enterprise Managerを使用した"停止"データベースの修復

"停止"データベースの診断と修復を行うには、以下の手順に従います。

1.

データ障害を発生させてデータベースを停止させるため、端末ウィンドウで作業ディレクトリに移動し、次のコマンドを実行します。

./dra1_setup.sh

users01.dbfデータファイルが削除され、 example01.dbfファイルの名前が変更されます。 手動修復オプションと自動修復オプションの両方を使用して、これらの障害の診断と修復を行います。

2.

次のURLを入力して、Oracle Enterprise Manager Database Controlにログインします( <hostname>localhostまたは特定のホスト名に変更してください)。

                                           
https://<hostname>:1158/em
                                        

3.

シナリオ1で説明したとおり、データベースの"停止"が発生します。 障害を診断して、できる限り迅速にこれを修復します。 「 Startup」をクリックします。

4.

次の情報を入力して、「 OK」をクリックします。

ホスト資格証明
ユーザー名: oracle
パスワード: oracle

データベース資格証明
ユーザー名: sys
パスワード: oracle
接続名: SYSDBA

5.

Startup/Shutdown Confirmationページで「 Yes」をクリックします。

6.

進捗ページが表示されます。

7.

データベースはマウント状態にあります。 詳細を確認する場合、「 View Details」をクリックします。

8.

データベースのステータス変化の詳細とエラー・メッセージを確認してから、「 OK」をクリックします。

9.

Perform Recovery」をクリックし、障害を診断して修復を実行します。

10.

データベース・ログイン・ページで次の情報を入力して、「 Login」をクリックします。

データベース資格証明
ユーザー名: sys
パスワード: oracle
接続名: SYSDBA

11.

次の情報を入力して、「 Continue」をクリックします。

ユーザー名: oracle
パスワード: oracle

12.

ページ最下部までスクロールして、次の資格証明が有効であることを確認します。 次に、ページ最上部までスクロールして「 Advise and Recover」をクリックします。

ユーザー名: oracle
パスワード: oracle

13.

データベースが開かない場合、Oracle Data Recovery Advisorにより自動的に問題の診断が行われます。 診断結果を確認します。 障害の説明の下にある「 +」アイコンをクリックして詳細を確認します。

14.

推奨される修復方法を表示するには、すべての障害を選択したままで「 Advise」をクリックします。

15.

Manual Actionsページが表示され、Oracle Data Recovery Advisorにより手動修復の検討が指示されます。 Continue」を選択しないでください。 次の手順に従います。

16.

このデモでは、 example01.dbfデータファイルの名前が誤って変更されたことを前提としています。 端末ウィンドウに次のコマンドを入力して障害を手動修復します。

a)次のコマンドを入力して、データファイルを含むディレクトリに移動します。 cd $ORACLE_BASE/oradata/orcl

b)次のコマンドを入力して、ディレクトリの中身を表示します。 ls

c)次のコマンドを入力して、 example01データファイルの誤った名前を変更します。 mv example01.dbf.old example01.dbf

d)次のコマンドを入力して、修正したファイル名を表示します。 ls

e)次のコマンドを入力して、端末ウィンドウを終了します。 exit

17.

Oracle Enterprise ManagerのManual Actionsページに戻ります。 「 Re-assess Failure」をクリックします。

18.

Oracle Data Recovery Advisorによりすべての障害が再検証され、手動で修復した障害は表示されなくなります。 障害の説明の下にある「 +」アイコンをクリックしてノードを開き、他に未解決の障害があるかどうか確認します。

19.

手動で修復した障害は表示されませんが、オープン状態の障害が1つ残っています。 「 Advise」をクリックします。

20.

Continue with Advise」をクリックします。

21.

Oracle Data Recovery AdvisorによりOracle RMAN修復スクリプトが生成されます。 「 Continue」をクリックします。

22.

Reviewページに、障害およびその修復スクリプトが表示されます。 「 Submit Recovery Job」をクリックします。

23.

修復の実行が完了するまで待ちます。 Oracle Data Recovery Advisorは処理を終了すると、Repair Resultsページを表示します。 すべての修復結果を確認します。 縦方向のスクロールバーをクリックします。

24.

ページ最下部が表示されるまで縦方向のスクロールバーをドラッグします。 修復に成功した後に、データベースが開かれていることを確認します。 「 OK」をクリックします。

25.

Oracle Enterprise Managerのログイン・ページが表示されます。 次の情報を入力して、「 Login」をクリックします。

ユーザー名: sys
パスワード: oracle
接続名: SYSDBA

26.

Availabilityページが表示されます。 「 Home」タブをクリックします。

27.

Database Instanceホームページで、データベース・インスタンスが稼働中であることを確認します (以下のようなページが表示されない場合、数分待ってからページを更新してください。 また、グラフィック要素はソフトウェアの本番リリース前に変更される可能性があります)。

手動修復と自動修復の両方を使用して停止データベースの修復を完了したため、「 Logout」をクリックします。

トピック・リストに戻る

Oracle Enterprise Managerを使用したブロック破損の修復

ブロック破損の診断と修復を行うには、以下の手順に従います。

1.

example01.dbfデータファイルでブロック破損を発生させるため、端末ウィンドウを使用して作業ディレクトリに移動し、次のコマンドを実行します。

./dra2_setup.sh

ブロック破損エラーは、通常このような形式でアプリケーション・ユーザーに表示されます。 DBAは、同じエラーをOracle Enterprise Manager Database Controlホームページで確認できます(後続の手順を参照)。 ただし、内部処理のため、エラーが検出されてからOracle Enterprise Managerにエラーが表示されるまで、わずかな遅延が発生します。

2.

次のURLを入力して、Oracle Enterprise Manager Database Controlにログインします(<hostname>をlocalhostまたは特定のホスト名に変更してください)。

https://<hostname>:1158/em

3.

次の情報を入力して「 Login」をクリックし、Oracle Enterprise Managerにログインします。

ユーザー名: sys
パスワード: oracle
接続名: SYSDBA

4.

Availability」タブをクリックします。

5.

Perform Recovery」をクリックします。

6.

Perform Recoveryページに、Oracle Data Recovery Advisorにより破損ブロックが検出されたことが表示されます。 「 Advise and Recover」をクリックします。

7.

詳細を確認するには、障害の説明の下にある「 +」アイコンをクリックしてノードを開きます。

8.

ブロック破損の詳細を確認します。 すべての障害を選択したままで「 Advise」をクリックします。

9.

修復スクリプトを確認して、「 Continue」をクリックします。

10.

Reviewページで障害とその修復案を確認します。 「 Submit Recovery Job」をクリックします。

11.

ジョブが正しく作成されたことを示す確認メッセージが表示されます。 「 View Results」をクリックします

12.

ジョブが正しく実行されたことを確認してから、ページの右上にある「 Database」タブをクリックします。

13.

Database Instanceホームページで、ブロック破損のアラートを確認します。 DBAは定期的にこのページを監視するため、ブロック破損アラートを見つけることができます(表示にはわずかな遅延が発生します)。

14.

ブロック破損が修復されたことを確認するには、次のコマンドを入力します。

sqlplus sys/oracle as sysdba
select * from hr.regions;

トピックに戻る

Oracle RMANコマンドラインを使用した"停止"データベースの修復

"停止"データベースの診断と修復を行うには、以下の手順に従います。

1.

データ障害を発生させてデータベースを停止させるため、端末ウィンドウで作業ディレクトリに移動し、次のコマンドを実行します。

./dra1_setup.sh

users01.dbfデータファイルが削除され、 example01.dbfファイルの名前が変更されます。 手動修復オプションと自動修復オプションの両方を使用して、これらの障害の診断と修復を行います。

以下の行が表示されたら、設定は完了です。


2.

データベースが"停止"状態にあることが判明したため、次のコマンドを使用してデータベースの開始を試みます。

sqlplus / as sysdba
startup

データベースがマウント状態にあり、データファイル・エラーがあることを確認します。

3.

SQL*Plusを終了し、次のコマンドを使用してOracle RMANを開始します。

exit
rman target / nocatalog


4.

次のコマンドを実行して、障害およびその詳細を表示します。

LIST FAILURE;
LIST FAILURE DETAIL;

コマンドは大文字と小文字のどちらで入力しても構いません。

注: ベータ版のソフトウェアを使用する場合、以下のスクリーンショットとは異なることがあります。


5.

次のコマンドを入力して、障害を診断します。

ADVISE FAILURE;

次の手順が終了すると、このウィンドウに戻ります。

6.

このデモでは、 example01.dbfデータファイルの名前が誤って変更されたことを前提としています。 別の端末ウィンドウを開いて次のコマンドを入力し、障害を手動で修復します。

a)次のコマンドを入力して、データファイルを含むディレクトリに移動します。 cd $ORACLE_BASE/oradata/orcl

b)次のコマンドを入力して、ディレクトリの中身を表示します。 ls

c)次のコマンドを入力して、 example01データファイルの誤った名前を変更します。 mv example01.dbf.old example01.dbf

d)次のコマンドを入力して、修正したファイル名を表示します。 ls

e)次のコマンドを入力して、端末ウィンドウを終了します。 exit

7.

Oracle RMANウィンドウに戻り、次のコマンドを入力して、手動修復の結果を確認します。

ADVISE FAILURE;

8.

次のコマンドを入力して、修復スクリプトを表示します。

REPAIR FAILURE PREVIEW;


9.

次のコマンドを入力して自動修復を開始し、データベースを再開した後でOracle RMANを終了します。

REPAIR FAILURE;

. . . Do you really want to execute the above repair (enter YES or NO)? YES

. . . Do you want to open the database (enter YES or NO)? YES

exit

出力結果の一部は、次のようになります。



10.

SQL*Plusで次のコマンドを入力して、データベースが稼働中であることをテストします。

sqlplus / as sysdba
select open_mode from v$database;
exit

トピックに戻る

クリーンアップ

このOracle by Exampleを終了するか、または 前提条件からやり直す場合、次のコマンドを実行します。

1.

端末ウィンドウに次のコマンドを入力します。

./dra_cleanup.sh

出力結果の一部は、次のようになります。

トピック・リストに戻る

まとめ

このチュートリアルで学習した内容は、次のとおりです。

 Oracle Enterprise Managerを使用した"停止"データベースの修復
 Oracle Enterprise Managerを使用したブロック破損の修復
 Oracle RMANコマンドラインを使用した"停止"データベースの修復

トピック・リストに戻る

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。


Copyright (c) Oracle Corporation 2007 All Rights Reserved
Oracle Corporation発行の「Using the Data Recovery Advisor」の翻訳版です。

この文書はあくまで参考資料であり、 掲載されている情報は予告なしに変更されることがあります。 万一、誤植などにお気づきの場合は、オラクル社までお知らせください。 オラクル社は本書の内容に関していかなる保証もしません。 また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleはオラクル社の登録商標です。
その他の会社名および製品名は、 あくまでその製品および会社を識別する目的にのみ使用されており、 それぞれの所有者の商標または登録商標です。