首页 > IT职业 > IT生活 > Timesten学习3(高可用性)
配置高可用性的TT,同时实现cache以及和后台oracle rac集群这种模式应该是最有价值的,两台TT同时对外提供服务,TT直接通过复制实现数据同步, 同时每个TT都通过cache agent把变化的数据传递到后台的ORACLE,这种架构应该是我们最关心的,也是最有用的。
现在配置环境
192.168.100.105
server1
192.168.100.106
server2
192.168.10.105 server1-priv
192.168.10.106 server2-priv
192.168.100.215
server1-vip
192.168.100.216
server2-vip
在server1,server2安装timesten软件,软件目录安装在/timesten/Timesten下,data store放在DataStore=/timesten/Timesten/peyton/rac,文件以rac开头,DSN=rac_tt70
数据库为一RAC,分别装在server1和server2,SID分别为orcl1和orcl2
create user tt identified
by tt default tablespace users;
SQL> create
user tt identified by tt default tablespace users;
SQL> grant
connect,resource to tt;
SQL> grant
select any dictionary to tt;
SQL> connect
tt/tt@orcl1
SQL> create
table t1(id number(2) primary key);
ORCL1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.215)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL1)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.216)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL2)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
server1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =
server2-vip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
LISTENER_SERVER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
server1-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.105)(PORT = 1521)(IP = FIRST))
)
)
LISTENERS_ORCL =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
server1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =
server2-vip)(PORT = 1521))
)
ORCL1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.215)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL1)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.216)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL2)
)
)
ORCL=
(DESCRIPTION=
(LOAD_BALANCE=OFF)
(FAILOVER=ON)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=server2-vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=server1-vip)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ORCL)
(SERVER=DEDICATED)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=180)
(DELAY=5)
)
)
)
LISTENER_SERVER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
server2-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.100.106)(PORT = 1521)(IP = FIRST))
)
)
LISTENERS_ORCL =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
server1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =
server2-vip)(PORT = 1521))
)
[rac_tt70]
Driver=/timesten/TimesTen/tt70/lib/libtten.so
DataStore=/timesten/Timesten/peyton/rac
DatabaseCharacterSet=ZHS16GBK
ConnectionCharacterSet=ZHS16GBK
Authenticate=0
PermSize=64
TempSize=16
UID=tt
OracleId=orcl
OraclePwd=tt
在两个节点上创建oracle的cache
[tt@server1 bin]$
ttIsql rac_tt70
Copyright (c)
1996-2008, Oracle. All rights reserved.
Type ? or
"help" for help, type "exit" to quit ttIsql.
All commands must
end with a semicolon character.
connect
"DSN=rac_tt70";
Connection
successful:
DSN=rac_tt70;UID=tt;DataStore=/timesten/Timesten/peyton/rac;DatabaseCharacterSet=ZHS16GBK;ConnectionCharacterSet=ZHS16GBK;DRIVER=/timesten/TimesTen/tt70/lib/libtten.so;OracleId=orcl1;Authenticate=0;PermSize=64;TempSize=16;TypeMode=0;
(Default setting
AutoCommit=1)
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);
You can
enable and disable AUTOREFRESH by setting its STATE to either ON or OFF through
a CREATE CACHE GROUP or an ALTER CACHE GROUP statement. (ON is the default.)
AUTOREFRESH
is scheduled by TimesTen when the transaction that sets its STATE to ON is committed
When the STATE is set to OFF, changes to the Oracle tables are not captured or recorded.
You can also use the ALTER CACHE GROUP statement to set the STATE to PAUSED.
When the cache group is PAUSED, changes to the Oracle tables are captured and
recorded on Oracle, but are not applied to the tables in the TimesTen cache
group
[tt@server2
bin]$ ttIsql rac_tt70
connect
"DSN=rac_tt70";
Connection
successful: DSN=rac_tt70;UID=tt;DataStore=/timesten/Timesten/peyton/rac;DatabaseCharacterSet=ZHS16GBK;ConnectionCharacterSet=ZHS16GBK;DRIVER=/timesten/TimesTen/tt70/lib/libtten.so;OracleId=orcl1;Authenticate=0;PermSize=64;TempSize=16;TypeMode=0;
(Default
setting AutoCommit=1)
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);
在两个节点上分别执行
Command> CREATE REPLICATION reptest
ELEMENT e_1 TABLE t1 MASTER rac on "server1" SUBSCRIBER rac on "server2"
ELEMENT e_2 TABLE t1 MASTER rac on "server2" SUBSCRIBER rac on "server1"
[tt@server1 ~]$ ttAdmin -repStart rac_tt70
RAM Residence Policy : inUse
Replication Agent Policy : manual
Replication Manually Started : True
Cache Agent Policy : manual
Cache Agent Manually Started : True
[tt@server2 ~]$ ttAdmin -repStart rac_tt70
RAM Residence Policy : inUse
Replication Agent Policy : manual
Replication Manually Started : True
Cache Agent Policy : manual
Cache Agent Manually Started : True
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/48010/viewspace-1017607/ ,如需转载,请注明出处,否则将追究法律责任。