ヘッダーをスキップ
Oracle® Streams概要および管理
11gリリース2 (11.2)
B61351-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Oracle Streamsの新機能

ここでは、Oracle Database 11gのOracle Streamsの新機能を説明し、それらの詳細の参照先を示します。

この項の内容は次のとおりです。

Oracle Database 11g リリース2(11.2)のOracle Streamsの新機能

Oracle Database 11g リリース2(11.2)のOracle Streamsには、次の新機能があります。

XStream

XStreamには、Oracle Database間およびOracle Databaseと他のシステム間での情報共有を可能にするアプリケーション・プログラミング・インタフェース(API)が備えられています。他のシステムには、Oracle Times TenなどのOracleシステム、Oracle以外のデータベース、RDBMS以外のOracle製品、ファイル・システム、サード・パーティ・ソフトウェア・アプリケーションなどが含まれます。


関連項目:

『Oracle Database XStreamガイド』

文DMLハンドラ

文DMLハンドラと呼ばれる新しいタイプの適用ハンドラでは、SQL文のコレクションを使用し、カスタマイズした方法で行LCRを処理できます。PL/SQLの処理を必要としないので、文DMLハンドラは通常、プロシージャDMLハンドラよりもよいパフォーマンスで動作します。

Oracle Streamsを使用した表の変更の記録

DBMS_STREAMS_ADMパッケージの新しいMAINTAIN_CHANGE_TABLEプロシージャを使用すると、表に対して行われた変更を記録するOracle Streams環境を簡単に構成できます。


関連項目:


SQL生成

SQL生成とは、行論理変更レコード(行LCR)にカプセル化された変更を実行する際に必要となるSQL文を生成する機能です。


関連項目:


Oracle Streamsによる圧縮表のサポート

以前のリリースのOracle Databaseでは、Oracle Streamsは、圧縮表に対する変更の取得をサポートしていませんでした。Oracle Database 11g リリース2(11.2)以上のOracle Streamsの取得プロセスおよび同期取得は、基本表圧縮またはOLTP表圧縮のいずれかにより圧縮された表に対する変更を取得できます。また、適用プロセスでは、圧縮表に変更を適用できます。


注意:

取得プロセスが圧縮表に対する変更を取得できるのは、ソース・データベースで互換性レベルが11.2.0以上に設定されている場合のみです。ダウンストリーム取得構成では、取得プロセスを実行しているデータベースでも互換性レベルが11.2.0以上に設定されている必要があります。同期取得で圧縮表に対する変更を取得できるのは、データベースで互換性レベルが11.2.0以上に設定されている場合のみです。


関連項目:

  • 『Oracle Database概要』

  • 『Oracle Database管理者ガイド』

  • 『Oracle Database SQL言語リファレンス』


取得プロセスおよび適用プロセスによるSecureFiles LOBのサポート

以前のリリースのOracle Databaseでは、Oracle Streamsは、SecureFiles LOBをサポートしていませんでした。Oracle Database 11gリリース2 (11.2)以上のOracle Streamsの取得プロセスでは、SecureFiles CLOBNCLOBおよびBLOB列に対して行われた変更を取得でき、Oracle Streamsの適用プロセスでは、SecureFiles CLOBNCLOBおよびBLOB列に変更を適用できます。

新しい列を保持する宣言ルールベースの変換

列を保持する宣言ルールベースの変換では、指定したルールを満たす行論理変更レコード(LCR)に列のリストが保持されます。変換によって、リストにない列が行LCRから削除されます。列を保持する宣言ルールベースの変換を指定するには、DBMS_STREAMS_ADMパッケージのKEEP_COLUMNSプロシージャを使用します。


関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

自動分割とマージ

split_thresholdおよびmerge_thesholdという2つの新しい取得プロセス・パラメータを使用すると、自動分割とマージが可能になります。これらのパラメータが自動分割とマージを指定するように設定されていると、Oracle Schedulerジョブにより取得プロセスから送られるストリームが監視されます。Oracle Schedulerジョブにより、ストリームに問題があることがわかった場合、ジョブは新しいOracle Schedulerジョブを発行して、取得プロセスから送られるその他のストリームから、問題のストリームを切り離します。その他のOracle Schedulerジョブはストリームの監視を続行し、問題が修正されると、Oracle Schedulerジョブがそのストリームをその他のストリームにマージします。


関連項目:

  • 『Oracle Streamsレプリケーション管理者ガイド』

  • 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


新しい適用プロセス・パラメータ: txn_age_spill_threshold

適用プロセスは、特定のトランザクションについて、トランザクションのメッセージがtxn_age_spill_thresholdパラメータで指定した秒数を超えてメモリー内に存在すると、メッセージをメモリーからハード・ディスクにオーバーフローさせます。


関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

ジョブの監視

