ヘッダーをスキップ
Oracle® Database 2日でデータ・レプリケーションおよび統合ガイド
11g リリース2(11.2)
B56305-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 Oracle Streamsレプリケーション環境の管理

この章では、Oracle Streamsレプリケーション環境の管理、監視およびトラブルシューティング方法を説明します。

この章は次の項で構成されています。


注意:

このマニュアルでは、Oracle Enterprise Managerで実行できるOracle Streams管理操作の一部のみを扱っています。使用方法の詳細は、Oracle Enterprise Managerオンライン・ヘルプを参照してください。


関連項目:


Oracle Streamsレプリケーション環境の管理

Oracle Streamsレプリケーション環境では、管理はそれほど必要ありません。環境が正しく構成されている場合は、必要な最小限の管理作業で変更がデータベース・オブジェクトに自動的にレプリケートされます。この項では、Oracle Streamsレプリケーション環境で必要になることのある管理タスクの実行方法を説明します。

次の各項で、Oracle Streamsレプリケーション環境の管理を説明します。

取得プロセスの管理

Enterprise Managerを使用して、取得プロセスを管理できます。この項では、取得プロセスの最も一般的な管理タスクを完了する方法を説明します。

次の各項で、取得プロセスの管理について説明します。

取得プロセスの起動と停止

この項では、Enterprise Managerで取得プロセスを起動および停止する方法を説明します。

取得プロセスは、サポートされていないデータ型などのエラーを検出した場合に自動的に停止することがあります。この状況が発生した場合は、Enterprise Managerの「レプリケーションの管理」ページの「取得」サブページにエラーが表示されます。この場合は、エラーを解決して取得プロセスを再起動する必要があります。

また、取得プロセスは、取得プロセスが停止していたときにデータベース・オブジェクトに対して行われた変更を取得できることにも注意してください。これらの変更はREDOログに記録され、取得プロセスは、再起動後にREDOログ内で取得するように構成されている変更を検索します。データベース・オブジェクトに対する特定の変更を取得しないようにするには、タグを使用する必要があります。詳細は、「変更の循環を回避するためのタグの概要」を参照してください。

取得プロセスを起動または停止するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、起動または停止する取得プロセスを選択します。必要に応じて、検索ツールを使用して取得プロセスを検索してから選択します。

  6. 「アクション」リストで、無効になっている取得プロセスまたは中断した取得プロセスを起動するには「有効化」、有効になっている取得プロセスを停止するには「無効化」を選択します。

  7. 「実行」をクリックします。

  8. 取得プロセスを無効にしている場合は、確認ページで「はい」をクリックして、無効化を終了します。


注意:

DBMS_CAPTURE_ADMパッケージのSTART_CAPTUREプロシージャおよびSTOP_CAPTUREプロシージャを使用して、取得プロセスを起動および停止することもできます。

取得プロセスのパラメータの設定

この項では、Enterprise Managerで取得プロセス・パラメータを設定する方法を説明します。取得プロセス・パラメータは、取得プロセスの動作を制御します。パラメータを設定して、取得プロセスの特定の動作を変更できます。たとえば、PARALLELISM取得プロセス・パラメータを変更して、変更を取得するプロセス数を制御できます。通常は、取得プロセスの並列性を調整して、取得プロセスのパフォーマンスを最適化します。

取得プロセス・パラメータを設定するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、変更する取得プロセスを選択します。必要に応じて、検索ツールを使用して取得プロセスを検索してから選択します。

  6. 「アクション」で「構成」を選択します。

  7. 「実行」をクリックして「構成」サブページを開きます。

  8. 「編集」をクリックして「取得構成の編集」ページを開きます。

    tdpii_edit_capture.gifの説明が続きます。
    tdpii_edit_capture.gifの説明

  9. 「パラメータ」セクションで、1つ以上の取得プロセス・パラメータを変更します。

    パラメータの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 parallelismパラメータを変更した場合は、 「適用」をクリックしたときに取得プロセスが自動的に停止し、再起動します。

  10. 「適用」をクリックすると変更が保存されます。


注意:

DBMS_CAPTURE_ADM.SET_PARAMETERプロシージャを使用して、取得プロセス・パラメータを設定することもできます。

伝播の有効化および無効化

この項では、Enterprise Managerで伝播を有効または無効にする方法を説明します。

伝播がメッセージを送信するデータベースが停止している場合、またはネットワークの問題のため伝播によるメッセージの送信が不能な場合は、伝播を無効にできます。このような状況では、伝播を無効にし、問題が解決したら有効にできます。

また、16回連続試行してもメッセージの送信に失敗した場合は、伝播が自動的に中断されます。この状況が発生した場合は、Enterprise Managerの「レプリケーションの管理」ページの「伝播」サブページにエラーが表示されます。この場合は、エラーを解決し、伝播を有効にする必要があります。

伝播を有効または無効にするには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、有効または無効にする伝播を選択します。必要に応じて、検索ツールを使用して伝播を検索してから選択します。

  6. 「アクション」リストで、無効になっている伝播または中断した伝播を起動するには「有効化」、有効になっている伝播を停止するには「無効化」を選択します。

  7. 「実行」をクリックします。


注意:

DBMS_PROPAGATION_ADMパッケージのSTART_PROPAGATIONプロシージャおよびSTOP_PROPAGATIONプロシージャを使用して、伝播を起動および停止することもできます。


関連項目:


適用プロセスの管理

Enterprise Managerを使用して、適用プロセスを管理できます。この項では、適用プロセスの最も一般的な管理タスクを完了する方法を説明します。

次の各項で、適用プロセスの管理について説明します。

適用プロセスの起動と停止

この項では、Enterprise Managerで適用プロセスを起動および停止する方法を説明します。

適用プロセスは、表に存在しない行の更新試行などのエラーが発生した場合に自動的に停止します。この状況が発生した場合は、Enterprise Managerの「レプリケーションの管理」ページの「適用」サブページで、適用プロセスのステータスが「中断」になります。この場合は、エラーを解決して適用プロセスを再起動する必要があります。

適用プロセスを起動または停止するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、起動または停止する適用プロセスを選択します。必要に応じて、検索ツールを使用して適用プロセスを検索してから選択します。

  6. 「アクション」リストで、無効になっている適用プロセスまたは中断した適用プロセスを起動するには「有効化」、有効になっている適用プロセスを停止するには「無効化」を選択します。

  7. 「実行」をクリックします。

  8. 適用プロセスを無効にしている場合は、確認ページで「はい」をクリックして、無効化を終了します。


