天天看点

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方面的内容。。。