Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116178
  • 博文数量: 23
  • 博客积分: 1583
  • 博客等级: 上尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 00:49
文章分类

全部博文(23)

文章存档

2011年(2)

2010年(21)

分类: Oracle

2010-10-16 15:32:59

今天下午由于业务需要将逻辑standby停止应用日志了,晚上恢复应用日志的时候看alter日志,报如下的错,无法应用日志
LOGSTDBY stmt: update "xxx"."table"
  set
    ......................(以下是公司机密就不列出来了。。。哈哈)
   ,
 
LOGSTDBY status: ORA-01403: no data found
LOGSTDBY id: XID 0x000a.01f.0001a38a, hSCN 0x0000.248c53f3, lSCN 0x0000.248c53f3, Thread 1, RBA 0x0376.000d9387.78, txnCscn 0x0000.248c53f4, PID 26100, oracle@IZP-HN-HHY-1 (P004)
此问题是由于两边数据不一致造成的,
根据我们业务的特殊性(我们不是个实时的系统),我就采用了一个最简单的办法,先用dbms.logstdby.skip这个包跳过这个表的日志应用,
然后恢复日志应用,等所有归档日志都应用都应用完之后,然后drop table table_name,然后采用dblink把这个表的创建出来,
create table table_name as selelct * from table_name@xxx
然后采用dbms.logstdby.unskip来恢复这个表的日志应用,当然我能保证此时对此表不会有更新, 由于我这个表不大,而且不是个实时的系统,所以用此办法比较简单,要是这个表很大,而且系统是实时更新的,此办法可能就不合适了,可以参考这个下面的方法来解决

阅读(1862) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~