注意:

DBMS_APPLY_ADMパッケージのSTART_APPLYプロシージャおよびSTOP_APPLYプロシージャを使用して、適用プロセスを起動および停止することもできます。

適用プロセスのパラメータの設定

この項では、Enterprise Managerで適用プロセス・パラメータを設定する方法を説明します。適用プロセス・パラメータは、適用プロセスの動作を制御します。パラメータを設定して、適用プロセスの特定の動作を変更できます。たとえば、parallelism適用プロセス・パラメータを変更して、変更を適用するプロセス数を制御できます。通常は、適用プロセスの並列性を調整して、適用プロセスのパフォーマンスを最適化します。

適用プロセス・パラメータを設定するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、変更する適用プロセスを選択します。必要に応じて、検索ツールを使用して適用プロセスを検索してから選択します。

  6. 「アクション」で「構成」を選択します。

  7. 「実行」をクリックして「構成」サブページを開きます。

  8. 「編集」をクリックして「構成適用の編集」ページを開きます。

    tdpii_edit_apply.gifの説明が続きます。
    tdpii_edit_apply.gifの説明

  9. 「パラメータ」セクションで、1つ以上の適用プロセス・パラメータを変更します。

    パラメータの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 parallelismパラメータを変更した場合は、「適用」をクリックしたときに適用プロセスが自動的に停止し、再起動します。

  10. 「適用」をクリックすると変更が保存されます。


注意:

DBMS_APPLY_ADM.SET_PARAMETERプロシージャを使用して、適用プロセス・パラメータを設定することもできます。

Oracle Streamsレプリケーション環境の監視

この項では、Enterprise ManagerとSQL*Plusを使用して、レプリケーション・コンポーネントとレプリケーション・トポロジに関する一般情報を表示する方法を説明します。取得プロセス、伝播および適用プロセスの監視方法も説明します。

次の各項で、Oracle Streamsレプリケーション環境の監視を説明します。

データベースのレプリケーション・コンポーネントの概要の表示

Enterprise Managerの「レプリケーションの管理」ページの「概要」サブページには、現在のデータベース内のOracle Streamsコンポーネントに関する情報が表示されます。次のような情報があります。

  • Streamsプールのサイズに関する一般情報

  • ローカル・データベース内の取得プロセス、伝播および適用プロセスの数

  • 現在エラーになっている取得プロセス、伝播および適用プロセスの数

  • ローカル・データベースでOracle Streamsコンポーネントを通過するストリーム・パスのサマリー

  • 取得プロセス、伝播および適用プロセスの待機時間およびスループットを示すグラフ

番号をクリックしてドリルダウンし、コンポーネントに関する詳細情報を表示したり、コンポーネントを管理したりできます。

データベースのレプリケーション・コンポーネントの概要を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

tdpii_streams_main1.gifの説明が続きます。
tdpii_streams_main1.gifの説明

ストリーム・パスの表示

Oracle Enterprise Managerは、Oracle Streamsパフォーマンス・アドバイザを使用して、データベース上のOracle Streamsコンポーネントのストリーム・パスを追跡します。Oracle Streamsコンポーネントには、取得プロセス、キュー、伝播送信者、伝播受信者または適用プロセスがあります。Oracle Streamsパフォーマンス・アドバイザを使用すると、これらのコンポーネントの実行状況を監視できます。また、Oracle Streamsパフォーマンス・アドバイザは、コンポーネント間のリンク、および取得から処理までの情報の流れ方を追跡します。

ストリーム・パスとは、ソースから宛先までのメッセージのフローです。ストリーム・パスは、取得プロセス、同期取得またはアプリケーションがメッセージをキューにエンキューした場所から始まります。ストリーム・パスは、適用プロセスがメッセージをデキューした場所で終了します。ストリーム・パスは、適用プロセスに到達するまでに複数のキューおよび伝播を通過する可能性があります。このため、適用プロセスに到達するまでの1つのストリーム・パスが、複数のソース・コンポーネントと宛先コンポーネントのペアで構成される可能性があります。

データベースでOracle Streamsコンポーネントのストリーム・パスを表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

  5. 「表示」で、「パス・レベル」オプションを選択します。

tdpii_streams_paths.gifの説明が続きます。
tdpii_streams_paths.gifの説明

ストリーム・パスの詳細は、『Oracle Streams概要および管理』を参照してください。統計の詳細は、統計のリンクをクリックしてください。

また、パス・レベル・ビューには、いずれかのコンポーネントがボトルネック・コンポーネントかどうかが示されます。ボトルネック・コンポーネントとは、最もビジーなコンポーネントまたはアイドル時間が最も短いコンポーネントです。ボトルネック・コンポーネントがある場合は、これらのコンポーネントのステータスを確認します。無効になっている場合は、有効にできます。これらのコンポーネントが有効になっている場合は、パフォーマンスが向上するようコンポーネントを変更できるかどうかを調べることができます。


注意:

Database Controlでは、リモート・データベース上で実行されるコンポーネントの統計にはリンクを使用できません。

Oracle Streamsコンポーネントのパフォーマンス分析情報の表示

Oracle Enterprise Managerは、Oracle Streamsパフォーマンス・アドバイザを使用して、データベース上のOracle Streamsコンポーネントのパフォーマンスを監視します。

データベースでOracle Streamsコンポーネントのパフォーマンス分析情報を表示するには: 

  1. Enterprise ManagerにOracle Streams管理者などの管理ユーザーとしてログインします。

  2. 管理するデータベースの「データベース」ホームページに移動します。

  3. 「関連リンク」セクションの「アドバイザ・セントラル」をクリックします。

  4. 「アドバイザ・セントラル」ページで、「Streamsパフォーマンス・アドバイザ」をクリックします。

    「Streamsパフォーマンス・アドバイザ」ページは、各コンポーネントのパフォーマンス分析情報のサマリーを表示します。

  5. 詳細なパフォーマンス分析情報を表示するには、次のオプションを選択します。

    • すべてのコンポーネントに関する詳細なパフォーマンス分析情報を表示するには、「すべての詳細の表示」をクリックします。

    • コンポーネントに関する詳細なパフォーマンス分析情報を表示するには、コンポーネントを選択して、「詳細の表示」をクリックします。

『Oracle Streams概要および管理』には、これらのページに表示されるコンポーネントのタイプと統計に関する詳細情報が含まれています。

