配置好stream后,在使用中,传输DB_HQUEUE  表时,提示错误,这个表本来应该是不传输的。
处理方式,在捕获进程的否定规则里增加这个表的信息,以下是

1.停止源端的捕获进程。
SQL> exec dbms_capture_adm.stop_capture('LIRHZ_CAPTURE');
 
PL/SQL procedure successfully completed
2.修改否定规则,增加下面红色字体部分.
begin
   dbms_rule_adm.alter_rule(
   rule_name => 'strmadmin.cap_negative_dml',
   condition => ':dml.get_object_owner()=''HZ'' AND ' ||
   ' :dml.is_null_tag() =''Y'' AND '||
   ' :dml.get_source_database_name()= ''LIRHZ'' and '  ||
   ' (:dml.get_object_name() = ''DB_LOGS'' and :dml.get_object_name() = ''DB_SYSS'' and '  ||
   ' :dml.get_object_name() = ''PLAN_TABLE'' and :dml.get_object_name() = ''DB_HQUEUE'' and '  ||
   ' :dml.get_object_name() = ''DBMS_TABCOMP_TEMP_UNCMP'' and :dml.get_object_name() = ''DBMS_TABCOMP_TEMP_CMP''' ||' ) '
   );
   end;
创建否定ddl规则
begin
   dbms_rule_adm.alter_rule(
   rule_name => 'strmadmin.cap_negative_ddl',
   condition => '(:ddl.get_object_owner()=''HZ'' OR ' ||
   ' :ddl.get_base_table_owner() =''HZ'') AND ' ||
   ' :ddl.is_null_tag() =''Y'' AND '||
   ' :ddl.get_source_database_name()= ''LIRHZ'' and ' ||
   ' (:dml.get_object_name() = ''DB_LOGS'' and :dml.get_object_name() = ''DB_SYSS'' and '  ||
   ' :dml.get_object_name() = ''PLAN_TABLE'' and :dml.get_object_name() = ''DB_HQUEUE'' and '  ||
   ' :dml.get_object_name() = ''DBMS_TABCOMP_TEMP_UNCMP'' and :dml.get_object_name() = ''DBMS_TABCOMP_TEMP_CMP''' ||' ) '
   );
   end;

3.启动捕获进程。
SQL> exec dbms_capture_adm.start_capture('LIRHZ_CAPTURE');
 
PL/SQL procedure successfully completed

4.启动应用进程。
SQL> exec dbms_apply_adm.start_apply('APPLY_STANDY');
 
PL/SQL procedure successfully completed

5.观察日志,应用进程启动一会就自动关闭了,并有以下错误信息。
Mon Dec 06 16:45:26 2010
Streams APPLY AP01 for APPLY_STANDY started with pid=118, OS id=24570
Mon Dec 06 16:45:26 2010
Streams Apply Reader for APPLY_STANDY started AS01 with pid=177 OS id=24572
Mon Dec 06 16:45:26 2010
Streams Apply Server for APPLY_STANDY started AS03 with pid=208 OS id=24576
Mon Dec 06 16:45:26 2010
Mon Dec 06 16:45:26 2010
Streams Apply Server for APPLY_STANDY started AS02 with pid=207 OS id=24574Streams Apply Server for APPLY_STANDY started AS04 with pid=209 OS id=24578
Mon Dec 06 16:45:26 2010
Streams Apply Server for APPLY_STANDY started AS05 with pid=210 OS id=24580
Mon Dec 06 16:45:29 2010
Propagation Receiver (CCA) for Streams Capture LIRHZ_CAPTURE and Apply APPLY_STANDY with pid=192, OS id=22136, objnum=117103 started.
Mon Dec 06 16:45:32 2010
Propagation Receiver (CCA) for Streams Capture LIRHZ_CAPTURE and Apply APPLY_STANDY with pid=192, OS id=24584, objnum=117103 started.
Mon Dec 06 16:45:42 2010
knllgobjinfo: MISSING Streams multi-version data dictionary!!!
knlldmm: gdbnm=LIRHZ
knlldmm: objn=74872
knlldmm: objv=1
knlldmm: scn=2678668695
See trace file for more information
knllgobjinfo: MISSING Streams multi-version data dictionary!!!
knlldmm: gdbnm=LIRHZ
knlldmm: objn=74917
knlldmm: objv=1
knlldmm: scn=2678668804
Mon Dec 06 16:45:44 2010
Streams Apply Server AS02 for APPLY_STANDY with pid=207 OS id=24574 stopped
Mon Dec 06 16:45:44 2010
Streams Apply Server AS04 for APPLY_STANDY with pid=209 OS id=24578 stopped
Mon Dec 06 16:45:44 2010
Streams Apply Reader AS01 for APPLY_STANDY with pid=177 OS id=24572 stopped
Mon Dec 06 16:45:44 2010
Streams Apply Server AS05 for APPLY_STANDY with pid=210 OS id=24580 stopped
Mon Dec 06 16:45:44 2010
Streams Apply Server AS03 for APPLY_STANDY with pid=208 OS id=24576 stopped
Mon Dec 06 16:45:47 2010

