DBMS_REPUTIL.FROM_REMOTEファンクションによって挿入または更新がローカルで開始 されたと判断された場合、定義されているアクション(タイムスタンプ割当て)が発生しま す。挿入または更新がリモート・サイトから開始されたと判断された場合は、タイムスタン プ値は割り当てられません。
ビュー、オブジェクト・ビューおよびシノニム ビュー、オブジェクト・ビューおよびシノニムビュー、オブジェクト・ビューおよびシノニム
ビュー、オブジェクト・ビューおよびシノニム ビュー、オブジェクト・ビューまたはシノ ニムをレプリケーション環境に関係する他のマスター・サイトに配布するには、レプリケー ションを使用します。オブジェクトが他のサイトにレプリケートされると、そのオブジェク トはローカルで作成されたかのように動作します。変更を獲得するためにオブジェクトを監 視する内部トリガーまたはパッケージはありません。ただし、オブジェクトはレプリケー ト・オブジェクトなので、レプリケーション・マネージメント・ツールまたはレプリケー ション・マネージメントAPIを使用して削除または変更できます。
索引タイプ 索引タイプ索引タイプ
索引タイプ Oracleでは索引タイプのレプリケーションをサポートしています。レプリケー ション・マネージメント・ツールまたはDBMS_REPCATパッケージ内の
CREATE_MASTER_REPOBJECTプロシージャを使用して、索引タイプの実装に使用するタイ プとタイプ本体のファンクションを明示的にレプリケートする必要があります。
ユーザー定義演算子 ユーザー定義演算子ユーザー定義演算子
ユーザー定義演算子 オブジェクト指向アプリケーションの開発者は、ユーザー定義演算子 と呼ばれるドメイン固有の演算子(Contains、Within_Distance、Similarなど)を使 用して、組込みのリレーショナル演算子(+、-、/、*、LIKEなど)のリストを拡張できま す。ユーザー定義演算子をレプリケーション環境に関係する他のマスター・サイトに配布す るには、レプリケーションを使用します。オブジェクトが他のサイトにレプリケートされる と、演算子はローカルで作成されたかのように動作します。変更を獲得するためにオブジェ クトを監視する内部トリガーまたはパッケージはありません。ただし、レプリケート・オブ ジェクトであるため、レプリケーション・マネージメントAPIを使用して削除または変更で きます。
関連項目 関連項目関連項目
関連項目: レプリケート・トリガーの作成方法の詳細は、『Oracle9iレプ リケーション・マネージメントAPIリファレンス』を参照してください。
関連項目 関連項目関連項目
関連項目: 拡張索引の詳細は、『Oracle9i Data Cartridge Developer’s
Guide』を参照してください。
関連項目関連項目関連項目
関連項目: 『Oracle9i Data Cartridge Developer’s Guide 』
マスター・レプリケーションのアーキテクチャ
マスター・レプリケーションの概要とアーキテクチャ 2-27
順序のレプリケーションの代替方法 順序のレプリケーションの代替方法 順序のレプリケーションの代替方法 順序のレプリケーションの代替方法
異なるデータベースの2つの順序で同じ値が生成されることがあるため、順序のレプリケー ションはサポートしていません。
順序のレプリケーションの代替方法が3つあり、これらの方法を使用すると、一意の値の生 成と一意性のデータ競合が確実に回避されます。次のSELECT文を実行すれば、一意識別子 を取り出せます。
SELECT SYS_GUID() OID FROM DUAL;
このSQL演算子は、グローバルに一意な16バイトの識別子を返します。この値は、タイム スタンプと日付スタンプおよびマシン識別子を使用してグローバルに一意な識別子を生成す るアルゴリズムに基づいています。グローバルに一意な識別子は、次の形式で表示されま す。
4595EF13AB785E73E03400400B40F58B
sys_guid()ファンクションを使用する第2の方法として、各マスター・サイトに順序を作 成し、サイト名(またはその他のグローバルに一意な値)とローカルの順序を連結する方法 があります。この方法は、順序の値の重複や、2-10ページの「競合解消の概念」で説明して いる挿入競合の発生を回避するのに役立ちます。
さらに、レプリケーション環境内で一意の値を生成するように各マスター・サイトで順序を 作成する方法があります。これを実現するには、CREATESEQUENCE文で開始値、増分値お よび最大値の組合せを使用します。たとえば、次のように設定すると想定します。
同様の方法を使用して、各サイトに対して一意の範囲を生成するSTART WITHとMAXVALUE を指定することにより、各マスター・サイトごとに異なる範囲を定義できます。
内部トリガー 内部トリガー 内部トリガー 内部トリガー
内部トリガーは、レプリケート・データの更新に関する情報の獲得および格納に使用しま す。内部トリガーによって、ローカル・サイトで加えられたデータ変更をリモート・サイト で再生成するリモート・プロシージャ・コール(RPC)が作成されます。遅延RPCは、遅 延トランザクション・キューに格納され、レプリケーション環境に関係する他のマスター・
サイトに伝播されます。データ・レプリケーションをサポートする内部トリガーは、Oracle サーバー実行モジュール内の必須コンポーネントです。したがって、システム・リソースを 最小限に使用して、レプリケート・データへの更新内容を高速に獲得し、格納できます。
パラメータ パラメータパラメータ
パラメータ マスター・サイトマスター・サイトマスター・サイトマスター・サイトA マスター・サイトマスター・サイトマスター・サイトマスター・サイトB マスター・サイトマスター・サイトマスター・サイトマスター・サイトC
START WITH 1 3 5
INCREMENTBY 10 10 10
範囲の例 1、11、21、31、41、... 3、13、23、33、43、... 5、15、25、35、45、...
マスター・レプリケーションのアーキテクチャ
遅延トランザクション 遅延トランザクション 遅延トランザクション 遅延トランザクション
前述の内部トリガーによって生成されるRPCを伝播(送信および実行)することにより、
データ・レプリケーション情報が転送されます。このRPCは、遅延トランザクション・
キューに格納されます。各RPCには、接続先サイトでの内部プロシージャの実行コマンド のみでなく、ターゲット・サイトにレプリケートされるデータも含まれています。Oracleで は分散トランザクション・プロトコルを使用しているため、グローバルなデータベース整合 性が自動的に保護され、データの耐障害性が保証されます。
内部プロシージャ 内部プロシージャ 内部プロシージャ 内部プロシージャ
内部トリガーによって作成された遅延RPCがレプリケーション環境に関係する他のマス ター・サイトに伝播されると、遅延RPCは接続先サイトの内部プロシージャによってリ モート・サイトで適用されます。この内部プロシージャは、表のレプリケーション・サポー トを生成するときに自動的にアクティブになります。また、この内部プロシージャは、発行 元サイトの遅延トランザクション・キューから受信されるRPCに基づいて実行されます。
キュー キュー キュー キュー
次のキューは、Oracle Replicationによって生成されるトランザクションを管理します。
遅延トランザクション・キュー 遅延トランザクション・キュー遅延トランザクション・キュー
遅延トランザクション・キュー このキューには、マスター・グループ内の別の接続先に伝 播されるトランザクション(たとえば、DML)が格納されます。遅延伝播用に、サイトの遅 延トランザクション・キューの内部トリガーによって生成されるRPCが格納されます。ま た、トランザクションを構成するすべてのRPCがトランザクションとして伝播されてリ モートで適用されるように、開始トランザクションに関する情報も記録されます。 Oracleの レプリケーション機能では、Oracle Advanced Queuingのメカニズムを使用して遅延トラン ザクション・キューが実装されます。
エラー・キュー エラー・キューエラー・キュー
エラー・キュー このキューには、ローカル・サイトでの適用に失敗した遅延トランザク ションに関する情報が格納されます。エラー・キューにはレプリケーション環境のその他の 各マスター・サイトのエラー情報は表示されません。エラー状態が解消されると、トランザ クションを再度実行するか、エラー・キューからトランザクションを削除できます。
ジョブ・キュー ジョブ・キュージョブ・キュー
ジョブ・キュー 伝播プロセスは、ジョブ・キュー・メカニズムジョブ・キュー・メカニズムジョブ・キュー・メカニズムジョブ・キュー・メカニズムおよび遅延トランザクショ遅延トランザクショ遅延トランザクショ遅延トランザクショ ン
ンン
ンを使用して管理されます。各サーバーには、ローカル・ジョブ・キューがあります。サー バーのジョブ・キューは、ジョブの実行を要求するPL/SQLコールやジョブの実行時期な ど、ローカル・ジョブに関する情報を格納するデータベース表です。レプリケーション環境 の一般的なジョブには、遅延トランザクションをリモートのマスター・サイトにプッシュす るジョブ、遅延トランザクション・キューから適用済みのトランザクションをパージする ジョブおよびマテリアライズド・ビューのリフレッシュ・グループをリフレッシュするジョ ブがあります。