データベースのOracle Streams環境のトポロジの表示

Oracle Streamsトポロジには、ローカル・データベース、およびOracle Streams環境でローカル・データベースと対話する他のデータベースのグラフィカル表現が表示されます。レプリケーション環境では、トポロジは、表示されているデータベースに関する次の情報を示します。

  • 現在のデータベースからOracle Streams環境の他のデータベースへの伝播に使用されるデータベース・リンク。現在のデータベースを始点とする各矢印は、現在のデータベースから別のデータベースへの伝播に使用されるデータベース・リンクを示します。レプリケーション環境では、データベース・リンクを使用して、レプリケートされたオブジェクトに対する変更を他のデータベースに送信します。

  • Oracle Streams環境の他のデータベースから現在のデータベースへの伝播に使用されるデータベース・リンクで、現在のデータベースの適用プロセスは、伝播されるメッセージを現在のデータベースに適用します。現在のデータベースを終点とする各矢印は、別のデータベースから現在のデータベースでメッセージが適用される現在のデータベースへの伝播に使用されるデータベース・リンクを示します。

Oracle Streamsトポロジを表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「トポロジ」をクリックして「トポロジ」サブページを開きます。

「概要」ウィンドウで、トポロジの特定部分を選択して詳細に表示したり、ズーム・イン/ズーム・アウトできます。トポロジ内のデータベースを選択し、データベースに関する情報を示す「選択の詳細」ウィンドウを表示することもできます。

Oracle Streamsトポロジの詳細は、「凡例」リンクをクリックしてください。

次の図は、Oracle Streamsレプリケーション環境のOracle Streamsトポロジの例を示しています。

tdpii_streams_topology.gifの説明が続きます。
tdpii_streams_topology.gifの説明

前の図のOracle Streamsトポロジには、ハブアンドスポーク・レプリケーション構成が示されています。この構成には、次の要素が含まれています。

  • 現在のデータベースの名前は、hubです。

  • spoke1.example.comデータベースは、現在のデータベースと相互に作用するレプリケーション環境の一部です。このデータベースからハブ・データベース、およびハブ・データベースからこのデータベースへのデータベース・リンクがあります。

  • spoke2.example.comデータベースは、現在のデータベースと相互に作用するレプリケーション環境の一部です。このデータベースからハブ・データベース、およびハブ・データベースからこのデータベースへのデータベース・リンクがあります。

取得プロセスの監視

Enterprise Managerを使用して、取得プロセスに関する詳細情報を表示できます。取得プロセスの統計も表示できます。

次の各項で、取得プロセスの監視について説明します。

取得プロセスの情報の表示

Enterprise Managerを使用して、取得プロセスに関する情報を表示できます。この情報には、取得プロセスのステータスと状態、および取得プロセスに関するその他の情報が含まれます。

Enterprise Managerで取得プロセスに関する詳細情報を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

    「Streams」サブページには、データベース内の各取得プロセスに関する一般情報が表示されます。この情報には、取得プロセスのステータス、状態、待機時間およびスループットが含まれます。

  5. コンポーネントのリストで、監視する取得プロセスを選択します。必要に応じて、検索ツールを使用して取得プロセスを検索してから選択します。

  6. 「アクション」で「詳細の表示」を選択します。

  7. 「実行」をクリックして「取得の詳細を表示」ページを開きます。

tdpii_view_capture_details.gifの説明が続きます。
tdpii_view_capture_details.gifの説明

「取得の詳細を表示」ページには、取得プロセスに関する詳細情報が表示されます。


注意:

取得プロセスに関する情報を、ALL_CAPTUREおよびV$STREAMS_CAPTUREデータ・ディクショナリ・ビューに問い合せることもできます。

取得プロセスに関する統計情報の表示

Enterprise Managerを使用して、取得プロセスの統計を表示できます。統計には、取得プロセス・キュー内のメッセージ数、取得プロセスで取得およびエンキューされたメッセージ数、および取得プロセスに関連するその他の統計が含まれます。

Enterprise Managerで取得プロセスの統計を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

    Streamsサブページには、データベース内の各取得プロセスに関する一般情報が表示されます。この情報には、取得プロセスのステータス、状態、待機時間およびスループットが含まれます。

  5. コンポーネントのリストで、監視する取得プロセスを選択します。必要に応じて、検索ツールを使用して取得プロセスを検索してから選択します。

  6. 「アクション」で「統計の表示」を選択します。

  7. 「実行」をクリックして「取得の統計を表示」ページを開きます。

tdpii_view_capture_stats.gifの説明が続きます。
tdpii_view_capture_stats.gifの説明

「取得の統計を表示」ページには、次の情報が表示されます。

  • 「キュー統計」グラフでは、取得プロセス・キュー内の現在のメッセージ数を表示します。グラフの「エンキューされたメッセージ数」行には、現在バッファ・キュー入っているメッセージの合計数が表示されます。グラフの「オーバーフローしたメッセージ数」行には、メモリーから永続キュー表にオーバーフローしたメッセージの合計数が表示されます。

  • 「メッセージの統計」グラフは、取得プロセスが前回起動した後にエンキューおよび取得された変更の合計数を示します。 「エンキューされた合計メッセージ数」は、取得プロセスによってエンキューされた変更の数を示します。 「取得された合計メッセージ数」は、取得プロセス・ルールと比較して詳細に評価された変更の数を示します。変更が取得プロセス・ルールを満たさない場合、変更はエンキューされません。

  • 「取得の統計」セクションには、取得プロセスの現在の状態と、時間および取得された変更(メッセージ)に関連する統計が表示されます。これらの統計の詳細は、『Oracle Databaseリファレンス』V$STREAMS_CAPTURE動的パフォーマンス・ビューに関する項を参照してください。

アクティブな取得プロセス・トランザクションの表示

Enterprise Managerを使用して、取得プロセスによって現在処理されているトランザクションを表示できます。Enterprise Managerには次の情報が表示されます。

  • 「トランザクションID」: 各トランザクションのトランザクションID

  • 「累積メッセージ」: トランザクションに累積したメッセージの数

    Oracle Streamsレプリケーション環境では、各メッセージは論理変更レコード(LCR)です。トランザクションの変更の取得中にStreamsプロセスが再起動された場合、この列はStreamsプロセスが開始されてからトランザクションで取得されたLCRの数を示します。

  • 「先頭SCN」: トランザクションの最初のメッセージのシステム変更番号(SCN)

  • 「最終SCN」: トランザクションの最終メッセージのSCN

  • 「アクティブ化時刻」: トランザクションの最初のメッセージが記録された時刻

    Oracle Streamsレプリケーション環境では、取得プロセスにより取得された変更は、データベースのREDOログに記録されます。

  • 「アクティブ継続時間」(秒): ストリームでのトランザクションの時間。これは、アクティブ化時刻から現在の時刻までの時間です。