以前在测试中也遇到过这样的问题,一直也没有搞懂,这次居然后出现了,
开始处理:
1.先查询objn号对应的表是否存在:
SQL> col object_name format a20;
SQL> select object_name,object_id,owner from dba_objects where object_id in (74872,74917);
 
OBJECT_NAME           OBJECT_ID OWNER
-------------------- ---------- ------------------------------
DB_LOGS                 74917 HZ
DB_SYSS                 74872 HZ
 
居然提示我原先规则里已经设置好的2个表错误。不知道什么原因,网上查找资料后,可能是要做表的实例化操作。 

b. At the source site, repopulate the streams data dictionary for the object or granularity required using any of the following procedures.
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION
from:http://www.itpub.net/thread-1200526-1-1.html#

可能是加了规则后,需要要重新做表的实例化呢,我的流配置是schema级的传输啊,反正几个表都是不传的,先做下也无关紧要,按照提示进行如下操作。
2.对表进行实例化操作
源端进行下面2个表的实例化准备。
begin
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(
table_name => 'HZ.DB_LOGS',
supplemental_logging => 'keys');
end;
begin
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(
table_name => 'HZ.DB_SYSS',
supplemental_logging => 'keys');
end;

查询scn号
SQL> select dbms_flashback.get_system_change_number from dual;
 
GET_SYSTEM_CHANGE_NUMBER
------------------------
              2678798307
目标端表这2个表的实例化应用
SQL> exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(source_object_name => 'HZ.DB_HOSPRESULTRETURNQUEUE',source_database_name =>'lirhz',instantiation_scn => 2678830197 );
 
PL/SQL procedure successfully completed
SQL> exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(source_object_name => 'HZ.DB_HOSPRESULTRETURNQUEUE',source_database_name =>'lirhz',instantiation_scn => 2678830197 );
 
PL/SQL procedure successfully completed
3.再次启动捕获和应用进程,发现过一会应用进程又停止了,还是报一样的错误。

4.尝试对DB_HQUEUE 表再进行实例化操作。
准备实例化
begin
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(
table_name => 'HZ.DB_HQUEUE',
supplemental_logging => 'keys');
end;

查看scn
SQL> select dbms_flashback.get_system_change_number from dual;
 
GET_SYSTEM_CHANGE_NUMBER
------------------------
              2678823646

目标库应用scn.
SQL> exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(source_object_name => 'HZ.DB_HQUEUE',source_database_name =>'lirhz',instantiation_scn => 2678823646 );
 
PL/SQL procedure successfully completed
5.再次启动捕获和应用进程,过一会就开始能看到日志开始应用了。呵呵,歪打正着!

转载于:https://blog.51cto.com/gaoshan/443826

