Support Workbenchを使用したデータ・ディクショナリの破損の分析

目的

このチュートリアルでは、Support Workbenchを使用してデータ・ディクショナリの破損を分析する方法について説明します。

約30分

トピック

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

概要
前提条件
まとめ

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

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

Oracle Enterprise Manager Support Workbench(Support Workbench)は、調査やレポート、問題(重大なエラー)の修復など、グラフィカル・インタフェースで実現するすべてに使いやすい機能です。Support Workbenchは、最初に障害が発生した診断データの収集、サポート要求番号の取得、Oracle Supportへの診断データのアップロードなどを、自分の手で最小限の手間と非常に短時間で実施できる機能を提供し、問題の解決にかかる時間を削減します。また、Support WorkbenchはOracleアドバイザへの簡単なアクセスを提供することで、SQL関連の問題やデータ破損の問題などの修復を補助します。

トピック・リストに戻る

このチュートリアルを始める前に、次の手順を完了している必要があります。

1.
2.

このチュートリアルでは、データ・ディクショナリの破損を分析してからSupport Workbenchを使用して問題を分析し、パッケージしてOracle Supportに送信します。このセクションでは、問題を設定します。以下の手順を実行します。

1.

ターミナル・ウィンドウを開きます。ファイルを解凍したディレクトリから次のコマンドを実行し、データ・ディクショナリの破損を作成します。

./corr_setup.sh

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

トピック・リストに戻る

問題の分析を開始するため、ディクショナリの整合性チェックを作成し、データ・ディクショナリのヘルス・チェックを起動します。以下の手順を実行します。

1.

ブラウザを起動し、次のURLを入力します。

http://<hostname>:1158/em

ユーザー名にsysを、パスワードにoracleを入力し、Connect Asで「SYSDBA」を選択した後、「Login」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

2.

ホームページでスクロール・ダウンして、Related Linksの下にある「Advisor Central」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

3.

Checkers」タブを選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

4.

Dictionary Integrity Check」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

5.

Parameter Run Nameの値にDicoCheck1と入力し、「OK」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

6.

チェックの実行に成功しました。詳細を表示するには、リストから「DicoCheck1」を選択し、「Details」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

7.

いくつかのデータ破損が確認できます。とくに、次の結果が表示されます。"SQL dictionary health check: invalid column number n on object TAB$ failed"。これは、HR.OBETABLEを参照するTAB$内の行と対応します。「Database」ブレッドクラムをクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

トピック・リストに戻る

このセクションでは、問題をさらに調査します。以下の手順を実行します。

1.

ホームページで、Alertsセクションを確認します。最近検知された破損に対する新しい重大アラート(データ障害)が表示されていることがわかります。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

2.

ターミナル・ウィンドウに戻り、以下のコマンドを実行します。

sqlplus / as sysdba
alter system flush shared_pool;
alter system flush buffer_cache;
select * from hr.obetable;

このアイコンの上にカーソルを置くと、イメージが表示されます。

end-of-file on communication channelエラーが発生したことを確認します。これは、何かが確実に間違っていることを示します。そこで、問題を調査します。

 

3.

Oracle Enterprise Managerに戻り、HomeページのDiagnostic Summaryセクション内にActive Incidentがあることを確認します。数字のリンクを選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

4.

Support Workbench Problemsページには、ORA 7445 [qcstda()+515]に似たDescriptionをもつ新しいActive Incidentが表示されています。 +を選択して問題の詳細を開き、Incident番号をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

5.

Incident Detailsページが表示されます。Incident番号を確認します。Application Informationセクションで、SQL Text文の'select * from hr.obetable'がインシデントを引き起こしたことがわかります。また、2つのダンプ・ファイルが生成されたことも表示されています。 Problem Detailsブレッドクラムをクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

トピック・リストに戻る

修復できない問題であれば、Oracle Supportに通知する必要があります。Oracle Supportでは、開発に対して効果的に報告できるよう、できるかぎりの詳細を収集して問題が何であるかを特定しようとします。これを行うには、問題をパッケージ化してOracle Supportに送信します。以下の手順を実行します。

1.

Problem DetailsページのInvestigate and Resolveセクションで、「Quick Package」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

2.

Create New PackageウィンドウのSend to Oracle Supportで「No」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

3.

ページがリフレッシュされたら、「Next」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

4.

パッケージされるインシデントが一覧表示されたら、「Next」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

5.

マニフェストの詳細が表示されます。「Next」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

6.

Immediatelyが選択されていることを必ず確認し、「Submit」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

7.

パッケージを生成しています。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

8.

パッケージのファイルの生成に成功しました。「OK」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

9.

パッケージを表示するには、SummaryセクションのPackagedの下にある「Yes」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

10.

生成されたファイルを選択し、「View」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

11.

Packaging Detailsウィンドウで、「Files」タブを選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

12.

パッケージに含まれるファイルの一覧が表示されます。これで、このパッケージをOracle Supportに送信して詳細な分析を受けることができます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

トピック・リストに戻る

問題を分析した結果、TAB$のOBETABLEにあるいくつかの列が間違っていることがわかります。問題を解決するには、TAB$を更新して問題を終了する必要があります。以下の手順を実行します。

1.

ターミナル・ウィンドウに戻り、以下のスクリプトを実行します。

./corr_fix.sh

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

2.

Oracle Enterprise Managerに戻り、Problems in Packageの横にあるリンクをクリックします。

Move your mouse over this icon to see the image

 

3.

問題の前にあるチェックボックスを選択し、「Close」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

4.

確認するため、「Yes」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

5.

インシデントは終了しました。

このアイコンの上にカーソルを置くと、イメージが表示されます。

 

トピック・リストに戻る

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

ディクショナリの整合性チェックの作成
アクティブなインシデントのレビューおよび調査
問題のパッケージの作成

トピック・リストに戻る

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