アクティブな取得プロセス・トランザクションを表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

    「取得」サブページには、データベース内の各取得プロセスに関する一般情報が表示されます。この情報には、取得プロセスのステータス、状態、待機時間およびスループットが含まれます。

  5. 取得プロセスの「現在アクティブなトランザクション」フィールドの番号リンクをクリックして、「取得の統計を表示」ページを開きます。

    「アクティブなStreamsトランザクションのリスト」セクションには、アクティブな取得プロセス・トランザクションが表示されます。

    tdpii_active_cap_trans.gifの説明が続きます。
    tdpii_active_cap_trans.gifの説明

    「セッションID」フィールドおよび「合計メッセージ」フィールドは取得プロセスに該当しません。

  6. トランザクションの詳細を表示するためにドリルダウンするには、トランザクションを選択して、「トランザクションの詳細を表示」をクリックします。

  7. 「LogMiner」ページで、「続行」をクリックします。

  8. 「LogMinerの結果」ページの「トランザクションの結果」セクションの表で「トランザクションID」リンクをクリックします。

    「トランザクション詳細」ページには、トランザクションの変更に関する詳細情報が表示されます。

    tdpii_cap_trans_detailes.gifの説明が続きます。
    tdpii_cap_trans_detailes.gifの説明

伝播の監視

Enterprise Managerを使用して、伝播に関する詳細情報を表示できます。伝播の統計も表示できます。

次の各項で、伝播の監視について説明します。

伝播の情報の表示

Enterprise Managerを使用して、伝播に関する情報を表示できます。この情報には、伝播のステータス、伝播が失敗したかどうか、および伝播に関するその他の情報が含まれます。

Enterprise Managerで伝播に関する情報を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、監視する伝播を選択します。必要に応じて、検索ツールを使用して伝播を検索してから選択します。

  6. 「アクション」で「詳細の表示」を選択します。

  7. 「実行」をクリックして「伝播の詳細を表示」ページを開きます。

tdpii_view_prop_details.gifの説明が続きます。
tdpii_view_prop_details.gifの説明

「伝播の詳細を表示」ページには、伝播プロセスに関する詳細情報が表示されます。


注意:

伝播に関する情報を、次のデータ・ディクショナリ・ビューに問い合せることもできます。
  • ALL_PROPAGATION

  • V$PROPAGATION_SENDER

  • V$PROPAGATION_RECEIVER


伝播に関する統計情報の表示

Enterprise Managerを使用して、伝播の統計を表示できます。統計には、伝播ソース・キュー内のメッセージ数、伝播によって送信されたメッセージ数および伝播に関連するその他の統計が含まれます。

Enterprise Managerで伝播の統計を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、監視する伝播を選択します。必要に応じて、検索ツールを使用して伝播を検索してから選択します。

  6. 「アクション」で「統計の表示」を選択します。

  7. 「実行」をクリックして「伝播の統計を表示」ページを開きます。

「伝播の統計を表示」ページには、次のサブページが表示されます。

  • 「バッファ・キュー」オプションには、伝播で使用されるキューのバッファ・キュー部分にエンキューされたメッセージの伝播統計が表示されます。このサブページを使用して、伝播が取得プロセスで取得された変更を送信する場合の伝播統計を表示します。

  • 「永続キュー」オプションには、伝播で使用されるキューの永続キュー部分にエンキューされたメッセージの伝播統計が表示されます。このサブページを使用して、伝播が同期取得で取得された変更を送信する場合の伝播統計を表示します。

どちらのオプションにも、キュー内のメッセージ数と、伝播により送信されたメッセージ数を数時間にわたって示すグラフがあります。両方のオプションには、メッセージの合計数や、伝播が前回起動した後に伝播されたバイト数など、その他の伝播統計も含まれます。

tdpii_prop_stats.gifの説明が続きます。
tdpii_prop_stats.gifの説明


注意:

バッファ・キュー統計および伝播統計を、次の動的パフォーマンス・ビューに問い合せることもできます。
  • V$BUFFERED_QUEUES

  • V$PROPAGATION_SENDER

  • V$PROPAGATION_RECEIVER


適用プロセスの監視

Enterprise Managerを使用して、適用プロセスに関する詳細情報を表示できます。適用プロセスの統計も表示できます。

次の各項で、適用プロセスの監視について説明します。

適用プロセスの情報の表示

Enterprise Managerを使用して、適用プロセスに関する情報を表示できます。この情報には、適用プロセスのステータスと状態、および適用プロセスに関するその他の情報が含まれます。

Enterprise Managerで適用プロセスに関する情報を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、監視する適用プロセスを選択します。必要に応じて、検索ツールを使用して適用プロセスを検索してから選択します。

  6. 「アクション」で「詳細の表示」を選択します。

  7. 「実行」をクリックして「適用の詳細表示」ページを開きます。

tdpii_view_apply_details.gifの説明が続きます。
tdpii_view_apply_details.gifの説明

「適用の詳細表示」ページには、適用プロセスに関する詳細情報が表示されます。


注意:

適用プロセスに関する情報を、次のデータ・ディクショナリ・ビューに問い合せることもできます。
  • ALL_APPLY

  • V$STREAMS_APPLY_COORDINATOR

  • V$STREAMS_APPLY_READER

  • V$STREAMS_APPLY_SERVER


適用プロセスに関する統計情報の表示

Enterprise Managerを使用して、適用プロセスの統計を表示できます。統計には、適用プロセス・キュー内のメッセージ数、適用プロセスで適用されたメッセージ数、および適用プロセスに関連するその他の統計が含まれます。

Enterprise Managerで適用プロセスの統計を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. コンポーネントのリストで、監視する適用プロセスを選択します。必要に応じて、検索ツールを使用して適用プロセスを検索してから選択します。

  6. 「アクション」で「統計の表示」を選択します。

  7. 「実行」をクリックして「適用の統計を表示」ページを開きます。