knllgobjinfo: MISSING Streams multi-version data dictionary!!! 的一次处理 (二)相关推荐

  1. Social Recommendation with Missing Not at Random Data(ICDM2018)--中文翻译(二)

    Social Recommendation with Missing Not at Random Data(ICDM2018)--中文翻译(二) 第四部分 模型和算法 一.问题定义 二.基于MNAR假 ...

  2. MySQL 深潜 - 一文详解 MySQL Data Dictionary

    简介: 在 MySQL 8.0 之前,Server 层和存储引擎(比如 InnoDB)会各自保留一份元数据(schema name, table definition 等),不仅在信息存储上有着重复冗 ...

  3. Mysql : InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!

    Mysql报错,是因为自己之前装的高版本然后再装低版本导致的, [FATAL] InnoDB: Table flags are 0 in the data dictionary but the fla ...

  4. /common/nlp/data/dictionary/CoreNatureDictionary.mini.txt加载失败

    核心词典/common/nlp/data/dictionary/CoreNatureDictionary.mini.txt加载失败 原因:配置文件中的hdfs路径未被识别 root=hdfs://my ...

  5. Docker安装mysql 报错 InnoDB: Table flags are 0 in the data dictionary but the flags in file

    docker 安装mysql5.7 docker run -d -p 3306:3306 -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/da ...

  6. 在IDEA中集成Jenkins插件 解决Missing or bad crumb data异常

    在IDEA中集成Jenkins插件 由于项目组中使用jenkins作为持续集成工具,之前一直用web方式进行访问,感觉效率比较低下,所以想通过安装官方插件,直接在IDE上直接出触发Jenkins服务器 ...

  7. postman中springboot上传文件Missing initial multi part boundary

    如果在postman中设置了Context-type为multipart/form-data以及file设置,如下图: 而我的调用的上传方法仅仅只是用了@RequestMapping("/x ...

  8. data dictionary(数据字典)

    一.数据字典简介 有关数据字典介绍详见官网Concepts-part II Oracle Database Architecture-7 The Data Dictionary(10g). 归纳总结有 ...

  9. Social Recommendation with Missing Not at Random Data (ICDM 2018)中文翻译(一)

    Social Recommendation with Missing Not at Random Data(ICDM2018)--中文翻译(一) 摘要: 第一部分 介绍: 第二部分 相关工作: 第三部 ...

最新文章

  1. Meta祭出元宇宙「阿拉丁神灯」!LeCun称世界模型将带来像人一样的AI
  2. 推公式hdu2298
  3. 对MySQL 进行深入学习是非常必要的
  4. java 文件封装_Java 封装
  5. java 数组构造_java – 从数组构造(非二进制)树
  6. 微服务难点剖析 | 服务拆的挺爽,问题是日志该怎么串联起来呢?
  7. 网络编程之 创建多个子进程,避免踩坑。
  8. 在 Mac 中 使用 Safari 常出现「此网页正使用大量内存...」如何修复?
  9. 几款不错的屏幕键盘软件~
  10. 《机器学习实战》总结篇
  11. 百度富文本编辑器的宽度自适应
  12. 15年全国电赛风力摆控制系统(一点也不难)
  13. xd使用技巧_Adobe XD —你不知道的30条提示和技巧!
  14. IP地址及其分类(A、B、C类)
  15. python peewee 批量插入
  16. Erlang-VM节点启动名冲突问题
  17. MySQL DBA技术难度低为什么工资比Oracle高?
  18. 唐骏离职新华都当老板
  19. 小微企业名录的作用以及查询方法
  20. 前端知识及项目中常用的的概念和个人理解整理分享-1(其它前端知识可来我的博客主页查看o,有高见的时候,可以密我哦)

热门文章

  1. java qt jni_java JNI 实现原理 (二) Linux 下如何 load JNILibrary
  2. mr图像翻转的原因_CSS图片翻转例子
  3. C语言经典例24-分数累加和
  4. C语言-链表的创建头插法和尾插法(有无头节点)
  5. 【Android 异步操作】Handler 机制 ( Handler 常用用法 | HandlerThread 简介 | HandlerThread 源码注释分析 )
  6. 使对象具有ES6中Iterator接口的实现方法
  7. 鼠标事件在浏览器的差异
  8. Erdaicms旅游网站系统微信和手机端分销系统正式上线发布啦
  9. Linux-CentOS 重置root密码
  10. 阅读微信支付demo收获