li
  当前位置:主页 > 备份恢复 > 文章内容
li
流故障解决(数据类型冲突)
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:3  
本文章共6516字,分5页,当前第1页,快速翻页:
 

今天在做数据库健康检查的时候发现流配置又出现了问题,查询DBA_APPLY_ERROR视图发现大量的错误,其中错误主要包括两类,一种是ORA-26689: column datatype mismatch in LCR,另一种是ORA-01403: no data found


其中前几个错误都是数据类型冲突,可以基本上推断出,ORA-1403错误是由于ORA-26689错误造成的。

基本错误情况已经确定,下面需要确定造成错误的原因。根据错误信息描述可以推断,是由于LCR中的数据类型和应用库中的数据类型不一致造成的。那么只需要确定最近一天内源数据库的哪些流复制表做了修改。

而最近一段时间只有一张表CAT_ZONE_PRODUCT做过修改,而且修改的是字段的数据类型。

通过对数据库中错误记录的分析得到相同的答案。分析流的LCR所需存储过程和表如下:

SQL> CREATE SEQUENCE SEQ_MY_REC;

Sequence created.

SQL> CREATE TABLE MY_RECORDS (ID NUMBER, STATMENTS CLOB);

Table created.

SQL> CREATE OR REPLACE PROCEDURE MY_PRINT_ANY(P_DATA IN SYS.ANYDATA, P_STR IN OUT VARCHAR2, P_FLAG IN OUT NUMBER) IS
2 V_TN VARCHAR2(61);
3 V_STR VARCHAR2(4000);
4 V_CHR CHAR(2000);
5 V_NUM NUMBER;
6 V_DAT DATE;
7 V_RW RAW(4000);
8 V_RES NUMBER;
9 BEGIN
10 V_TN := P_DATA.GETTYPENAME();
11 P_FLAG := 0;
12 IF V_TN = 'SYS.VARCHAR2' THEN
13 V_RES := P_DATA.GETVARCHAR2(V_STR);
14 IF V_STR IS NOT NULL THEN
15 P_STR := P_STR || '''' || V_STR || '''';
16 ELSE
17 P_STR := P_STR || ' NULL ';
18 P_FLAG := 1;
19 END IF;
20 ELSIF V_TN = 'SYS.CHAR' THEN
21 V_RES := P_DATA.GETCHAR(V_CHR);
22 IF V_CHR IS NOT NULL THEN
23 P_STR := P_STR || '''' || RTRIM(V_CHR) || '''';
24 ELSE
25 P_STR := P_STR || ' NULL ';
26 P_FLAG := 1;
27 END IF;
28 ELSIF V_TN = 'SYS.NUMBER' THEN
29 V_RES := P_DATA.GETNUMBER(V_NUM);
30 IF V_NUM IS NOT NULL THEN
31 P_STR := P_STR || V_NUM;
32 ELSE
33 P_STR := P_STR || ' NULL ';
34 P_FLAG := 1;
35 END IF;
36 ELSIF V_TN = 'SYS.DATE' THEN
37 V_RES := P_DATA.GETDATE(V_DAT);
38 IF V_DAT IS NOT NULL THEN
39 P_STR := P_STR || '''' || V_DAT || '''';
40 ELSE
41 P_STR := P_STR || ' NULL ';
42 P_FLAG := 1;
43 END IF;
44 ELSIF V_TN = 'SYS.VARCHAR' THEN
45 V_RES := P_DATA.GETVARCHAR(V_STR);
46 IF V_STR IS NOT NULL THEN
47 P_STR := P_STR || '''' || V_STR || '''';
48 ELSE
49 P_STR := P_STR || ' NULL ';
50 P_FLAG := 1;
51 END IF;

www.ixdba.net


52 ELSIF V_TN = 'SYS.RAW' THEN
53 V_RES := P_DATA.GETRAW(V_RW);
54 IF V_RW IS NOT NULL THEN
55 P_STR := P_STR || '''' || V_RW || '''';
56 ELSE
57 P_STR := P_STR || ' NULL ';
58 P_FLAG := 1;
59 END IF;
60 ELSE
61 DBMS_OUTPUT.PUT_LINE('TYPENAME IS ' || V_TN);


阅读更多内容1 · 2 · 3 · 4 · 5 · 下一页>>


  上一篇: 流同步机制优化(一)   下一篇: Oracle9i流环境清除(一)
li
 §相关评论  
 热点文章

·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 编辑推荐
·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 相关篇章
·流同步机制优化(一)
·ORA-24170错误
·Oracle9i流环境清除(二)
·Oracle9i流环境清除(三)
·RMAN备份恢复——RAC环境数据库的...
·RMAN备份恢复——RAC环境数据库的...
·oracle检查点系列:checkpoint小...
·RMAN常用操作小结:Oracle9i RMA...
·oracle逻辑备份:关于exp/imp的操...
·oracle备份恢复:当前日志损坏的...
·Oracle9i流环境清除(一)
·流配置异常(ORA-01403)的完整解决...
·流同步机制优化(二)
·流配置异常(ORA-01403)的完整解决...
·流配置异常(ORA-01403)的完整解决...
·流配置异常(ORA-01403)的完整解决...
·流配置异常(ORA-01403)的完整解决...
·ORA-600(kolaslGetLength-1)错误
·srvctl添加数据库信息报错
·利用TAR恢复ORACLE RAC环境的软件...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接