「適用の統計を表示」ページには、次のサブページがあります。

  • 「キュー」サブページは、適用プロセス・キューの永続キュー部分とバッファ・キュー部分両方にあった過去数時間のメッセージ数が表示されます。適用プロセスが、同期取得で取得された変更を適用する場合は、永続キュー統計を分析します。適用プロセスが、取得プロセスで取得された変更を適用する場合は、バッファ・キュー統計を分析します。

  • 「リーダー」サブページには、リーダー・サーバーの統計が表示されます。リーダー・サーバーは、適用プロセス・キューからメッセージをデキューし、別々のトランザクションにアセンブルします。

  • 「座標」サブページには、コーディネータ・プロセスの統計が表示されます。コーディネータ・プロセスは、リーダー・サーバーからトランザクションを取得し、適用サーバーに渡します。

  • 「サーバー」サブページには、適用サーバーの統計が表示されます。適用サーバーは、データベース・オブジェクトに対する変更を適用するか、適用ハンドラに変更を渡します。特定の適用サーバーの詳細を表示するには、その適用サーバーを選択し、「詳細の表示」をクリックします。

tdpii_apply_co_stats.gifの説明が続きます。
tdpii_apply_co_stats.gifの説明


注意:

バッファ・キュー統計および適用プロセス統計を、次の動的パフォーマンス・ビューに問い合せることもできます。
  • V$BUFFERED_QUEUES

  • V$STREAMS_APPLY_COORDINATOR

  • V$STREAMS_APPLY_READER

  • V$STREAMS_APPLY_SERVER


アクティブな適用プロセス・トランザクションおよびオーバーフローした適用プロセス・トランザクションの表示

Enterprise Managerを使用して、適用プロセスによって現在処理されているトランザクションを表示できます。アクティブなトランザクションとは、適用プロセスのために現在バッファ・キューに入っているメッセージがあるトランザクションです。オーバーフローしたトランザクションとは、バッファ・キューからハード・ディスクにオーバーフローしたメッセージがあるトランザクションです。

Enterprise Managerには、アクティブなトランザクションに関する次の情報が表示されます。

  • 「トランザクションID」: 各トランザクションのトランザクションID

  • 「セッションID」: 適用プロセスのコーディネータ・プロセスのセッションID

  • 「合計メッセージ」: トランザクションにあるメッセージの合計数

    トランザクションにあるメッセージの合計数は、適用プロセスに対してのみ計算されます。Oracle Streamsレプリケーション環境では、各メッセージは論理変更レコード(LCR)です。

  • 「累積メッセージ」: トランザクションに累積したメッセージの数

    トランザクションの受信中にStreamsプロセスが再起動された場合、この列はStreamsプロセスが開始されてからトランザクションで受信されたLCRの数を示します。

  • 「先頭SCN」: トランザクションの最初のメッセージのシステム変更番号(SCN)

  • 「最終SCN」: トランザクションの最終メッセージのSCN

  • 「アクティブ化時刻」: トランザクションの最初のメッセージが記録された時刻

    Oracle Streamsレプリケーション環境では、取得プロセスにより取得された変更は、データベースのREDOログに記録されます。

  • 「アクティブ継続時間」(秒): ストリームでのトランザクションの時間。これは、アクティブ化時刻から現在の時刻までの時間です。

Enterprise Managerには、オーバーフローしたトランザクションに関する次の情報が表示されます。

  • 「トランザクションID」: 各トランザクションのトランザクションID

  • 「セッションID」: 適用プロセスのリーダー・サーバーのセッションID

  • 「先頭SCN」: トランザクションの最初のメッセージのSCN

  • 「メッセージ数」: トランザクションにあるオーバーフローしたメッセージの数

    Oracle Streamsレプリケーション環境では、各メッセージは論理変更レコード(LCR)です。

  • 「最初のメッセージの作成時間」: トランザクションの最初のメッセージが記録された時刻

    Oracle Streamsレプリケーション環境では、取得プロセスにより取得された変更は、データベースのREDOログに記録されます。

  • 「オーバーフロー作成時間」: トランザクションにある最初のメッセージがバッファ・キューからハード・ディスクにオーバーフローした時間(オーバーフロー作成時間)

アクティブな適用プロセス・トランザクションおよびオーバーフローした適用プロセス・トランザクションを表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strrms_strms.gifの説明が続きます。
    tdpii_strrms_strms.gifの説明

  5. 次のいずれかのアクションを実行します。

    • アクティブな適用プロセス・トランザクションを表示するには、適用プロセスの「現在アクティブなトランザクション」フィールドの番号リンクをクリックします。

      「適用の統計を表示」ページの「アクティブなStreamsトランザクションのリスト」セクションには、アクティブな適用プロセス・トランザクションが表示されます。

      tdpii_active_app_trans.gifの説明が続きます。
      tdpii_active_app_trans.gifの説明

    • オーバーフローした適用プロセス・トランザクションを表示するには、適用プロセスの「現在オーバーフローしているトランザクション」フィールドにある番号リンクをクリックします。

      「適用の統計を表示」ページの「オーバーフローしたStreamsトランザクション・リスト」セクションには、オーバーフローした適用プロセス・トランザクションが表示されます。

      tdpii_spilled_app_trans.gifの説明が続きます。
      tdpii_spilled_app_trans.gifの説明

構成された更新競合ハンドラの表示

レプリケーション環境で、更新競合ハンドラは、同じ行が2つの異なるデータベースでほぼ同時に更新された場合に発生する競合を自動的に解消します。ALL_APPLY_CONFLICT_COLUMNSデータ・ディクショナリ・ビューを使用して、更新競合ハンドラをリストできます。

