轉~timesten系列七:配置高可用性的TT,同時實現和cache和後臺oracle整合

xlfsy發表於2011-01-20
這種模式應該是最有價值的
兩臺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/tt@rac1
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方面的內容。。。
感謝原作者!
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14844492/viewspace-1044929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章