1-TimesTen内存库同步异常处理.doc

上传人:s9****2 文档编号:550857365 上传时间:2022-11-17 格式:DOC 页数:12 大小:191.01KB
返回 下载 相关 举报
1-TimesTen内存库同步异常处理.doc_第1页
第1页 / 共12页
1-TimesTen内存库同步异常处理.doc_第2页
第2页 / 共12页
1-TimesTen内存库同步异常处理.doc_第3页
第3页 / 共12页
1-TimesTen内存库同步异常处理.doc_第4页
第4页 / 共12页
1-TimesTen内存库同步异常处理.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《1-TimesTen内存库同步异常处理.doc》由会员分享,可在线阅读,更多相关《1-TimesTen内存库同步异常处理.doc(12页珍藏版)》请在金锄头文库上搜索。

1、CacheGroup的基本操作:TimesTen的组成:TT由三部分来组成的,分别是TT数据库服务器、数据复制选件和高速缓存选件。Oracle TimesTen In- Memory Database :是一个优化了的内存数据库。Replication-TimesTen To TimesTen:是TT的一个选件,它支持数据库之间的实时复制,这个数据库之间可以是Oracle的主备机之间,也可以是两个TT之间的数据Rep。但不能是Oracle和TT之间的数据复制。可以使用异步和同步的传输,可以进行冲突解决和冲突检测,以及服务器故障后的自动重新同步。Cache Connect To Oracle:是

2、Oracle的一个选件,能够将Oracle中的数据加载到TT中。然后实现Oracle和TT的双向更新。在TT中查看CacheGroup的相关信息:cachegroup; /查看所有的cache的信息cachegroup CG_RAT_RES_ACCUMULATOR_556 /查询单个cache的信息。使用该命令输出的相关信息说明:名称意义说明Cache Group TypeCache的类型Read Only :只支持从Oracle到TT的正向同步,不能在TT中手动的修改该Cache中的数据。AsynchronousWritethrough(AWT)只支持TT到Oracle中的同步,即在TT中修

3、改的数据会同步到Oracle中去,要注意的是不要在Oracle中手动这个数据,这样会造成Oracle和TT中的数据差异导致同步失败。Autorefresh自动同步AWT形式的Cache用这个值来判断是否需要自动同步。取值为YES和NO。ReadOnly也有该取值但是没有实际的使用。Autorefresh Mode同步方式Incremental增量同步;All全量同步;Autorefresh State自动同步状态AWT形式的Cache没有该取值。ReadOnly形式的Cache用该取值来判断是否要自动同步。取值为ON-开启,OFF-关闭,Paused-暂停Autorefresh Interva

4、l:同步的时间间隔AWT形式的Cache没有该取值。ReadOnly形式的Cache用该取值来决定同步的频率。取值分钟。手动刷新ReadOnly的CacheGroup的命令:首先要保证该CacheGroup的状态为Paused或OFF。使用查看命令查看该Cache的状态如果是ON则需要手动修改该状态。alter cache group cachegroupname set Autorefresh State paused状态正确则可以执行手动更新:refresh cache group cachegroupname commit every 1000 rows手动删除CacheGroup在删除

5、CacheGroup的时候要保证CacheAgent是开启的,这样删除Cache的时候也会同步修改Oracle库中的信息,这样能保证彻底的删除,如果是在CacheAgent关闭的情况下删除的则可能造成TT的同步失败。使用ttstatus命令来查看该CacheAgent是否开启。如果没有开启则使用下面的命令来开启Cache:call ttcachestart;在保证Cache开启的情况下使用下面的命令来删除该CacheGroup。drop cache group GC_Balance_cache;获取AWT形式的CacheGroup的系统信息当我们在使用一些TT的命令时,发现有些命令要输入Sub

6、scriberStoreName,ReplicationSchemeOwner等信息的时候,我们应该到哪里获取呢。使用下面的命令可以获取到相关的信息。ttreplicationstatus();该命令有两个参赛,但是在执行的时候可以不输入这连个参赛,则TT会取到相关的默认值。例如:call ttreplicationstatus();其显示的内容的具体含义说明:SubscriberStoreName: _ORACLESubscriberSystem: TYDIC4F5ReplicationSchemeName: _AWTREPSVHEMEReplicationSchemeOwner: AHAB

7、MRep的状态:start;待定】获取AWT形式的Cache Group的同步状态获取在Oracle上删除一个CacheGroup的相关信息如果在删除CacheGroup的时候,CacheAgent处于关闭的状态或者是错误的操作删除了CacheGroup,这样可能会导致在TT中该CacheGroup已经删除掉了,但是与该CacheGroup关联的Oracle中的信息并没有得到清除 ,导致整个CacheGroup的同步出现问题或者再给这张Oracle中的表新建CacheGroup的时候失败。因此有的时候我们需要手动的获取这个CacheGroup在Oracle中的相关数据,并在Oracle中手动的

