




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CacheGroup的基本操作:TimesTen的组成:TT由三部分来组成的,分别是TT数据库服务器、数据复制选件和高速缓存选件。Oracle TimesTen In- Memory Database :是一个优化了的内存数据库。Replication-TimesTen To TimesTen:是TT的一个选件,它支持数据库之间的实时复制,这个数据库之间可以是Oracle的主备机之间,也可以是两个TT之间的数据Rep。但不能是Oracle和TT之间的数据复制。可以使用异步和同步的传输,可以进行冲突解决和冲突检测,以及服务器故障后的自动重新同步。Cache Connect To Oracle:是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中修改的数据会同步到Oracle中去,要注意的是不要在Oracle中手动这个数据,这样会造成Oracle和TT中的数据差异导致同步失败。Autorefresh自动同步AWT形式的Cache用这个值来判断是否需要自动同步。取值为YES和NO。ReadOnly也有该取值但是没有实际的使用。Autorefresh Mode同步方式Incremental增量同步;All全量同步;Autorefresh State自动同步状态AWT形式的Cache没有该取值。ReadOnly形式的Cache用该取值来判断是否要自动同步。取值为ON-开启,OFF-关闭,Paused-暂停Autorefresh Interval:同步的时间间隔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在删除CacheGroup的时候要保证CacheAgent是开启的,这样删除Cache的时候也会同步修改Oracle库中的信息,这样能保证彻底的删除,如果是在CacheAgent关闭的情况下删除的则可能造成TT的同步失败。使用ttstatus命令来查看该CacheAgent是否开启。如果没有开启则使用下面的命令来开启Cache:call ttcachestart;在保证Cache开启的情况下使用下面的命令来删除该CacheGroup。drop cache group GC_Balance_cache;获取AWT形式的CacheGroup的系统信息当我们在使用一些TT的命令时,发现有些命令要输入SubscriberStoreName,ReplicationSchemeOwner等信息的时候,我们应该到哪里获取呢。使用下面的命令可以获取到相关的信息。ttreplicationstatus();该命令有两个参赛,但是在执行的时候可以不输入这连个参赛,则TT会取到相关的默认值。例如:call ttreplicationstatus();其显示的内容的具体含义说明:SubscriberStoreName: _ORACLESubscriberSystem: TYDIC4F5ReplicationSchemeName: _AWTREPSVHEMEReplicationSchemeOwner: AHABMRep的状态:start;待定】获取AWT形式的Cache Group的同步状态获取在Oracle上删除一个CacheGroup的相关信息如果在删除CacheGroup的时候,CacheAgent处于关闭的状态或者是错误的操作删除了CacheGroup,这样可能会导致在TT中该CacheGroup已经删除掉了,但是与该CacheGroup关联的Oracle中的信息并没有得到清除 ,导致整个CacheGroup的同步出现问题或者再给这张Oracle中的表新建CacheGroup的时候失败。因此有的时候我们需要手动的获取这个CacheGroup在Oracle中的相关数据,并在Oracle中手动的去删除这些数据。ttcachesqlget这个函数可以获取安装或者卸载CacheGroup时,在Oracle中与该CacheGroup相关的表数据和触发器的信息。当我们无法同步的时候,可以获取报错的CacheGroup的ttcachesqlget(”FeatureName”,”CacheGroupName”,InstallFlag);这三个参数的具体说明如下:FeatureName:就是指该CacheGroup的类型,即ASYNCHRONOUS_WRITETHROUGH(AWT)和INCREMENTAL_AUTOREFRESH(ReadOnly);CacheGroupName:就是指CacheGroup的名称。InstallFlag:安装还是卸载的标志。0-为卸载的语句;1-为安装的语句。这里要注意的是:当FeatureName填写为AWT的时候,则后面的参赛CacheGroupName只要填写为NULL就可以了,能够指定CacheGroup,只有ReadOnly形式的CacheGroup才能指定的处理。下面来说明下当执行这个命令后显示的信息的含义。例如一:查询AWT形式的CacheGroup的卸载语句: call ttcachesqlget(ASYNCHRONOUS_WRITETHROUGH,NULL,0);执行后显示的内容如下:这里面显示了两个表TT_03_RepPeers和TT_03_RepActiveStandby表,这是在Oracle中的表,这两个表会记录AWT形式的CacheGroup和Oracle中的表的同步信息。只有当这个Oracle的所有的CacheGroup都删除的时候才可以删除这两张表,当我们建CacheGroup的时候,如果没有这张表则需要手动创建这张表的。例如二:查询ReadOnly形式的CacheGroup的卸载语句call ttcachesqlget(INCREMENTAL_AUTOREFRESH,CG_ACCT_BAL_551,0);执行后显示的内容如下:在这里可以看到ReadOnly形式的CacheGroup关联的不仅仅有表还有相应的触发器,这里的触发器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表中的同步记录时,会到AHABM.TT_03_138415_l取相应的同步数据。因此当我们删除了TT中的一个CacheGroup之后,除了要检查TT中该CacheGroup是否存在外,还要检查Oracle中相关数据,以免因为这个CacheGroup的操作影响了整个Oracle的CacheGroup的同步。获取ReadOnly形式的CacheGroup的同步状态在TT中的CacheGroup和Oracle中的表建立了同步之后,我们需要检查这些同步是否是成功的,我们需要查看TT安装目录下info文件夹下的tterrors.log和ttmesg.log日志信息来查看是否有报错。另外我们可以直接使用命令来查看相关CacheGroup的同步信息。注意这里的CacheGroup必须都是ReadOnly形式的,因为AWT形式的CacheGroup是没有自动刷新种操作的。ttcacheautorefreshstatsget(CacheGroupOwener, CacheGroupName);例如: call ttcacheautorefreshstatsget(AHABM,CG_ACCT_BALANCE_551);执行后显示的内容如下:对上面显示的信息的说明如下:ID字段名称说明数据与说明1cgIdCacheGroupID17083042startTimestamp当前的这个时间间隔的开始时间2010-07-0316:06:46.000000用这个可以判断是同步的时间已经自动同步是否在运行3cacheAgentUpTime本次同步开始的时间与cache agent启动的时间的时间间隔2410 用这个字段可以判断同步的时间信息4autorefNumber自动刷新的次数1 同步了一次5autorefDuration这个自动刷新耗费的毫秒数0 由于本次没有数据被刷新因此时间为0,但是同步较多数据时,该字段显示的信息很有用。6autorefNumRows同步的行数07numOracleBytes同步的字节数08autorefNumRootTblRows同步的行数,这里在正常情况下,这两个值应该是相等的09autorefQueryExecDuration在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中的话,那么可能会造成其他CacheGroup同步失败,甚至可能导致长事务的发生。由于示例中的数据并没有记录从Oracle中被同步到TT中,因此很多值都是0,但是在实际的现场这些数据的值都是很大的。在定位同步问题的时候,这些数据很有价值。TimsTen的常用命令名称使用说明ttstatus查看TT的CacheGroup、Replication的状态、启动策略以及当前的连接进程等信息。ttsize获取CacheGroup所占的内存的大小;例:ttsize -tbl tb_bil_acct_balance_551 -rows 1000 ahabm3ahabm3的实例下tb_bil_acct_balance_551表中10000记录占用的内存大小ttsize -tbl tb_bil_acct_balance_551 ahabm3整个tb_bil_acct_balance_551表占的内存大小ttschema获取CacheGroup的建表语句和索引等;将tb_bil_acct_balance_551相关的建CacheGroup语句导出到文件info.sh中。ttschema list tables ahabm3 tb_bil_acct_balance_551 info.sh;ttxactadmin获取事务的相关信息,主要使用该命令来查看锁。例:获取datestore ahabm3上的锁信息ttxactadmin ahabm3解一个长锁的语句:ttxactadmin xactidrollback TransID ahabm3ttbulkcp 将TT中的数据备份导出到文件,或者将文件中的数据导入到TT中。例:tt的数据导出到dump文件中ttbulkcp o ahabm3 tb_bil_acct_balance_551 cginfo.dump将文件中的数据导入到TT中。Ttbulkcp i ahabm3 tb_bil_acct_balance_551 cginfo.dump重新启动TT由于启TT要考虑到同步和数据等问题,因此建议采用如下的操作:1.停TimesTen的同步:call ttrepstop;call ttcachestop;2.卸载数据ttadmin -ramunload ahabm33.停TimesTen:ttdaemonadmin stop4.启动TimesTen:ttdaemonadmin start5.装载数据:ttadmin ramload ahabm36.启动同步call ttrepstart;call ttcachestart;修改CacheGroup的同步模式ALTER CACHE GROUP Owner.GroupName SET AUTOREFRESH MODE INCREMENTAL | FULL其中INCREMENTAL代表的是增量更新,FULL代表的是全量更新。例:alter cache group ABM.CG_SERV_ACCT_999 set autorefresh mode incremental;修改CacheGroup的同步状态ALTER CACHE GROUP OWNER.GroupNameSET AUTOREFRESH STATEON|OFF|PAUSED其中ON是开启、OFF是关闭、PAUSED是挂起例:alter cache group ABM.CG_SERV_ACCT_999 set autorefresh state off;修改CacheGroup的同步时间间隔ALTER CACHE GROUP OWNER.GroupNameSET AUTOREFRESH INTERVAL IntervalValueMINUTES | SECONDS | MILLISECONDS 例:alter cache group ABM.CG_SERV_ACCT_999 set autorefresh interval intervalvalue 100101;ReadOnly形式的CacheGroup同步Oracle的常见异常:目前CacheGroup不能同步的问题大部分都是由于错误的操作造成,因此本文档列举一些常见的错误操作方式并探讨如何去解决这样的问题。1.如果我们删除一个Datestore,而在这之前我们没有删除这个Datestore中的CacheGroup。2.如果手动的修改了和CacheGroup相关的表的结构。3.对和CacheGroup相关的Oracle中的表进行了DDL的操作。等等很多的错误都可以导致同步的失败。Read Only Cache同步Oracle的异常验证自动刷新对象Cache agent会自动验证Oracle对象的有效性,只有当其是有效的时候才能自动同步的。如果TimesTen的Datastore在没有使用drop cache group的情况下就销毁了。如果用户在Oracle中手动的修改了和CacheGroup相关的表了。一个DDL操作在Oracle库中被执行了,而这个表是有CacheGroup和其相关的。解决办法:重建这些CacheGroup。Autorefresh不在指定时间刷新数据。可能引起的原因解决的办法Object ID of the base table has changed.数据库中的表的objectid可能已经被更改了。Reset Autorefresh stateAutorefresh trigger not enabled没有启用自动刷新触发Recover and reset autorefresh Oracle objectsCurrent log sequence number recorded in theTT_version_USER_COUNT table is lessthan to the maximum log sequence numberin the autorefresh log table.在oracle数据中的表TT_version_USER_COUNT的数据的seq要比在同步日志中的还小。Recover and reset autorefresh Oracle objectsThere is no row in theTT_version_USER_COUNT table withusercount 0 for every active incrementallyautorefresh table在TT_version_USER_COUNT没有usercount0的数据为增量更新的cachegroup进行刷新。Recover and reset autorefresh Oracle objectsChange log table is empty.数据变更日志表是空的。Recover and reset autorefresh Oracle objectsUser count is less than 0 or anyTT_version_USER_COUNT log sequenceAnomalies用户数小于0,或者在TT_version_USER_COUNT表中任何的序列出现异常。Recover and reset autorefresh Oracle objectsAutorefresh log table, trigger, or sequenceassociated with a cached table does not exist or is not valid.任何与同步表关联的表数据,触发器,或者是序列不存在。Recover and reset autorefresh Oracle objectsTT_version_USER_COUNT table ismissing.这张表不存在。Recover and reset autorefresh Oracle objectsIf the current log sequence number in theTT_version_USER_COUNT table changes,is different from the bookmark and theassociated cached table is not refreshed bythe next committed autorefresh.如果当前的序列号在TT_version_USER_COUNT表中和bookmark中是不一致的,那么这张表就不会自动同步了。Recover and reset autorefresh Oracle objectsResource problem资源问题重启cach agent2.1.1解决办法1-Reset autorefresh state当CacheGroup的Autorefresh Mode为Incremental的时候,如果不能够自动的进行增量更新的话,查询与这个CacheGroup相关的表是否在Oracle中被Truncate掉了,如果这个表被Truncate了,你必须先使用alter cache group为off,然后再把cache group 设置为ON。2.1.2解决办法2-Recover and reset autorefresh Oracle objects如果你怀疑不能同步是因为Oracle中的对象出现了问题的话,重建这些对象。恢复和重置oracle自动刷新的对象。步骤为:1. 使用alter cache group所有的和这张表相关的cachegroup;ALTER CACHE GROUP cache_group_name SET AUTOREFRESH STATE OFF;2. 关闭cache agent;Call ttcachestop;3. 检查cache group的usercount是否为0;SELECT usercount FROM autorefresh_id.tt_version_user_countWHERE tablename =owner.tablename;4. 如果usercount不为0的话,将usercount置为0;Update tt_version_user_count set usercount = 0 where tablename =owner.tablename;5. 启动Cache agent查看Oracle清理是否成功。如果清理成功则在TimesTen的日志中显示:Cleanup of the Oracle objects completed6. 修改该Oracle对象相关的CacheGroup的Autorefresh state;ALTER CACHE GROUP cache_group_name SET AUTOREFRESH STATE ON;Incremental autorefresh 不能够同步如果incremental autorefresh 没有自动同步首先检查下不能同步的CacheGroup的State是否为ON,然后检查下Cache agent的状态是否为Running。如果以上都是正常的,那么查看日志中的信息:现象解决的办法Oracle server connection errors orwarningsLock timeout errors or warnings on TimesTen锁定超时的错误或者是警告检查是否有DDL事务没有提交,如果有的话就提交这个事务。Insufficient permanent data partition errors on TimesTenTimesTen中的永久内存的大小不够用了增大这个 PermSize.可以使用dssize这个命令查看目前的内存使用情况。PERM_ALLOCATED_SIZE: 14155776 PERM_IN_USE_SIZE: 10852532 PERM_IN_USE_HIGH_WATER: 10862461 TEMP_ALLOCATED_SIZE: 1048576 TEMP_IN_USE_SIZE: 155853 TEMP_IN_USE_HIGH_WATER: 299183Autorefresh Oracle object validationserrors or warnings自动同步的对象错误或者是警告Recover and reset autorefresh Oracle objects(2.1.2中的方法)Cache agent exits unexpectedly.Cache意外退出联系技术支持Core files in main daemon directory联系技术支持Warnings about incrementalautorefresh becoming full refresh警告增量更新变成全量更新Warnings that autorefresh has notfinished for a long time警告自动刷新有很长一段时间都没有完成如果CacheGroup在同样的Autorefresh interval的时间范围内进行同步,那么Oracle会将所有的CacheGroup同步做为一个事务来处理,因此会消耗很长的时间。验证自动刷新对象Cache agent会自动验证Oracle对象的有效性,只有当其是有效的时候才能自动同步的。如果TimesTen的Datastore在没有使用drop cache group的情况下就销毁了。如果用户在Oracle中手动的修改了和CacheGroup相关的表了。一个DDL操作在Oracle库中被执行了,而这个表是有CacheGroup和其相关的。解决办法:重建这些CacheGroup。自动刷新的性能不稳定一般情况下这个通常是因为有大型的自动刷新造成的。使用ttcacheautorefreshstatsget检查自动刷新时间和更新状态是否保持了很长的时间的InProgress。可能导致这种大量更新的原因包括:Incremental autorefresh become full autorefresh;自动刷新时间间隔过大;大量具有相同时间间隔的CacheGroup;Oracle中的表有很大的改动;可以启用自动更新性能跟踪。Incremental类型的同步自动转换成Full类型的同步当缓存管理用户表空间不够了的时候,就可能出现这种转换。判断这种自动转换的方法:1.在TimesTen的日志中会有相关的记录2007-08-08 08:06:51.35 Warn: ORA: 22119: ora-22119-0015-refresh05652: A full autorefresh will be performed for Incremental autorefresh table USER1.READTAB because change logtable T_03_55555_L on Oracle has been truncated.2.使用ttcacheautorefreshstatsget来获取同步的状态,如果为inprogress的时间比平时要长很多的话,则可能转换为全表同步了。什么是缓存管理用户表空间:监控Autorefresh cache group方法一:使用ttcacheautorefreshstatsget命令该命令会返回同步的相关信息,当Cache agent重新启动了或者是Autorefresh state为OFF的时候其返回的所有字段都是0;方法二:使用更改日志表的相关信息TimesTen提供了一个sql的脚本用来去变更日志表中去获取信息。所谓的变更日志其实就是tt_version_objid_L表。方法三:使用日志中有关自动刷新的信息日志一:15:43:33.96【开始时间】 Info: ORA: 5264【Cacheagent ProcessID】: ora-5264-5676【ThreadID】-refresh03918: Starting autorefresh number 43 for interval 10000ms日志二:这个与ttcacheautorefreshstatsget获取的信息是一致的。15:43:51.81 Info: ORA: 5264: ora-5264-5676-refresh04387: Cache agentrefreshed cache group USER1.TESTCACHE: Number - 43, Duration - 13550,NumRows - 108544, NumRootTblRows - 108544, NumOracleBytes - 759808,queryExecDuration - 230, queryFetch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台TEE在工业互联网安全监测与预警中的技术应用
- 电脑维保合同
- 信息技术教育教学总结
- 2025年化肥行业市场前景及投资研究报告:培训课件
- 巡特警网络安全培训课件
- 巡察基本知识课件
- 岩土基础课程选择
- 小龙虾水彩画课件
- 小鸭子嘎嘎叫课件
- 工亡赔偿及赔偿责任承担合同
- GB/T 21063.4-2007政务信息资源目录体系第4部分:政务信息资源分类
- 机修车间岗位廉洁风险点及防范措施表
- 全新版尹定邦设计学概论1课件
- 牙及牙槽外科
- 文物建筑保护修缮专项方案
- 万用表 钳形表 摇表的使用课件
- 63T折弯机使用说明书
- 170位真实有效投资人邮箱
- 工程力学ppt课件(完整版)
- 《区域经济学》讲义(1)课件
- 船模制作教程(课堂PPT)课件(PPT 85页)
评论
0/150
提交评论