天天看點

timesten系列七:配置高可用性的TT,同時實作和cache和背景oracle內建

這種模式應該是最有價值的

兩台TT同時對外提供服務,TT直接通過複制實作資料同步,

同時每個TT都通過cache agent把變化的資料傳遞到背景的ORACLE,這種架構應該是我們最關心的,也是最有用的。

如何配置呢?

以如下環境為例說明

主機 rac01安裝了TT ,data store放在 /oracle/timesten/TimesTen/tt70/info/wzy ,檔案以wzy開頭,DSN=wzy_tt70

主機 rac02安裝了TT ,data store放在 /oracle/timesten/TimesTen/tt70/info/wzy ,檔案以wzy開頭,DSN=wzy_tt70

資料庫為一RAC,分别裝在rac01和rac02,SID分别為rac1和rac2

1.在oracle上面建立需要同步的表

sqlplus tt/[email protected]

create table t1(id number(2) primary key);

2.配置rac01和rac02的oracle client的tnsnames.ora,

加上

RAC1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = rac01)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = rac)

(INSTANCE_NAME = rac1)

)

)

3.配置rac01和rac02上得wzy_tt70,最後如下

[wzy_tt70]

Driver=/oracle/timesten/TimesTen/tt70/lib/libtten.so

DataStore=/oracle/timesten/TimesTen/tt70/info/wzy/wzy

DatabaseCharacterSet=WE8ISO8859P1

Authenticate=0

PermSize=64

TempSize=16

UID=tt

OracleId=rac1

OraclePwd=tt

4.在rac01和rac02的TT上面分别建立到oracle的cache

ttIsql wzy_tt70

Command>call ttCacheUidPwdSet('tt','tt');

Command>call ttCacheStart;

Command>CREATE USERMANAGED CACHE GROUP update_anywhere_t1

>AUTOREFRESH

>State off

>MODE INCREMENTAL

>INTERVAL 5 SECONDS

>FROM t1(id number(2) primary key,PROPAGATE);

注意:AUTOREFRESH 的 State 一定要設定為 off,因為我們同時打開了兩台TT的寫和複制功能,就不能自動把oracle的變化同步到TT了,是以在這種情況下,就不建議在oracle上面做事物操作了。

5.在rac01和rac02的TT上面分别建立到複制

ttIsql wzy_tt70

Command> CREATE REPLICATION reptest

>ELEMENT e_1 TABLE t1 MASTER wzy on "rac01" SUBSCRIBER wzy on "rac02"

>ELEMENT e_2 TABLE t1 MASTER wzy on "rac02" SUBSCRIBER wzy on "rac01"

6.啟動rac01和rac02上面的replication agent

ttAdmin -repStart wzy_tt70

7.在rac01上面的TT從oracle load data

LOAD CACHE GROUP update_anywhere_t1 COMMIT EVERY 256 ROWS;

完工了,一個具有最高可用性的,而且最有實際價值的TT架構就完成了。。。

希望後面還有時間來寫一些performance tuning ,trouble shooting 和best practices方面的内容。。。