stream故障处理汇总

 案例一:流复制两端数据不一致故障处理

流复制报错,查询dba_apply_error有错误出现为no data found
处理方法
先打印出错误具体内容
begin
print_transaction('10.45.14553972');
end;

得到结果:

----- Local Transaction ID: 10.45.14553972
----- Source Database: mydb
----Error in Message: 1
----Error Number: 1403
----Message Text: ORA-01403: no data found
--message: 1
type name: SYS.LCR$_ROW_RECORD
source database: MYDB
owner: YUZH
object: TEST1
is tag null: Y
command_type: UPDATE
。。。。。
PL/SQL procedure successfully completed

以上的只是类似,具体的打印没有保留。。。,但是能从以上信息中得到表及记录,然后根据具体错误更新apply库的相应表的相应数据,把数据更新的和源数据库一致

数据改成一致后既可以删除错误信息
begin
dbms_apply_adm.delete_error(local_transaction_id => ’10.45.14553972‘);
end;

 

 

案例2:
查询应用延时
SELECT APPLY_NAME,
       (DEQUEUE_TIME - DEQUEUED_MESSAGE_CREATE_TIME) * 86400 LATENCY,
       TO_CHAR(DEQUEUED_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATION,
       TO_CHAR(DEQUEUE_TIME, 'HH24:MI:SS MM/DD/YY') LAST_DEQUEUE,
       DEQUEUED_MESSAGE_NUMBER
  FROM V$STREAMS_APPLY_READER;
 
CREATION LAST_DEQUEUE
07:28:13 01/09/12 09:03:21 02/07/12
极其异常,表示这个根本没有在干活
查询采集进程状态
SELECT CAPTURE_NAME,
       STATE,
       TO_CHAR(STATE_CHANGED_TIME, 'HH24:MI:SS MM/DD/YY') STATE_CHANGED,
       TO_CHAR(CAPTURE_MESSAGE_CREATE_TIME, 'HH24:MI:SS MM/DD/YY') CREATE_MESSAGE
  FROM V$STREAMS_CAPTURE;

STATE STATE_CHANGED CREATE_MESSAGE
CAPTURING CHANGES 09:57:27 02/07/12 09:57:27 02/07/12
PAUSED FOR FLOW CONTROL 09:57:19 02/07/12 23:18:20 02/06/12
发现状态变成  PAUSED FOR FLOW CONTROL

查看
 SELECT queue_schema, queue_name, unbrowsed_msgs, overspilled_msgs, memory_usage,
  publisher_state FROM V$BUFFERED_PUBLISHERS;
  得到IN FLOW CONTROL: TOO MANY UNBROWSED MESSAGES
根据此异常查询解决方案
关闭采集进程
关闭传播进程
重启传播进程
重启采集进程
完毕后ok

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