手动cache TimesTen数据库中数据

环境 : TimesTen 安装在一台SUN OS机器上;oracle 数据主库在另一台linux机器上。

数据存放在oracle主库中,TT的数据是以readonly的方式从oracle主库上cache过来的。其中,cache group的参数为:readonly,Autorefresh,incremental,5秒间隔(refresh)。

由于新建cachegroups时主数据库中数据很少,又加上好久没有注意过TimesTen数据的情况,今天突然发现一个怪现象:oracle主数据库大概三万多条数据,而TT数据库中还是当初新建cachegroup时load的那么多数据。随即查看了下cachegroup的状态。如下:

一切正常。按正常状态是oracle主库添加一条数据,commit之后,过几秒TT数据库立即就自动同步了。(以前遇见过一次这样的情况,当时刚接触TimesTen,cachegroup建好后为了测试是否正常,就在主库中加了一条数据,然后在TT那边苦苦等了好久也没见有数据更新,当时找了所有可能出现的情况也没解决。同事几个都纳闷。后来突然发现忘提交commit了~~唉)

既然无法解决,那就只好手动更新了。先把它的Autorefresh state 改为paused(中断)。alter cache group CACHE_SERVICE set Autorefresh state paused;

cachegroup 的状态为:

自动更新状态已关闭。然后手动更新数据。refresh cache group CACHE_SERVICE commit every 100 rows ;发现提示有三万多条数据load到TT中。然后打开cachegroups的状态发现:

Autorefresh state 状态以为on。

 

事后思考:出现奇怪的现象的原因很大可能是the cache agent未启动(或许不是这个原因,只是目前的猜测)。启动the cache agent命令:call ttCacheStart;关闭命令为:

 

call ttCacheStop;
PS:有时间了把官方文档给翻译下,加深理解。现在好多命令和知识还得一遍遍看文档,太 浪费时间了。

 

你可能感兴趣的:(oracle,linux,数据库,cache,service,文档)