UTL_SPADVパッケージの新しいSTART_MONITORINGプロシージャでは、指定した間隔で継続的にOracle Streamsパフォーマンスを監視する監視ジョブを作成できます。このパッケージの他の新しいプロシージャを使用して、監視ジョブを管理できます。


関連項目:


新しいDBA_RECOVERABLE_SCRIPT_HISTビュー

新しいDBA_RECOVERABLE_SCRIPT_HISTビューには、DBMS_STREAMS_ADMパッケージのRECOVER_OPERATIONプロシージャによって実行されたリカバリ操作の結果が格納されます。


関連項目:

  • 『Oracle Streamsレプリケーション管理者ガイド』

  • 『Oracle Databaseリファレンス』


Oracle Database 11g リリース1(11.1)のOracle Streamsの新機能

Oracle Database 11g リリース1(11.1)のOracle Streamsには、次の新機能があります。

Oracle StreamsのトポロジおよびOracle Streamsパフォーマンス・アドバイザ

Oracle Streamsのトポロジでは、メッセージの個々のストリームと、各ストリームで構成されたOracle Streamsコンポーネントが識別されます。通常、Oracle Streams環境には複数のデータベースがあり、Oracle Streamsのトポロジによって、Oracle Streams環境全体の包括的なビューが提供されます。

Oracle Streamsパフォーマンス・アドバイザによって、Oracle Streamsのトポロジのパフォーマンス測定(スループット測定、待機時間測定など)が提供されます。また、Oracle Streamsパフォーマンス・アドバイザでは、Oracle Streamsのトポロジにおけるボトルネックが特定されるため、それらのボトルネックを修正できます。さらに、Oracle Streamsのトポロジ内のOracle Streamsコンポーネントが調査され、それらのパフォーマンスを向上させるための推奨方法が示されます。

適用時の自動データ型変換

行論理変更レコード(行LCR)の列のデータ型と表の対応する列のデータ型が一致しない場合、適用プロセスによって、適用時に自動的に特定のデータ型が変換されます。

パラメータのデフォルト値をリストアするための簡単な方法

DBMS_CAPTURE_ADM.SET_PARAMETERプロシージャのパラメータの値にNULLを指定すると、取得プロセス・パラメータにそのデフォルト値を設定できます。同様に、DBMS_APPLY_ADM.SET_PARAMETERプロシージャのパラメータの値にNULLを指定すると、適用プロセス・パラメータ値にそのデフォルト値を設定できます。


関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

Oracle Streamsによるフラッシュバック・データ・アーカイブ内の表のサポート

以前のリリースのOracle Databaseでは、Oracle Streamsは、フラッシュバック・データ・アーカイブ内の表に対する変更のレプリケーションをサポートしていませんでした。Oracle Database 11g リリース1(11.1)以上では、Oracle Streamsは、フラッシュバック・データ・アーカイブ内の表をサポートします。

Oracle Streamsによる仮想列のサポート

以前のリリースのOracle Databaseでは、Oracle Streamsは、仮想列を持つ表に対する変更のレプリケーションをサポートしていませんでした。Oracle Database 11g リリース1(11.1)以上では、Oracle Streamsは、仮想列を持つ表をサポートします。

新しい取得プロセス・パラメータ: skip_autofiltered_table_ddl

新しい取得プロセス・パラメータskip_autofiltered_table_ddlを使用すると、データ操作言語(DML)の変更が自動的にフィルタ処理されるデータベース・オブジェクトに対するデータ定義言語(DDL)の変更を取得できます。


関連項目:


新しい適用プロセス・パラメータ: rtrim_on_implicit_conversion

新しい適用プロセス・パラメータrtrim_on_implicit_conversionは、データ型の自動変換時に適用プロセスがキャラクタ・データをトリミングするかどうかを決定します。


関連項目:


同期取得

同期取得は新しいOracle Streamsクライアントであり、表へのデータ操作言語(DML)の変更をコミット直後に取得します。

Oracle StreamsによるXMLType列のサポート

XMLTypeはOracleが提供する型であり、データベースにXMLデータを格納したり、データベース内のXMLデータを問い合せるために使用できます。Oracle Streamsでは、XMLTypeデータへの変更の取得、伝播および適用が可能です。

取得プロセスでは、CLOB列として格納されているXMLType列に対する変更を取得できますが、オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType列に対する変更は取得できません。適用プロセスでは、CLOB列、オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType列に対して変更を適用できます。

Oracle Streamsによる透過的データ暗号化のサポート

