TT最典型的应用,就是TT后台连接一个oracle数据库,TT只保留少量的最需要的数据以提供最快的访问速度,尔后台oracle数据库则用来保留所 有的数据,在TT需要的时候,可以从oracle里面自动抽取数据到TT,当然,TT里面的数据也可以自动同步到oracle,这个功能,是目前其他内存 型数据库暂时无法提供的,或者不可能做到这么好的,毕竟TT和oracle是同一家公司的产品,当然能够更好的无缝集成了。
在TT里面,cache有下面几种类型
1.read only
数据从oracle 自动刷新到 TT里面,TT里面无法做修改。
典型应用是在TT里面保存只读的产品信息,用户信息等等,定期从oracle刷新该信息
2.异步写
数据在TT里面更新,异步传递到oracle 。
这种比较适合在TT上面做事务性操作,然后同步到oracle
3.同步写
数据在TT里面更新,同步传递到oracle 。
这种比较适合在TT上面做事务性操作,然后同步到oracle
4.人工管理的cache
在这种模式下,数据可以同时在TT和oracle里面更新,自动同步到对方。
这种方式最灵活,但是需要考虑数据冲突的问题,比如同时在oracle和TT上面修改统一条记录,怎么处理。
当然TT提供了基于时间戳的处理机制。
同步的原理是在oracle上面更新的数据会通过trigger捕获记录下来,然后通过cache agent定期来获取这些信息同步到TT。
而TT上的同步则是通过分析TT的操作日志来获得做了那些DML操作,然后通过cache agent同步到oracle .
由于我们第一次安装TT的时候,没有安装 cache connect to oracle ,所以还无法实现和oracle的通信,
所以首先我们需要做得就是安装 cache connect to oracle .
如果在配置cache之前,没有安装oracle client,请先安装好oracle client 。
TT支持如下版本的oracle client
9.2.0.8 or above
10.1.0.5 or above
10.2.0.1 or above
很简单的操作步骤,还是执行 setup.sh
./setup.sh -installCache ,然后安装提示,一路next下去,就ok了,详细信息请看下面的log
[timesten@rac01 linux86]$ ./setup.sh -installCache
There is 1 TimesTen instance installed locally :
1) tt70 (TimesTen7.0.5.0.0)
NOTE: There is only one instance which can be upgraded.
Instance Name : tt70
Product Installed : TimesTen7.0.5.0.0
Installation Directory : /oracle/timesten/TimesTen/tt70
BitLevel : 32
Component Installed : Client/Server and DataManager
Daemon Port : 17000
Would you like to upgrade this instance? [ yes ]
Extracting Cache Connect to Oracle ...
The following variables have been set in the file :
/oracle/timesten/TimesTen/tt70/bin/ttThunk
ORACLE_HOME=/oracle/product/10.2.0/db_1
LD_LIBRARY_PATH=/oracle/timesten/TimesTen/tt70/lib:/oracle/product/10.2.0/db_1/lib32:/oracle/product/10.2.0/db_1/network/lib32:/oracle/product/10.2.0/db_1/lib:/oracle/product/10.2.0/db_1/network/lib
Would you like to enable the Cache Connect to Oracle Administrator? [ yes ]
What TCP/IP port number would you like Cache Connect to Oracle Administrator to listen on? [ 17004 ]
NOTE: To access the TimesTen Cache Connect to Oracle Administrator
go to the url: http://localhost:17004/cache
Restarting the daemon ...
TimesTen Daemon stopped.
TimesTen Daemon startup OK.
End of TimesTen installation.
然后检查timesten 用户的.bash_profile文件,确认 ORACLE_HOME是否设置为正确的oracle client的安装目录,
确认LD_LIBRARY_PATH ,一定要包含
$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
然后在oracle上面创建 用户,以便TT用来连接到oracle
sqlplus '/as sysdba'
create user tt identified by tt;
grant connect,resource to tt;
然后修改我们创建的wzy_tt70 data store的系统级DSN(info/sys.odbc.ini),加上如下信息
#oracle数据库用户名
UID=tt
#oracle数据库连接sid
OracleId=rac1
#oracle数据库密码
OraclePwd=tt
修改后的完整DSN如下(注意:DatabaseCharacterSet必须和oracle的一致):
[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
在oracle client端的tnsnames.ora 里面添加一个名字叫rac1(对应上面定义的OracleId)的别名,如下
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac1)
)
)
在oracle里面创建一个测试表
sqlplus tt/tt@rac1
create table t1(id number(2) primary key);
开始创建cache group ,
ttIsql wzy_tt70
Command>call ttCacheUidPwdSet('tt','tt'); #设置连接到oracle的用户名和密码
Command>call ttCacheStart; #启动cache
创建一个read only的语法如下
CREATE READONLY CACHE GROUP readcache AUTOREFRESH INTERVAL 1 SECONDS FROM t1 (id number(2) not null primary key);
注意:from t1后面是跟oracle里面需要同步的表的名字,一定要有同样的列和字段类型,而且一定要有pk或者非空的唯一性索引字段
一个只读的cache group创建好了,然后从oracle里面load一次数据,用如下语法:
LOAD CACHE GROUP readcache COMMIT EVERY 256 ROWS;
然后在oracle里面insert数据,看看是否能在TT里面出现。
创建一个同步的cache group语法如下:
CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP update_t1
FROM t1 (id number(2) not null primary key);
其他的都和创建read only的语法一样。。。
那我们最关心的应该还是创建一个用户管理的cache group,因为只有用户管理的cache group ,才能实现
双向的数据同步,数据可以在oracle上面修改,也可以在TT上修改,都能及时同步到对方。
创建一个用户管理的cache group语法如下:
CREATE USERMANAGED CACHE GROUP update_anywhere_t1
AUTOREFRESH
MODE INCREMENTAL
INTERVAL 5 SECONDS
FROM t1(id number(2) primary key,PROPAGATE);
其他的操作和read only一样,比如创建完成之后,需要第一次load数据 。
其中:MODE INCREMENTAL 说明我们从oracle里面是用增量的方式同步数据(会在oracle上面自动创建trigger和额外的表来记录oracle dml的信息),INTERVAL 5 SECONDS 定义每5S从oracle同步一次信息, 尔 PROPAGATE 则定义 TT的dml操作需要同步到 oracle 。。。
分享到:
相关推荐
Timesten是一款高性能的内存型数据库系统,以其超快的数据处理速度闻名。为了确保系统的稳定性和可靠性,Timesten提供了多种高可用性(High Availability, HA)配置方案。本文将详细介绍Timesten如何通过复制技术...
本文将根据提供的数据和测试内容,深入探讨Timesten在不同连接方式下的性能表现,并与Oracle数据库进行对比。 #### 性能测试背景 为了评估Timesten在实际应用中的性能优势,本文采用了一种较为简单的测试方法来模拟...
该指南介绍了如何使用Cache Connect技术将TimesTen与Oracle数据库或其他外部数据源集成,实现快速缓存和数据同步。 8. **Oracle TimesTen Java Developer and Reference Guide**: 针对Java开发者,提供了关于...
通过对Timesten内存型数据库的深入了解及其Data Store的创建流程分析,我们可以看到,Timesten之所以能够提供如此快速的响应时间和极高的性能,不仅在于其采用全内存存储机制,还在于其对数据管理和访问流程进行了...
- **Timesten Integration with Oracle Database**:实现与Oracle传统数据库的无缝连接,便于数据迁移和集成。 ### 六、Oracle Timesten与Oracle数据库的无缝连接 Oracle Timesten与Oracle数据库之间的无缝连接,...
Oracle Timesten 数据库是一款高性能的内存数据库系统,被广泛应用于需要高速数据处理的应用场景中。该数据库提供了对 Java 开发者的支持,并为此发布了一份详细的《Java 开发者与参考指南》(以下简称“手册”)。...
Oracle TimesTen Application-Tier Database Cache 是一款高性能的内存数据库系统,设计用于在应用程序层缓存数据,以提高对Oracle数据库的访问速度。11g Release 2 (11.2.2) 版本是其重要的更新,旨在提供更快的...
对于使用Oracle TimesTen内存数据库的企业来说,如何将TimesTen中的数据有效地同步到Oracle数据库中成为了一个重要的技术挑战。本文将详细介绍如何手动提交TimesTen中的数据到Oracle数据库的方法。 #### 技术准备 ...
此测试旨在验证TimesTen内存数据库与Oracle数据库之间通过CacheConnector进行数据交换的能力,确保数据同步、一致性和性能符合预期标准。 ### 一、创建Oracle用户 在测试开始之前,首先需在Oracle环境中创建一个...
Oracle TimesTen Application-Tier Database Cache 是一款高性能的内存数据库系统,设计用于加速应用程序的数据访问,尤其是在需要极高数据处理速度和低延迟的场景下。11g Release 2 (11.2.2) 版本是Oracle公司发布...
- **同步机制**:TimesTen Cache Connect支持自动同步机制,确保TimesTen内存数据库中的数据与Oracle数据库保持一致。 - **数据更新**:当Oracle数据库中的数据发生变化时,Cache Connect能够自动将这些变化同步到...
Java 访问 TimesTen 数据库涉及一系列步骤,包括安装、配置、建表以及编写 Java 程序进行数据操作。以下是对这些知识点的详细说明: 1. **TimesTen 数据库介绍**: TimesTen 是一款内存数据库系统,由 Oracle 公司...
Oracle TimesTen是一款高性能的内存数据库系统,设计用于实时数据处理和快速查询响应。它被广泛应用于交易处理、实时分析和其他对速度有极高要求的应用场景。以下是对TimesTen安装配置的详细步骤和涉及的知识点: 1...
Oracle缓存连接——Timesten体系结构是一种优化数据库性能的技术,它通过在内存中缓存Oracle数据库的部分或全部数据来加速查询和事务处理。Timesten是Oracle公司提供的一款高性能的内存数据库,专为实时应用设计,能...
Oracle Timesten是一款深入内存的数据库系统,专为性能敏感的应用提供实时数据管理。这款数据库管理系统自1992年在HP实验室作为研究项目诞生以来,经历了多次重大发展,最终在2005年被Oracle公司收购。Timesten以其...
Oracle的TimesTen是一款高性能、全内存的关系型数据库管理系统,它主要设计用于实时应用程序,提供亚毫秒级的数据访问速度。本篇文章将深入探讨TimesTen在开发中的应用,包括其安装步骤、注意事项以及如何通过Java...