ここでは、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コンポーネントが調査され、それらのパフォーマンスを向上させるための推奨方法が示されます。
行論理変更レコード(行LCR)の列のデータ型と表の対応する列のデータ型が一致しない場合、適用プロセスによって、適用時に自動的に特定のデータ型が変換されます。
DBMS_CAPTURE_ADM.SET_PARAMETER
プロシージャのパラメータの値にNULL
を指定すると、取得プロセス・パラメータにそのデフォルト値を設定できます。同様に、DBMS_APPLY_ADM.SET_PARAMETER
プロシージャのパラメータの値にNULL
を指定すると、適用プロセス・パラメータ値にそのデフォルト値を設定できます。
関連項目: Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス |
以前のリリースのOracle Databaseでは、Oracle Streamsは、フラッシュバック・データ・アーカイブ内の表に対する変更のレプリケーションをサポートしていませんでした。Oracle Database 11g リリース1(11.1)以上では、Oracle Streamsは、フラッシュバック・データ・アーカイブ内の表をサポートします。
以前のリリースのOracle Databaseでは、Oracle Streamsは、仮想列を持つ表に対する変更のレプリケーションをサポートしていませんでした。Oracle Database 11g リリース1(11.1)以上では、Oracle Streamsは、仮想列を持つ表をサポートします。
新しい取得プロセス・パラメータskip_autofiltered_table_ddl
を使用すると、データ操作言語(DML)の変更が自動的にフィルタ処理されるデータベース・オブジェクトに対するデータ定義言語(DDL)の変更を取得できます。
関連項目:
|
新しい適用プロセス・パラメータrtrim_on_implicit_conversion
は、データ型の自動変換時に適用プロセスがキャラクタ・データをトリミングするかどうかを決定します。
関連項目:
|
同期取得は新しいOracle Streamsクライアントであり、表へのデータ操作言語(DML)の変更をコミット直後に取得します。
XMLType
はOracleが提供する型であり、データベースにXMLデータを格納したり、データベース内のXMLデータを問い合せるために使用できます。Oracle Streamsでは、XMLType
データへの変更の取得、伝播および適用が可能です。
取得プロセスでは、CLOB
列として格納されているXMLType
列に対する変更を取得できますが、オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType
列に対する変更は取得できません。適用プロセスでは、CLOB
列、オブジェクト・リレーショナルまたはバイナリXMLとして格納されているXMLType
列に対して変更を適用できます。
Oracle Streamsは、透過的データ暗号化を使用して暗号化された列への変更の取得、伝播および適用をサポートします。また、列レベルで暗号化された列や、表領域の暗号化を介して暗号化された列をサポートします。表領域の暗号化を使用すると、表領域全体を暗号化できます。暗号化された表領域で作成されたすべてのオブジェクトは、その表領域内のデータベース・オブジェクト内のすべての列も含め、自動的に暗号化されます。列が暗号化されると、その暗号化が列の暗号化によるものか、表領域の暗号化によるものかに関係なく、Oracle Streamsコンポーネントでは同じ方法で列データが処理されます。
Streamsレプリケーション構成から使用できないレプリカを簡単に分割できます。ストリームを分割すると、再び使用可能になったレプリカを最新の状態にするのに必要な時間を短縮できます。最新の状態になったレプリカは、元の構成に再びマージできます。この機能では、DBMS_STREAMS_ADM
パッケージ内の3つの新しいプロシージャ(SPLIT_STREAMS
、MERGE_STREAMS_JOB
およびMERGE_STREAMS
)が使用されます。
関連項目: Oracle Streamsレプリケーション管理者ガイド |
DBMS_STREAMS_ADM
パッケージ内の新しいSET_MESSAGE_TRACKING
プロシージャを使用すると、データベース・セッションによって生成された論理変更レコード(LCR)に追跡ラベルを指定できます。新しいV$STREAMS_MESSAGE_TRACKING
ビューを問い合せると、ストリームを介してLCRを追跡し、それらが各Oracle Streamsクライアントでどのように処理されたかを確認できます。
LCRの追跡は、1つ以上の適用プロセスでLCRが期待どおりに適用されない場合に役立ちます。この場合、LCRの追跡を使用することで、LCRが停止しているストリーム内の場所を特定し、その場所での問題に対処することができます。
また、新しいmessage_tracking_frequency
取得プロセス・パラメータを使用すると、LCRを自動的に追跡できます。
関連項目:
|
Oracleが提供するDBMS_COMPARISON
と呼ばれる新しいパッケージを使用すると、2つの異なるデータベースで、表などの共有データベース・オブジェクト内の行を比較できます。データベース・オブジェクトに相違点が見つかると、このパッケージによってデータベース・オブジェクトが収束され、一貫性が確保されます。
関連項目:
|
Oracle Streamsクライアントが無効になったり、Oracle Streamsに関連するユーザー定義のしきい値を超えると、Enterprise Managerによって自動的にアラートが通知されます。
以前のリリースでは、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ハンドラおよびエラー・ハンドラでの適用エラーの処理が簡単になりました。既存のDMLハンドラおよびエラー・ハンドラが存在する場合は、現行のリリースに対応するように修正する必要がある場合があります。
関連項目: Oracle Streamsレプリケーション管理者ガイド |
Oracle Streamsによって、特定の条件下での伝播効率が向上します。