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.

wkdirという名前のディレクトリを作成し、 このディレクトリにdra.zipをダウンロードして解凍していること。

 

2.

ターミナル・ウィンドウで作業ディレクトリに移動し、次のコマンドを実行します。

./dra_setup.sh 

 

3. 一度に作業できるシナリオは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
パスワード:<パスワード>

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

 

5.

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

 

6.

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

 

7.

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

 

8.

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

 

9.

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

 

10.

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

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

 

11.

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

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

 

12.

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

ユーザー名: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ページに、障害およびその修復スクリプトが表示されます。 「Execute Recovery」をクリックします。

 

23.

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

 

24.

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

 

25.

Oracle Enterprise Managerで、データベースが開いた状態にあることを確認します。「OK
」をクリックします。

 

26.

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

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

 

27.

Database Instanceホームページで、データベース・インスタンスが稼働中であることを確認します(以下のようなページが表示されない場合、数分待ってからページを更新してください)。

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

 

トピック・リストに戻る

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

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
パスワード: <パスワード>
接続:SYSDBA

 

4.

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

 

5.

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

 

6.

Perform Recoveryページに、Oracle Data Recovery Advisorにより破損ブロックが検出されたことが表示されます。 ページ最下部のCredentialsセクションで、Oracle OSのユーザー名とパスワードが入力されていることを確認します。その後「Advise and Recover」をクリックします。

 

7.

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

 

8.

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

 

9.

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

 

10.

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

 

11.

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

 

12.

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

 

13.

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

 

14.

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

sqlplus / as sysdba
select * from hr.regions;

 

トピック・リストに戻る

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

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

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

注: このOBEの開始時に作成したバックアップセットを削除する必要があります。 RMANのLIST BACKUP、およびDELETE...TARGET <target id>コマンドを使用できます。

トピック・リストに戻る

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

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

トピック・リストに戻る

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