構成された更新競合ハンドラを表示するには: 

  1. SQL*Plusを開き、データベースにOracle Streams管理者として接続します。

    SQL*Plusの起動の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  2. 次の問合せを実行します。

    COLUMN OBJECT_OWNER HEADING 'Table|Owner' FORMAT A5
    COLUMN OBJECT_NAME HEADING 'Table Name' FORMAT A12
    COLUMN METHOD_NAME HEADING 'Method' FORMAT A12
    COLUMN RESOLUTION_COLUMN HEADING 'Resolution|Column' FORMAT A13
    COLUMN COLUMN_NAME HEADING 'Column Name' FORMAT A30
     
    SELECT OBJECT_OWNER, 
           OBJECT_NAME, 
           METHOD_NAME, 
           RESOLUTION_COLUMN, 
           COLUMN_NAME
      FROM ALL_APPLY_CONFLICT_COLUMNS
      ORDER BY OBJECT_OWNER, OBJECT_NAME, RESOLUTION_COLUMN;
    

    出力は、次のようになります。

    Table                           Resolution
    Owner Table Name   Method       Column        Column Name
    ----- ------------ ------------ ------------- ------------------------------
    HR    COUNTRIES    MAXIMUM      TIME          TIME
    HR    COUNTRIES    MAXIMUM      TIME          REGION_ID
    HR    COUNTRIES    MAXIMUM      TIME          COUNTRY_NAME
    HR    DEPARTMENTS  MAXIMUM      TIME          TIME
    HR    DEPARTMENTS  MAXIMUM      TIME          MANAGER_ID
    HR    DEPARTMENTS  MAXIMUM      TIME          LOCATION_ID
    HR    DEPARTMENTS  MAXIMUM      TIME          DEPARTMENT_NAME
    

    この例の出力は、最新時間の競合解消がhr.countries表およびhr.departments表に対して構成されていることを示しています。 「Column Name」の下にリストされている任意の列で競合が発生した場合は、「TIME」解決列の時間が最大(最新)の変更が使用され、その他の変更は破棄されます。

「バッファ・キューの統計」の表示

Enterprise Managerを使用して、レプリケーション環境の取得プロセス、伝播または適用プロセスで使用されるバッファ・キューの統計を表示できます。取得プロセスを使用して変更を取得するOracle Streamsレプリケーション環境では、各取得プロセスは変更をそのキューのバッファ・キュー部分にエンキューします。変更は、あるキューから別のキューに伝播されたときにバッファ・キューに残り、適用プロセスがバッファ・キューから変更をデキューします。

バッファ・キュー統計を表示するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「データ移動」をクリックして「データ移動」サブページを開きます。

  4. 「Streams」セクションの「アドバンスト・キューの管理」をクリックします。

    「アドバンスト・キューの管理」ページが表示されます。

  5. 監視するキューを選択します。必要に応じて、検索ツールを使用してキューを検索してから選択します。

  6. 「アクション」リストの「キュー統計」を選択します。

  7. 「実行」をクリックして「キュー統計」ページを開きます。

  8. 「バッファ・キューの統計」をクリックして「バッファ・キューの統計」サブページを開きます。

    tdpii_buf_q_stats.gifの説明が続きます。
    tdpii_buf_q_stats.gifの説明

この「バッファ・キューの統計」サブページには、選択したキューのバッファ・キュー部分に関する次の情報が表示されます。

  • キュー内の変更の数およびメモリーからディスクにあふれた変更の数に関する情報。

  • ローカル取得プロセスによってエンキューされた変更の数。取得プロセスがローカルの場合、「送信者キュー」フィールドは空です。

  • リモート取得プロセスによって異なるデータベースで取得され、バッファ・キューに送信された変更の数。取得プロセスがリモートの場合、「送信者キュー」フィールドには、変更の送信元のキューおよびデータベースが含まれます。

  • ローカル適用プロセスによってバッファ・キューからデキューされた変更の数。

  • 伝播によってバッファ・キューから別のキューに送信された変更の数。


注意:

バッファ・キュー統計を、次の動的パフォーマンス・ビューに問い合せることもできます。
  • V$BUFFERED_QUEUES

  • V$BUFFERED_PUBLISHERS

  • V$BUFFERED_SUBSCRIBERS


Oracle Streamsレプリケーション環境のトラブルシューティング

この項では、Oracle Streamsレプリケーション環境で最も一般的な問題について説明します。これらの問題の修正方法も説明します。

次の各項で、Oracle Streamsレプリケーション環境のトラブルシューティングを説明します。


関連項目:


Enterprise Managerでの自動化されたアラートへの対応

アラートとは、潜在的に問題があったり、クリティカルのしきい値を超えた場合に発せられる警告のことです。アラートには2つのタイプがあります。

  • ステートレス: 必ずしもシステムの状態と結び付かない単一イベントを示すアラート。たとえば、取得が特定のエラーで中断したことを示すアラートはステートレス・アラートです。

  • ステートフル: 特定のシステム状態に関連するアラート。ステートフル・アラートは、通常は数値に基づき、警告レベルとクリティカル・レベルでしきい値が定義されます。たとえば、警告レベルが85%でクリティカル・レベルが95%の現在のOracle Streamsプール・メモリー使用率に関するアラートは、ステートフル・アラートです。

データベースのアラートを表示するには: 

  1. Enterprise ManagerにOracle Streams管理者などの管理ユーザーとしてログインします。

  2. 管理するデータベースの「データベース」ホームページに移動します。

  3. 「アラート」セクションで、データベースのアラートを表示します。Oracle Streamsサマリーも「高可用性」セクションで利用できます。これらのセクションを表示するには、下にスクロールすることが必要な場合があります。

Oracle Streamsには独自のアラートのセットがあります。表5-1で、Oracle Streamsに関連したアラートを説明します。

表5-1 Oracle Streamsアラート

アラート メッセージ アラート・タイプ

取得の中断アラート


STREAMSの取得プロセスcapture_nameは、ORA-error_numberで中断しました

ステートレス

伝播の中断アラート


STREAMSの伝播プロセスsource_queue、destination_queue、database_linkは、16の失敗後に中断しました

ステートレス

適用の中断アラート


STREAMSの適用プロセスapply_nameは、ORA-error_numberで中断しました

ステートレス

適用エラー・アラート


適用プロセスapply_nameのSTREAMSエラー・キューには、ORA-error_numberとなる新しいトランザクションがあります

ステートレス

Oracle Streamsプール・アラート


アラート・インフラストラクチャによって自動的に設定されます

ステートフル


アラートは、統計がメトリックしきい値を渡すときにも表示されます。たとえば、アラートは、Oracle Streams統計が待機時間またはスループットのしきい値を渡すときに表示されます。


注意:

Oracle Streamsアラートは情報のみです。Oracle Streamsアラートを管理する必要はありません。Oracle Streams環境を定期的に監視し、問題発生時に対処する場合、Oracle Streamsアラートを監視する必要はありません。


関連項目:


取得の中断アラート

このアラートはクリティカル・エラーを示します。取得プロセスは停止し、取得プロセスに依存するレプリケーションもすべて停止します。また、取得プロセスは、再起動するまでREDOログのスキャンをこれ以上実行しません。

レスポンス

次のいずれかの方法で正確なエラー・メッセージを取得します。

エラーに適したアクションを実行します。

