Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70019
  • 博文数量: 9
  • 博客积分: 2426
  • 博客等级: 大尉
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 13:55
文章分类

全部博文(9)

文章存档

2010年(3)

2009年(6)

分类: Oracle

2009-07-30 21:53:59

昨天晚上发现stream目标库归档满了, 100%了,登录oracle直接报归档错误,就删除了部分归档文件,
 

ls -rht|head -n 100|xargs rm -rf

 
用pl/sql登录下,没报错了,就没当回事。
 
今天早上一来我一同事就说数据没有更新,登陆终端一看数据全是昨天的,估计就是stream同步的问题了,
迅速打开电脑,远程连接到机房,打开oracle enterprise console manage ,查看capture状态,
 

select status from dba_capture

 
enable状态都正常, 再看apply状态
 

select status from dba_apply

enable状态正常

再看propagation,有报16次错误,看错误内容,是archive err,就在调度里重启propagation,再重启capture

在来看propagation,仍然是错误数16,但入队列数还在增加

再看apply,一直是idle状态,apply数一直没增加,重启apply还是没用,apply数一直是0

仔细考虑没道理啊,入队列数一直再增加,而apply确没有收到数据,stream传哪里去了,肯定还是propagation问题

会不会是queue的问题呢?把这边的capture queue重启,再开capture,再重启apply的queue,开启apply,apply数还是0,那就不是queue的问题了

再回头看propagation,虽然入队列数一直在加,但就是没有传播到apply

无奈,活马当死马医了,只好停下capture,初始化propagation试试了,就算有数据丢失也没办法了,重要的是先让新的数据过去

BEGIN
   DBMS_CAPTURE_ADM.STOP_CAPTURE(CAPTURE_NAME => 'CAPTURE_MAIN');
   DBMS_PROPAGATION_ADM.STOP_PROPAGATION(

                  PROPAGATION_NAME=>'PROPAGATION_MAIN',

                  FORCE=>TRUE);
   DBMS_PROPAGATION_ADM.START_PROPAGATION(

                  PROPAGATION_NAME=>'PROPAGATION_MAIN');
END;

手动开启capture,再看propagation,好了,没错误,看apply也好了,apply数一直在增加,终于正常了

等新的数据都传过去后,再对下两边的数据,没有丢失数据,这次异常处理就到此结束了

PS:

由于归档满了,导致stream不能正常传播数据

删除部分归档后oracle都正常工作了,stream都不会自动恢复

stream 真的很脆弱,经不起折腾啊

阅读(2461) | 评论(1) | 转发(0) |
0

上一篇:老婆真好

下一篇:GREP --color惹的祸

给主人留下些什么吧!~~

chinaunix网友2009-09-15 18:00:52

丢失数据是非常严重的故障啊!!