PK重复导致Logical Standby Apply process stop - ORA-00001

本文记录了Oracle 10.2.0.4在Linux AS5.3 64位环境下运行Logical Standby时遇到的问题及解决过程。主要错误为ORA-00001唯一约束冲突,通过停止并重新启动Logical Standby应用,以及对特定表的操作来解决该问题。
Oracle 10.2.0.4 ,  Linux AS5.3 , 64Bit  

Production + Logical Standby  ,  其中Logical Standby 用于报表查询 。  


报错信息如下 :   

Mon Aug  2 09:39:04 2010
RFS LogMiner: Registered logfile [/u01/product/oradata/delll10/arch/1_10903_717422003.arc] to LogMiner session id [1]
Mon Aug  2 09:39:05 2010
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 10903, /u01/product/oradata/delll10/arch/1_10903_717422003.arc
Mon Aug  2 09:39:05 2010
LOGMINER: End mining logfile: /u01/product/oradata/delll10/arch/1_10903_717422003.arc
Mon Aug  2 09:39:08 2010
LOGMINER: Log Auto Delete - deleting: /u01/product/oradata/delll10/arch/1_10902_717422003.arc
Deleted file /u01/product/oradata/delll10/arch/1_10902_717422003.arc
Mon Aug  2 09:49:04 2010
RFS[1]: Successfully opened standby log 4: '/data/delll10/redo01s.log'
Mon Aug  2 09:49:04 2010
RFS LogMiner: Client enabled and ready for notification
Mon Aug  2 09:49:04 2010
RFS LogMiner: Registered logfile [/u01/product/oradata/delll10/arch/1_10904_717422003.arc] to LogMiner session id [1]
Mon Aug  2 09:49:05 2010
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 10904, /u01/product/oradata/delll10/arch/1_10904_717422003.arc
Mon Aug  2 09:49:05 2010
LOGMINER: End mining logfile: /u01/product/oradata/delll10/arch/1_10904_717422003.arc
Mon Aug  2 09:49:06 2010
LOGSTDBY status: ORA-00001: unique constraint (DFMS.WIP_D_SHIP_BIN_DETAIL_PK) violated
LOGSTDBY Apply process P007 pid=35 OS id=10791 stopped
Mon Aug  2 09:49:07 2010
Errors in file /u01/product/admin/delll10/bdump/delll10_lsp0_10803.trc:
ORA-12801: error signaled in parallel query server P007
ORA-00001: unique constraint (DFMS.WIP_D_SHIP_BIN_DETAIL_PK) violated
LOGSTDBY Analyzer process P003 pid=32 OS id=10783 stopped
LOGSTDBY Apply process P005 pid=34 OS id=10787 stopped
LOGSTDBY Apply process P008 pid=36 OS id=10793 stopped
LOGSTDBY Apply process P004 pid=33 OS id=10785 stopped
LOGSTDBY Apply process P006 pid=31 OS id=10789 stopped
Mon Aug  2 09:49:07 2010
LOGSTDBY status: ORA-16222: automatic Logical Standby retry of last action
LOGSTDBY status: ORA-16111: log mining and apply setting up
Mon Aug  2 09:49:07 2010
LOGMINER: Parameters summary for session# = 1
LOGMINER: Number of processes = 3, Transaction Chunk Size = 201
LOGMINER: Memory Size = 30M, Checkpoint interval = 150M
LOGMINER: session# = 1, reader process P000 started with pid=28 OS id=10775
LOGMINER: session# = 1, preparer process P002 started with pid=30 OS id=10779
LOGMINER: session# = 1, builder process P001 started with pid=29 OS id=10777
Mon Aug  2 09:49:07 2010
LOGSTDBY ERROR: krvxgov failed for SYS AUD$ with status 1403
Mon Aug  2 09:49:07 2010
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 10904, /u01/product/oradata/delll10/arch/1_10904_717422003.arc
Mon Aug  2 09:49:07 2010
LOGMINER: Turning ON Log Auto Delete
LOGSTDBY Analyzer process P003 started with pid=32 OS id=10783
Mon Aug  2 09:49:07 2010
LOGMINER: Log Auto Delete - deleting: /u01/product/oradata/delll10/arch/1_10903_717422003.arc
Deleted file /u01/product/oradata/delll10/arch/1_10903_717422003.arc
Mon Aug  2 09:49:07 2010
LOGMINER: End mining logfile: /u01/product/oradata/delll10/arch/1_10904_717422003.arc



出现3次这样的现象, 没有办法,只有忽略这个表先, 然后将这个表初始化 。

SQL> alter database stop logical standby apply;
SQL> exec dbms_logstdby.skip('DML','DFMS','WIP_D_SHIP_BIN_DETAIL');
SQL> alter database start logical standby apply;

SQL> alter database stop logical standby apply;


SQL> exec dbms_logstdby.unskip('DML','DFMS','WIP_D_SHIP_BIN_DETAIL');


SQL> EXECUTE DBMS_LOGSTDBY.INSTANTIATE_TABLE ('DFMS','WIP_D_SHIP_BIN_DETAIL','db_linkto_orcl');
SQL> alter database start logical standby apply;


我们在Logical Standby上这个表中创建了一个trigger , 如果有人工的更新这个table ,那么会触发写log 表, 发现登入这个
logical standby的账号根本没有权限更改这个表, 只有查看权限 。 为什么还会发生PK重复值的情况呢  ?   难道是SQL Apply
使用了并行导致的 ?   但是Oracle也不会同时在一个物件上进行并行apply吧 ?  它应该控制的很好才对 。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-672093/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-672093/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值