8、去删除这些数据。ttcachesqlget这个函数可以获取安装或者卸载CacheGroup时,在Oracle中与该CacheGroup相关的表数据和触发器的信息。当我们无法同步的时候,可以获取报错的CacheGroup的ttcachesqlget(”FeatureName”,”CacheGroupName”,InstallFlag);这三个参数的具体说明如下:FeatureName:就是指该CacheGroup的类型,即ASYNCHRONOUS_WRITETHROUGH(AWT)和INCREMENTAL_AUTOREFRESH(ReadOnly);CacheGroupName:就是指Cache

9、Group的名称。InstallFlag:安装还是卸载的标志。0-为卸载的语句;1-为安装的语句。这里要注意的是:当FeatureName填写为AWT的时候,则后面的参赛CacheGroupName只要填写为NULL就可以了,能够指定CacheGroup,只有ReadOnly形式的CacheGroup才能指定的处理。下面来说明下当执行这个命令后显示的信息的含义。例如一:查询AWT形式的CacheGroup的卸载语句: call ttcachesqlget(ASYNCHRONOUS_WRITETHROUGH,NULL,0);执行后显示的内容如下:这里面显示了两个表TT_03_RepPeers和T

10、T_03_RepActiveStandby表,这是在Oracle中的表,这两个表会记录AWT形式的CacheGroup和Oracle中的表的同步信息。只有当这个Oracle的所有的CacheGroup都删除的时候才可以删除这两张表,当我们建CacheGroup的时候,如果没有这张表则需要手动创建这张表的。例如二:查询ReadOnly形式的CacheGroup的卸载语句call ttcachesqlget(INCREMENTAL_AUTOREFRESH,CG_ACCT_BAL_551,0);执行后显示的内容如下:在这里可以看到ReadOnly形式的CacheGroup关联的不仅仅有表还有相应的触

11、发器,这里的触发器AHABM.TT_03_138415_t就和Oracle中的表OCS_Ratabelcode_IBA关联上了,而表AHABM.TT_03_138415_l则是主要记录OCS_Ratabelcode_IBA表相关的同步信息。这个同步信息同时还要记录到Oracle中统计用户同步信息的表AHABM.TT_03_user_count中去。其实现就是通过触发器来将更新的记录触发到AHABM.TT_03_138415_l同步表中,然后将这次出发记录到AHABM.TT_03_user_count表中。当CacheAgent程序读取到AHABM.TT_03_user_count表中的同步记录

12、时,会到AHABM.TT_03_138415_l取相应的同步数据。因此当我们删除了TT中的一个CacheGroup之后,除了要检查TT中该CacheGroup是否存在外,还要检查Oracle中相关数据,以免因为这个CacheGroup的操作影响了整个Oracle的CacheGroup的同步。获取ReadOnly形式的CacheGroup的同步状态在TT中的CacheGroup和Oracle中的表建立了同步之后,我们需要检查这些同步是否是成功的,我们需要查看TT安装目录下info文件夹下的tterrors.log和ttmesg.log日志信息来查看是否有报错。另外我们可以直接使用命令来查看相关C

13、acheGroup的同步信息。注意这里的CacheGroup必须都是ReadOnly形式的,因为AWT形式的CacheGroup是没有自动刷新种操作的。ttcacheautorefreshstatsget(CacheGroupOwener, CacheGroupName);例如: call ttcacheautorefreshstatsget(AHABM,CG_ACCT_BALANCE_551);执行后显示的内容如下:对上面显示的信息的说明如下:ID字段名称说明数据与说明1cgIdCacheGroupID17083042startTimestamp当前的这个时间间隔的开始时间2010-07-0

14、316:06:46.000000用这个可以判断是同步的时间已经自动同步是否在运行3cacheAgentUpTime本次同步开始的时间与cache agent启动的时间的时间间隔2410 用这个字段可以判断同步的时间信息4autorefNumber自动刷新的次数1 同步了一次5autorefDuration这个自动刷新耗费的毫秒数0 由于本次没有数据被刷新因此时间为0,但是同步较多数据时,该字段显示的信息很有用。6autorefNumRows同步的行数07numOracleBytes同步的字节数08autorefNumRootTblRows同步的行数,这里在正常情况下,这两个值应该是相等的09a

15、utorefQueryExecDuration在Oracle中执行查询使用的时间010autorefQueryFetchDuration在Oracle中获取记录使用的时间011autorefTtApplyDuration更新TimesTen中的CacheGroup使用的时间012totalNumRows从Cache agent开始一共更新的数据总记录数013totalNumOracleBytes从Cache agent开始一共更新的数据总字节数014totalNumRootTblRows和12的值应该是相等的。015totalDuration从Cache agent开始的总的时间016autorefreshStatus同步的状态Complete完成Inprogress进行中Failed 失败Complete如果一次同步的时间间隔为20分钟,而这20分钟内该CacheGroup的同步状态一直处于Inprogress中的话,那么可能会造成其他Cac

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号