Oracle Streamsは、透過的データ暗号化を使用して暗号化された列への変更の取得、伝播および適用をサポートします。また、列レベルで暗号化された列や、表領域の暗号化を介して暗号化された列をサポートします。表領域の暗号化を使用すると、表領域全体を暗号化できます。暗号化された表領域で作成されたすべてのオブジェクトは、その表領域内のデータベース・オブジェクト内のすべての列も含め、自動的に暗号化されます。列が暗号化されると、その暗号化が列の暗号化によるものか、表領域の暗号化によるものかに関係なく、Oracle Streamsコンポーネントでは同じ方法で列データが処理されます。

ストリームの宛先の分割とマージ

Streamsレプリケーション構成から使用できないレプリカを簡単に分割できます。ストリームを分割すると、再び使用可能になったレプリカを最新の状態にするのに必要な時間を短縮できます。最新の状態になったレプリカは、元の構成に再びマージできます。この機能では、DBMS_STREAMS_ADMパッケージ内の3つの新しいプロシージャ(SPLIT_STREAMSMERGE_STREAMS_JOBおよびMERGE_STREAMS)が使用されます。


関連項目:

『Oracle Streamsレプリケーション管理者ガイド』

ストリームを介したLCRの追跡

DBMS_STREAMS_ADMパッケージ内の新しいSET_MESSAGE_TRACKINGプロシージャを使用すると、データベース・セッションによって生成された論理変更レコード(LCR)に追跡ラベルを指定できます。新しいV$STREAMS_MESSAGE_TRACKING ビューを問い合せると、ストリームを介してLCRを追跡し、それらが各Oracle Streamsクライアントでどのように処理されたかを確認できます。

LCRの追跡は、1つ以上の適用プロセスでLCRが期待どおりに適用されない場合に役立ちます。この場合、LCRの追跡を使用することで、LCRが停止しているストリーム内の場所を特定し、その場所での問題に対処することができます。

また、新しいmessage_tracking_frequency取得プロセス・パラメータを使用すると、LCRを自動的に追跡できます。


関連項目:

  • 『Oracle Streamsレプリケーション管理者ガイド』

  • message_tracking_frequency取得プロセス・パラメータの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照


共有データベース・オブジェクトの比較と収束

Oracleが提供するDBMS_COMPARISONと呼ばれる新しいパッケージを使用すると、2つの異なるデータベースで、表などの共有データベース・オブジェクト内の行を比較できます。データベース・オブジェクトに相違点が見つかると、このパッケージによってデータベース・オブジェクトが収束され、一貫性が確保されます。


関連項目:

  • Oracle Database 2日でデータ・レプリケーションおよび統合ガイド

  • 『Oracle Streamsレプリケーション管理者ガイド』

  • 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


Oracle Streamsクライアント用の自動アラートおよびしきい値

Oracle Streamsクライアントが無効になったり、Oracle Streamsに関連するユーザー定義のしきい値を超えると、Enterprise Managerによって自動的にアラートが通知されます。

Oracle StreamsジョブによるOracle Schedulerの使用

以前のリリースでは、Oracle StreamsはDBMS_JOBパッケージで作成されたジョブを使用して、伝播、イベント通知などのジョブを実行し、JOB_QUEUE_PROCESSES初期化パラメータが、作成されるスレーブ・プロセスの数を制御していました。

Oracle Database 11g リリース1(11.1)以上のOracle Streamsでは、Oracle Schedulerを使用してこれらのジョブを実行します。Oracle Schedulerは、コンピュータ・システムの負荷に基づいて、これらのジョブのスレーブ・プロセスの数を自動的に調整します。JOB_QUEUE_PROCESSES初期化パラメータは、スレーブ・プロセスの最大数を指定するためだけに使用されます。したがって、作成可能なスレーブの数を制限する場合を除き、JOB_QUEUE_PROCESSES初期化パラメータを設定する必要はありません。


関連項目:

「伝播ジョブ」

通知機能の改善

今回のリリースでは、通知機能について次のような改善が行われました。

  • 時間ごとの通知の分類

  • 大量の通知の同時送信を可能にする拡張

  • 登録統計を使用した通知の診断機能の向上


関連項目:

『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』

エラー処理が簡単になった新しいエラー・メッセージ

Oracle Database 11g リリース1(11.1)では、次の適用エラー・メッセージが新しく追加されました。

  • 更新または削除する行が対象の表に存在しない場合、ORA-26787エラーが発生します。

  • 対象の表には行が存在するが、一部の列の値が、行の論理変更レコード(行LCR)の値と一致していない場合、ORA-26786エラーが発生します。

以前のリリースでは、このような場合にORA-01403エラーが戻されていました。これらの新しいエラー・メッセージによって、DMLハンドラおよびエラー・ハンドラでの適用エラーの処理が簡単になりました。既存のプロシージャ・ハンドラおよびエラー・ハンドラが存在する場合は、現行のリリースに対応するように修正する必要がある場合があります。

取得と適用の複合

Oracle Streamsによって、特定の条件下での伝播効率が向上します。