適切なアクションを実行した後で、次のいずれかの方法で取得プロセスを再起動します。

伝播の中断アラート

このアラートはクリティカル・エラーを示します。伝播が停止し、通常は1つのキューから別のキューに伝播によって送信されるメッセージがソース・キューに残ります。伝播に依存するレプリケーションも停止します。最終的に、ソース・キューが非常に大きくなり、メッセージがディスクにあふれることがあります。メッセージがディスクにあふれると、Oracle Streamsのパフォーマンスが低下します。

レスポンス

次のいずれかの方法で正確なエラー・メッセージを取得します。

  • Enterprise Managerでの方法については、「伝播の情報の表示」を参照してください。

  • SQL*Plusで、DBA_QUEUE_SCHEDULESビューを問い合せます。

エラーに適したアクションを実行します。

適切なアクションを実行した後で、次のいずれかの方法で伝播を再起動します。

  • Enterprise Managerでの方法については、「伝播の有効化および無効化」を参照してください。

  • SQL*Plusで、DBMS_PROPAGATION_ADM.START_PROPAGATIONプロシージャを実行します。

適用の中断アラート

このアラートはクリティカル・エラーを示します。適用プロセスが停止し、通常は適用プロセスによってデキューされるメッセージが適用プロセス・キューに残ります。適用プロセスに依存するレプリケーションも停止します。最終的に、適用プロセス・キューが非常に大きくなり、メッセージがディスクにあふれることがあります。適用プロセス・キューにメッセージを送信する他のキューも大きくなり、メッセージがディスクにあふれることがあります。メッセージがディスクにあふれると、Oracle Streamsのパフォーマンスが低下します。

レスポンス

次のいずれかの方法で正確なエラー・メッセージを取得します。

エラーに適したアクションを実行します。エラーがORA-26714エラーの場合は、DISABLE_ON_ERROR適用プロセス・パラメータをNに設定して、今後のユーザー・エラーでの中断を回避することを検討してください。方法については、「適用プロセスのパラメータの設定」を参照してください。

適切なアクションを実行した後で、次のいずれかの方法で適用プロセスを再起動します。


関連項目:


適用エラー・アラート

このアラートは、適用プロセスがトランザクションを適用したときにエラーが発生したことを示します。適用プロセスは、トランザクション内のすべてのメッセージをエラー・キューに移動します。エラー・トランザクションに依存する他のトランザクションも適用エラーになる可能性があり、エラー・キューがすぐに大きくなることがあります。したがって、管理者はできるだけ早く適用エラーを解決する必要があります。

レスポンス

エラー・キューの適用エラーは、次のいずれかの方法で管理します。

  • Enterprise Managerでの方法については、「適用エラーの管理」を参照してください。

  • SQL*Plusで、ALL_APPLY_ERRORビューを問い合せ、エラーを表示して解決し、DBMS_APPLY_ADMパッケージのプロシージャを使用してエラーを実行または削除します。

Oracle Streamsプール・アラート

メトリックとは、システムの状態の報告に使用される測定の単位です。Oracle Streamsプールのメモリー使用率がSTREAMS_POOL_USED_PCTメトリックで指定された割合を超えた場合、このアラートが生成されます。

このアラートは、データベースで自動メモリー管理または自動共有メモリー管理を使用していない場合にのみ発生します。具体的には、このアラートは、次の初期化パラメータが0に設定されているか、未設定の場合にのみ発生します。

  • MEMORY_TARGET

  • SGA_TARGET


注意:

自動メモリー管理または自動共有メモリー管理を使用することをお薦めします。

レスポンス

メトリックしきい値は、アラート・インフラストラクチャで自動的に、またはEnterprise Managerを使用して設定できます。現在実行中のワークロードが標準的な場合は、Oracle Streamsプールのサイズを増やすことを検討してください。「データベース」ホームページのヘッダーにある、関連項目の一部のリンクからメトリックを管理できます。メトリックしきい値の表示および設定の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

適用エラーの管理

適用エラーは様々な理由で発生します。トランザクションでの変更が原因で適用エラーが発生した場合、適用プロセスによって、その変更だけでなく同じトランザクションの他の変更もすべてエラー・キューに移動されます。適用エラーが発生した場合は、その原因を特定して修正してください。特定のエラー・トランザクションだけ、または1つの適用プロセスのすべてのエラー・トランザクションを再試行できます。

次の各項で、適用エラーの管理について説明します。

データベース・オブジェクトでの適用エラーの修正

エラー・トランザクションを再試行する前に、データベース・オブジェクトに対してデータ操作言語(DML)またはデータ定義言語(DDL)の変更を実行し、1つ以上の適用エラーの原因となった状況を修正する必要がある場合があります。データベース・オブジェクトに対する変更を行うが、その変更をレプリケートしたくない場合は、変更を行うセッションにセッション・タグを設定します。

たとえば、hr.employees表を更新して適用エラーを修正するには:  

  1. SQL*Plusを開き、hr.employees表を更新できるユーザーとして接続します。

    SQL*Plusの起動の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  2. セッション・タグを設定します。

    BEGIN
       DBMS_STREAMS.SET_TAG(
          tag  =>  HEXTORAW('1D'));
    END;
    /
    

    取得プロセスと同期取得によって変更が取得されないようにする値をタグに設定してください。

  3. hr.employees表を更新してエラーを解決します。

  4. SQL*Plusセッションを終了します。

1つ以上のエラー・トランザクションの原因となった問題を解決した後で、エラー・トランザクションを再試行または削除できます。方法については、「適用エラー・トランザクションの再試行または削除」を参照してください。

特定の適用エラーとその修正方法の詳細は、『Oracle Streams概要および管理』を参照してください。

適用エラー・トランザクションの再試行または削除

「データベース・オブジェクトでの適用エラーの修正」では、1つ以上のエラー・トランザクションの原因となった問題を解決する方法を説明します。問題を解決した後で、エラー・トランザクションを再試行または削除できます。

  • トランザクションの変更を宛先表に行う必要がある場合は、トランザクションを再試行します。再試行するのは、これらの変更を行うために表のデータをまだ変更していない場合のみです。

  • トランザクションのすべての変更を宛先表に行った場合、または表に変更を加えない場合は、トランザクションを削除します。

