Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Remote » SQL Remote のレプリケーション設計 » SQL Remote のレプリケーション設計と設定 » トランザクション・ログ・ベースのレプリケーションの概要

 

UPDATE 文のレプリケーション

UPDATE 文では、データベースに入力された文とまったく同じ文がレプリケートされない場合があります。次の例で、UPDATE 文がレプリケートされる仕組みについて説明します。

  • UPDATE 文は、いずれかのリモート・ユーザのサブスクリプションでローを更新する場合、UPDATE 文としてそのユーザに送信されます。

  • UPDATE 文は、いずれかのリモート・ユーザのサブスクリプションからローを削除する場合、DELETE 文としてそのユーザに送信されます。

  • UPDATE 文は、いずれかのリモート・ユーザのサブスクリプションにローを追加する場合、INSERT 文としてそのユーザに送信されます。

UPDATE 文がレプリケートされる仕組みを説明するため、次の例では、統合データベースとユーザ Ann、Marc、ManagerSteve の 3 つのリモートデータベースを使用します。

Marc と Ann を含む Rep カラムを使用したパブリケーション。各サブスクライバは、各自の名前がマークされたローを受信します。

統合データベースには、次の文を使用して作成された、cons という名前のパブリケーションが存在します。

CREATE PUBLICATION "cons"."p1" (
 TABLE "DBA"."customers" ( "ID", "Rep") SUBSCRIBE BY repid
);

Ann と Marc は、cons パブリケーションに対して、それぞれの Rep カラム値でサブスクライブします。ManagerSteve は、cons パブリケーションに対して、Ann と Marc の Rep カラム値を使用してサブスクライブします。次の文は、パブリケーション cons に対して 3 人のユーザをサブスクライブします。

CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "Ann";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "Marc";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "ManagerSteve";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "ManagerSteve";

統合データベースでは、Marc から Ann にローの Rep 値を変更する UPDATE 文が、次のようにレプリケートされます。

  • Marc に対しては DELETE 文として。

  • Ann に対しては INSERT 文として。

  • ManagerSteve に対しては UPDATE 文として。

レプリケーション後の統合データベースとリモート・データベースの内容。

サブスクライバ間のローの再割り当ては、営業担当者間に顧客を定期的に再割り当てする営業支援アプリケーションに共通の機能で、「領域の再編成」とも呼ばれます。

参照