readonly cg 数据积压后的处理流程

1、oracle cacheuser 下检查相应的日志表,看是否有数据积压。
    SQL> select  count  (*)  from  tt_06_275009_l ;
    SQL> 37364273

2、尝试暂停 cg 的 AUTOREFRESH  
    语法:
    ALTER CACHE GROUP [Owner.]GroupName   SET AUTOREFRESH STATE  {ON | OFF | PAUSED} ;
   例:
   ALTER CACHE GROUP  CACHEUSER.CACHE_EXP_OP_RECORD_TAKING  SET AUTOREFRESH STATE  PAUSED ;
  
   如果提示cg 上有锁,或者其它事物,则可以尝试回滚该事务: 
    ttxactadmin -xact    28.78  tt_oper      (查看是什么事务 )
    ttXactAdmin -xactIdRollback    28.78   tt_oper (回滚事务)
   如果发现回滚之后还会出现新的事务,则可以尝试将TT服务停掉:
   ttdaemonadmin [-force] -stopserver 
   然后再回滚事务。
    注:服务停掉后则新的会话就不能连接进来了,需要进行该操作对应用的影响。

3、手动刷新cg 并加载数据
语法:
REFRESH CACHE GROUP [Owner.]GroupName
[WHERE ConditionalExpression]
COMMIT EVERY n ROWS
[PARALLEL NumThreads]
or
REFRESH CACHE GROUP [Owner.]GroupName
WITH ID (ColumnValueList)

例:
REFRESH CACHE GROUP CACHEUSER.CACHE_EXP_OP_RECORD_TAKING COMMIT EVERY 1000 ROWS PARALLEL 32 ; 
注:可以开适当的并行

注:刚开始我尝试使用 LOAD CACHE GROUP CACHEUSER.CACHE_EXP_OP_RECORD_TAKING COMMIT EVERY 1000 ROWS PARALLEL 32 ; 方法加载数据,系统提示,err 8288   错误。文档上的解决方案就是使用refresh 来代替load 。
【This error is issued during a LOAD CACHE GROUP operation on an AUTOREFRESH cache group. A LOAD
CACHE GROUP operation cannot be performed on a non-empty AUTOREFRESH cache group.
REFRESH cache group can be used instead.】

4、启动服务并改回状态
   ttdaemonadmin [-force] -startserver 
   一定要记得改回cg 的刷新状态
  ALTER CACHE GROUP  CACHEUSER.CACHE_EXP_OP_RECORD_TAKING  SET AUTOREFRESH STATE ON ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值