TimesTenデータベースレプリケーション学習:18.classicレプリケーションの典型的な設計モード-双方向レプリケーション


双方向レプリケーションはclassicレプリケーションの典型的なモードであり、双方向レプリケーション、すなわちactive/activeモードであり、本明細書では単一テーブルに対する双方向レプリケーションを定義し、両方を同じテーブルに対して同時に変更することができる.
DSNは以下の通りである.
[master1]
Driver=/home/oracle/TimesTen/tt1122/lib/libtten.so
DataStore=/tmp/master1
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8

[master2]
Driver=/home/oracle/TimesTen/tt1122/lib/libtten.so
DataStore=/tmp/master2
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8

master 1とmaster 2では、次の操作を同時に行います.
create table a1(k int, v int, primary key(k));

CREATE REPLICATION r1 ELEMENT elem1 TABLE a1 MASTER master1 ON "timesten-hol" SUBSCRIBER master2 ON "timesten-hol" RETURN RECEIPT ELEMENT elem2 TABLE a1 MASTER master2 ON "timesten-hol" SUBSCRIBER master1 ON "timesten-hol" RETURN RECEIPT;

cachedb 1とcachedb 2でrep agentを同時に起動
call ttrepstart;

rep schemeを表示するには:
Command> repschemes;

Replication Scheme ORACLE.R1:

  Element: ELEM1                          
  Type: Table ORACLE.A1
  Master Store: MASTER1 on TIMESTEN-HOL Transmit Durable
  Subscriber Store: MASTER2 on TIMESTEN-HOL Return Receipt

  Element: ELEM2                          
  Type: Table ORACLE.A1
  Master Store: MASTER2 on TIMESTEN-HOL Transmit Durable
  Subscriber Store: MASTER1 on TIMESTEN-HOL Return Receipt

  Store: MASTER1 on TIMESTEN-HOL
    Port: (auto)
    Log Fail Threshold: (none)
    Retry Timeout: 120 seconds
    Compress Traffic: Disabled
    Return Service Wait Time: 10 seconds
    Return Service on Replication Stop: Disabled
    Return Service Failure Policy: (none)

  Store: MASTER2 on TIMESTEN-HOL
    Port: (auto)
    Log Fail Threshold: (none)
    Retry Timeout: 120 seconds
    Compress Traffic: Disabled
    Return Service Wait Time: 10 seconds
    Return Service on Replication Stop: Disabled
    Return Service Failure Policy: (none)

1 replication scheme found.

マスター1にデータを挿入し、データをマスター2にコピーします.
master1> insert into a1 values(1, 1);
1 row inserted.
master2> select * from a1;
< 1, 1 >

この行のデータをmaster 1で更新し、データをmaster 1にコピーします.
master2> update a1 set v = 2 where k = 1;
1 row updated.
master1> select * from a1;
< 1, 2 >