分享一个DSG RealSync复制软件故障处理案例,讲讲DSG RealSync实时复制软件在故障情况下的恢复。
案例中要点:
1目标端loader加载报错无法正常恢复的情况,使用工具xfview删除交易文件中的部分交易(支持删除某一条记录/某个分区/某个表的交易,具体看需要,以最小影响处理为原则)
2源端vagentd修复指定的分区(支持表级、分区级、子分区级、记录级修复),使用的是RealSync自身提供初始化的功能
与oracle goldengate对比:
在此类故障情况下,DSG RealSync复制软件的处理要比OGG简单方便很多。当然,相信oracle在OGG以后的版本中,肯定会针对oracle数据库复制进行优化,增强数据初始化功能。
部分说明:
1修复功能内部调用xexp,xexp是从DSG Snapassure/SnapDBP物理备份软件的功能引入的,能够从物理数据文件或者物理备份文件中导出相关表的逻辑记录
2DSG Snapassure/SnapDBP是DSG数据库备份恢复软件产品,特别是对oracle数据库的备份恢复很有特色,支持非归档数据库在线热备,支持物理备份中快速恢复表,支持使用备份文件直接open数据库验证备份有效性,不需要额外的存储。。。
1问题:复制通道报错目标端loader加载报错
目标端loader报错日志摘要log/log.r0 Loader: 26007612.xf1 2013-05-31:19:17:05: (commit) SCN 0x65315.c03a0001, Time 2013-05-31 19:15:08 2013-05-31:19:17:05: 2-I 0-D 1-U 0-DDL(0 ms) (117 s) Loader: 26007613.xf1 OCI Error -1 occurred at File xf1_to_oracle_upd_rid.c:1106. ORA-01410: invalid ROWID OCI Error -1 occurred at File xf1_to_oracle_upd_rid.c:1106. ORA-01410: invalid ROWID : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 22764 transactions rollbacked (oci: 1410) (MARGIN.S_QUERYLOG2 -> MARGIN.S_QUERYLOG2) OCI Error -1 occurred at File xf1_to_oracle_upd_rid.c:1106. ORA-01410: invalid ROWID fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_to_oracle.c:3472, retry it.fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_ to_oracle.c:3472, retry it. |
2部分诊断步骤
2.1查看问题表的ddl时间
源端查询 15:22:04 SQL> select object_id objn,data_object_id objd,owner,object_name,subobject_name,object_type,created,last_ddl_time,status,temporary,secondary 15:22:04 2 from dba_objects 15:22:04 3 where owner='MARGIN' and object_name='S_QUERYLOG2' and data_object_id=341860 15:22:04 4 ; OBJN OBJD OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIME STATUS T S ---------- ---------- --------------- ------------------------------ --------------- ------------------- ----------------- ----------------- ------- - - 341860 341860 MARGIN S_QUERYLOG2 P20130201 TABLE PARTITION 20130130 11:17:56 20130130 11:17:56 VALID N N 15:22:04 SQL> 15:22:04 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130201) a; COUNT(1) ---------- 4606877 15:36:58 SQL> 目标端查询 15:23:12 SQL> select object_id objn,data_object_id objd,owner,object_name,subobject_name,object_type,created,last_ddl_time,status,temporary,secondary 15:23:12 2 from dba_objects 15:23:12 3 where owner='MARGIN' and object_name='S_QUERYLOG2' and subobject_name='P20130201' 15:23:12 4 ; OBJN OBJD OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIME STATUS T S ---------- ---------- --------------- ------------------------------ --------------- ------------------- ----------------- ----------------- ------- - - 228472 239409 MARGIN S_QUERYLOG2 P20130201 TABLE PARTITION 20130130 10:41:34 20130506 10:14:32 VALID N N 15:23:12 SQL> 15:36:52 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130201) a; COUNT(1) ---------- 0 15:36:53 SQL> |
原因分析:目标端相关分区last_ddl_time和源端相差很大,可能目标端有truncate/delete操作,比如业务上删除日志操作,而源端没有这样的操作。
3评估修复方法,分区不大,记录800多万,修复的最佳方法是仅修复问题分区
源端查询分区大小 15:40:46 SQL> select owner,segment_name,partition_name,bytes/1024/1024/1024 size_g 15:41:04 2 from dba_segments 15:41:04 3 where owner='MARGIN' and segment_name='S_QUERYLOG2' and partition_name='P20130201' 15:41:04 4 ; OWNER SEGMENT_NAME PARTITION_NAME SIZE_G --------------- ------------------------------ ------------------------------ ---------- MARGIN S_QUERYLOG2 P20130201 .4140625 15:41:05 SQL> |
4处理方法:
4.1删除问题交易文件 /realsync/qh_raw_test/rmp/real0/26007613.xf1 中问题记录交易
: 0000E3ED.00053764.5F8FFF9D.0012 B5(URP) --H-FL-- cc:1/6 len:15--》问题交易 ../bin/xfview -delrowid 0x00053764 0x5F8FFF9D 0x0012 /realsync/qh_raw_test/rmp/real0/26007613.xf1 依然存在问题,整个分区的交易都存在问题 : 0000E3ED.00053764.5F8FFF9D.0013 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 : 0000E3ED.00053764.5F8FFF9D.0013 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 22764 transactions rollbacked (oci: 1410) (MARGIN.S_QUERYLOG2 -> MARGIN.S_QUERYLOG2) OCI Error -1 occurred at File xf1_to_oracle_upd_rid.c:1106. ORA-01410: invalid ROWID fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_to_oracle.c:3472, retry it.fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_to_oracle.c:3472, retry it. ../bin/xfview -delrowid 0x00053764 0x5F8FFF9D 0x0012 /realsync/qh_raw_test/rmp/real0/26007613.xf1 |
4.2删除问题交易文件 /realsync/qh_raw_test/rmp/real0/26007613.xf1 中问题分区的交易
../bin/xfview -delpart 341860 /realsync/qh_raw_test/rmp/real0/26007613.xf1 依然存在问题,发现存在另一个分区也有问题 : 0000E3ED.00053766.61CFFFC9.0056 B5(URP) --H-FL-- cc:1/6 len:15 : --H-FL-- cc:1 len:17 22764 transactions rollbacked (oci: 1410) (MARGIN.S_QUERYLOG2 -> MARGIN.S_QUERYLOG2) OCI Error -1 occurred at File xf1_to_oracle_upd_rid.c:1106. ORA-01410: invalid ROWID fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_to_oracle.c:3472, retry it.fail to process /realsync/qh_raw_test/rmp/real0/26007613.xf1 xf1_to_oracle.c:3472, retry it. |
5继续诊断新的分区(方法类似步骤2,故障原因相似)
源端查询 15:51:06 SQL> select object_id objn,data_object_id objd,owner,object_name,subobject_name,object_type,created,last_ddl_time,status,temporary,secondary 15:51:07 2 from dba_objects 15:51:07 3 where owner='MARGIN' and object_name='S_QUERYLOG2' and subobject_name='P20130202' 15:51:07 4 ; OBJN OBJD OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIME STATUS T S ---------- ---------- --------------- ------------------------------ --------------- ------------------- ----------------- ----------------- ------- - - 341862 341862 MARGIN S_QUERYLOG2 P20130202 TABLE PARTITION 20130130 11:17:56 20130130 11:17:56 VALID N N 15:51:07 SQL> 15:52:43 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130202) a; COUNT(1) ---------- 6212716 15:52:44 SQL> 目标端查询 15:51:33 SQL> l 1 select object_id objn,data_object_id objd,owner,object_name,subobject_name,object_type,created,last_ddl_time,status,temporary,secondary 2 from dba_objects 3 where owner='MARGIN' and object_name='S_QUERYLOG2' and subobject_name='P20130202' 4* 15:51:33 SQL> / OBJN OBJD OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIM STATUS T S ---------- ---------- ---------- ------------------------------ --------------- ------------------- ------------ ------------ ------- - - 228473 239410 MARGIN S_QUERYLOG2 P20130202 TABLE PARTITION 30-JAN-13 06-MAY-13 VALID N N 15:51:34 SQL> 15:51:34 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130202) a; COUNT(1) ---------- 0 15:52:45 SQL> |
6处理方法:
6.1删除问题交易文件 /realsync/qh_raw_test/rmp/real0/26007613.xf1 中问题分区的交易
../bin/xfview -delpart 341862 /realsync/qh_raw_test/rmp/real0/26007613.xf1
6.2复制恢复到实时状态后修复
7修复MARGIN.S_QUERYLOG2.P20130201 和 P20130202 两个分区
7.1在源端修改配置文件(mapping.ini中添加full_part部分,full_where部分也需要注意)
[DB01:/realsync/qh_raw_test/config]$cat mapping.ini MARGIN MARGIN real_where= u.name='MARGIN' and o.name in ('S_QUERYLOG2','S_QUERYUSER2') full_where= #u.name='MARGIN' and o.name in ('S_QUERYLOG2','S_QUERYUSER2') u.name='MARGIN' and o.name in ('S_QUERYLOG2') full_part= MARGIN.S_QUERYLOG2.P20130201,MARGIN.S_QUERYLOG2.P20130202 [DB01:/realsync/qh_raw_test/config]$ |
7.2在源端发起修复
[DB01:/realsync/qh_raw_test/config]$../bin/vman CHECK_MEMLEAK is turned off VMAN> @../bin/vm 2013/06/04 10:27:19 > connect :55000 Connected. 2013/06/04 10:27:19 > user root/dbps Authenticated 2013/06/04 10:27:20 > set ds 1 -itvl 3 -state start 2013/06/04 10:27:20 > set dt 1.1 -tgt db 2 -xf1 y -state start 2013/06/04 10:27:20 > set dm 1.1 -cfg -sync ftcqiM1 [DB01:/realsync/qh_raw_test/config]$ |
7.3修复日志摘要,源端导出耗时26s,目标端导入耗时7min
1)源端vagentd的日志log/log.vagentd XEXP-BUF: count=5 each-len=13631533--》xexp是从DSG Snapassure/SnapDBP物理备份软件的功能引入的,能够从物理数据文件或者物理备份文件中导出相关表的逻辑记录 。。。。。。 P20130101 0 rows 0.00% used P20130102 0 rows 0.00% used P20130201 4606877 rows 0.00% used P20130202 6212716 rows 0.00% used --》仅导出了2个分区的记录 P20130301 0 rows 0.00% used P20130302 0 rows 0.00% used P20130401 0 rows 0.00% used P20130402 0 rows 0.00% used P20130501 0 rows 0.00% used P20130502 0 rows 0.00% used P20130601 0 rows 0.00% used P20130602 0 rows 0.00% used ========== Summary of DBPS Express Export ============ Tables 1 (3) Rows 10819593 Extents 266 Zip Level 1 To Read 800.00MB Read 982.35MB XF1 918.90MB XF1 Zipped 172.23MB (81.26%) Elapsed 26.18(s) ====================================================== Locking DC ... DCSave ... Adding Transactions ... Exporting Finished... grp# size seq# bsz nab flg dup TH Next-SCN 2013/06/04 10:30:34 。。。 2)目标端修复过程中loader加载的日志 [WEBDB01:/realsync/qh_raw_test/log]$tail -30f log.s0 。。。。。。 stmt: alter session set skip_unusable_indexes =TRUE Loader: 2734.xf1 Performance report is disabled Detail Performance report is disabled 2013-06-04:10:27:26: 0-I 0-D 0-U 0-DDL(0 ms) (0 s) Loader: 2735.xf1 2013-06-04:10:27:26: 0-I 0-D 0-U 0-DDL(0 ms) (0 s) Loader: 2736.xf1 to exec truncate 2013-06-04:10:30:19: ALTER TABLE "MARGIN"."S_QUERYLOG2" TRUNCATE PARTITION "P20130201" ... 2013-06-04:10:30:19: ALTER TABLE "MARGIN"."S_QUERYLOG2" TRUNCATE PARTITION "P20130202" ... [Truncate OK] 2013-06-04:10:30:20: 0-I 0-D 0-U 2-DDL(0 ms) (1 s) Loader: 2737.xf1 2013-06-04:10:30:21: (commit) SCN 0x0000.00000000, Time 2013-06-04 10:30:18 2013-06-04:10:30:21: 73471-I 0-D 0-U 0-DDL(1920 ms) (3 s) 2013-06-04:10:30:21: 0-I 0-D 0-U 0-DDL(1970 ms) (1 s) 。。。。。 Loader: 2890.xf1 2013-06-04:10:34:34: (commit) SCN 0x0000.00000000, Time 2013-06-04 10:30:33 2013-06-04:10:34:34: 46852-I 0-D 0-U 0-DDL(1050 ms) (241 s) 2013-06-04:10:34:34: 0-I 0-D 0-U 0-DDL(1060 ms) (1 s) Loader: 2891.xf1 2013-06-04:10:34:34: 0-I 0-D 0-U 0-DDL(0 ms) (0 s) Loader: 2892.xf1 2013-06-04:10:34:34: 0-I 0-D 0-U 0-DDL(0 ms) (0 s) Loader: 2893.xf1 2013-06-04:10:34:34: 0-I 0-D 0-U 0-DDL(0 ms) (0 s) to compile drop constraint compile num=3 compile try 1 ... compile "MARGIN"."DELETE_LOG" finish compile try 2 ... compile try 3 ... compile try 4 ... all compile finish |
8对比数据,验证修复
源端查询 12:03:52 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130201) a; COUNT(1) ---------- 4606877 12:03:56 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130202) a; COUNT(1) ---------- 6212716 12:04:19 SQL> 目标端查询 12:03:33 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130201) a; COUNT(1) ---------- 4606877 12:03:37 SQL> select /*+parallel(a,10) */ count(1) from MARGIN.S_QUERYLOG2 partition (P20130202) a; COUNT(1) ---------- 6212716 12:04:16 SQL> |
修复完成,故障处理完毕。