適用エラー・トランザクションを再試行または削除するには: 

  1. Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。

  2. 「データベース」ホームページに移動します。

  3. 「高可用性」の下にある「Streamsコンポーネント」の番号リンクをクリックします。

    「レプリケーションの管理」ページが表示され、「概要」サブページが表示されます。

  4. 「Streams」をクリックして「Streams」サブページを開きます。

    tdpii_strms_ap_error.gifの説明が続きます。
    tdpii_strms_ap_error.gifの説明

    適用プロセスに1つ以上のエラーがある場合、ステータス・アイコンが変化して警告記号が表示されます。また、適用エラーによって、適用プロセスが中断する場合があります。中断すると、適用プロセスのステータスがABORTEDに変更されます。

  5. コンポーネントのリストで、エラー・トランザクションが存在する適用プロセスを選択します。必要に応じて、検索ツールを使用して適用プロセスを検索してから選択します。

  6. 「アクション」で「エラーの表示」を選択します。

  7. 「実行」をクリックして「適用の詳細表示」ページを開きます。

    「エラー」セクションの「トランザクション・エラー」にエラーが表示されます。

    tdpii_apply_errors.gifの説明が続きます。
    tdpii_apply_errors.gifの説明

    エラー・トランザクションの「エラーLCRの表示」フィールドのアイコンをクリックして、エラーに関する詳細情報を表示できます。詳細情報は「エラーLCRの表示」ページに表示され、トランザクションの各変更が含まれます。

    tdpii_view_error_lcrs.gifの説明が続きます。
    tdpii_view_error_lcrs.gifの説明

    さらにドリルダウンするには、行変更を選択して「値の比較」をクリックします。「値の比較」ページが表示され、行変更が変更の適用先となる表のデータと比較されます。

    tdpii_compare_error_values.gifの説明が続きます。
    tdpii_compare_error_values.gifの説明

  8. エラーの詳細をドリルダウンした場合は、「適用の詳細表示」リンクをクリックし、「トランザクション・エラー」を展開して、「適用エラー」ページに戻ります。

  9. 「適用エラー」ページで、次のいずれかのアクションを実行します。

    • すべてのエラー・トランザクションを再試行するには、「すべてのエラーの再試行」をクリックします。

    • すべてのエラー・トランザクションを削除するには、「すべて削除」をクリックします。

    • 特定のエラー・トランザクションを再試行するには、エラー・トランザクションを選択し、「エラーの再試行」をクリックします。

    • 特定のエラー・トランザクションを削除するには、エラー・トランザクションを選択し、「削除」をクリックします。


注意:

DBMS_APPLY_ADMパッケージの次のプロシージャを使用して、エラー・トランザクションを削除または再実行することもできます。
  • DELETE_ALL_ERRORS

  • DELETE_ERROR

  • EXECUTE_ALL_ERRORS

  • EXECUTE_ERROR


レプリケーション先が使用できない場合のレプリケーション環境の管理

Oracle Streamsレプリケーション環境の宛先キューが、伝播された変更の受入れを停止することがあります。宛先キューは、たとえばキューを含むデータベースが停止した場合、宛先キューに問題がある場合、キューを含むデータベースを実行しているシステムが停止した場合などに変更の受入れを停止することがあります。

取得プロセスを使用するレプリケーション環境で宛先が使用不能の場合は、宛先キューに送信できない取得済の変更がソース・キューに残ります。ソース・キューのサイズが増大し、最終的に変更がバッファ・キュー・メモリーからディスクにあふれます。この状況が発生した場合は、Oracle Streamsレプリケーション環境のパフォーマンスが低下します。

大量の取得済変更がディスクにあふれているかどうかを判断するには、「取得プロセスに関する統計情報の表示」の手順に従います。「キュー統計」グラフは、取得プロセス・キュー内の、ディスクにあふれている現在の変更数を示します。

レプリケーション環境で変更を取得するための取得プロセスを使用する場合は、2つの取得プロセス・パラメータを設定して、使用できない宛先を自動的に管理できます。split_thresholdおよびmerge_theshold取得プロセス・パラメータは、Oracle Streamsが分離およびマージ操作を自動的に実行するかどうかを制御します。これらのパラメータが自動分離およびマージを指定するように設定されている場合、Oracle Schedulerジョブは取得プロセスから流れているストリームを監視します。Oracle Schedulerジョブがストリームの問題を特定した場合、ジョブは新しいOracle Schedulerジョブを送信して、問題のあるストリームを取得プロセスから流れている他のストリームから分離します。他のOracle Schedulerジョブはストリームの監視を続行し、問題が解決した場合、Oracle Schedulerジョブはストリームを他のストリームに戻してマージします。

split_threshold取得プロセス・パラメータがINFINITEに設定されている場合、自動分離は無効です。split_thresholdパラメータがINFINITEに設定されていない場合、自動分離は有効です。自動分離は、split_thresholdパラメータで指定された秒数の間、適用プロセスとの通信が失われた場合のみ発生します。たとえば、適用プロセスが無効になった場合や宛先データベースが停止した場合に、適用プロセスとの通信が失われます。


注意:

1つのストリームが他のストリームより遅い速度で変更を処理している場合、自動分離は発生しません。通常、この状況では、速度が遅いストリームが他のストリームとは別の取得プロセスを使用するように環境を再構成することをお薦めします。

使用できない宛先を管理するには: 

  1. 取得プロセスが自動分割およびマージを有効にするように、次のパラメータが適切に設定されていることを確認します。

    • split_threshold: このパラメータがINFINITEに設定されていないことを確認します。このパラメータのデフォルト設定は1800です。

    • merge_threshold: このパラメータが負の値に設定されていないことを確認します。このパラメータのデフォルト設定は60です。

    詳細は、『取得プロセスのパラメータの設定』を参照してください。

  2. DBA_STREAMS_SPLIT_MERGEビューを定期的に監視して、自動分割およびマージ操作が処理されているかどうかを確認します。

    自動分割が発生した場合、取得プロセス、キュー、伝播などの特定のコンポーネントがクローニングされ、それぞれにシステムで生成された名前が与えられます。DBA_STREAMS_SPLIT_MERGEビューには、クローニングされた各コンポーネントの名前および分割やマージ操作に関する他の情報が含まれます。

  3. 分割およびマージ操作が処理されている場合、宛先の問題を解決します。宛先データベースの適用プロセスが、クローニングされた取得プロセスから変更を受け入れると、問題が解決されます。

  4. クローニングされた取得プロセスが無効になっている場合は、クローニングされた取得プロセスを起動します。詳細は、「取得プロセスの起動と停止」を参照してください。


関連項目: