您的位置:首页 > 数据库 > Oracle

ODI如何通过logminer技术从oracle 9i或者10g中抽取增量数据(三)

2009-09-21 09:43 573 查看
启动designer,创建一个项目,我们这里就叫CDC,如下图所示:





右键点击项目名称,选择import->import knowledge module




进入$ODI_INSTALL/oracledi/impexp/目录,然后选择JKM Oracle10gconsistent(logminer),如果您的数据库是9i或者11g,请选择对应的选项,这里假设源数据库为10g。
导入完成后,您可以打开窗口左手的CDC项目,到knowledge module下查看导入的knowlegemodule是否存在以及其选项。




我们点击左手下面的model标签,创建一个新的model,名字叫odi_cdc,如下图所示:




在reverse标签页中,选择standard(如果选择customized,则需要在项目中导入新的知识模块),context选择dev,然后点击selective reverse标签,如下图:





在该标签页下选择您需要导出元数据的表,最后点击reverse,新的model就生成了。

最后选择journalizing标签页,journalizing mode选择consistent set,knowledge module选择刚才我们导入的JKM,这里有几个选项,一个是asynchronous_mode,该选项如果选no,则变换数据捕捉采用基于trigger的方式(隐形trigger,用户见不到trigger的存在),如果选择yes,则采用stream方式,这里我们选择yes。另外一个参数是auto_configuration,该参数如果选择yes,ODI会自动修改系统参数,以保证stream正常运行,其前提是我们定义的用于连接源数据库的用户具有DBA权限。在生产系统中,不建议打开该参数,具体的配置请参见选项下面的说明。




至此所有的准备工作全部完成,我们下面要做的才是如何配置变化数据捕捉。变化数据步骤可以在model级别上进行,即对一个model中的所有表都进行变化数据捕捉,也可以对model中的一个或者几个表单独配置,这里方便起见,我们在model级上进行配置。
右键点击model窗口的ODI_CDC,选择change data capture->add to CDC,如下图所示:




然后双击model窗口中ODI_CDC,选择journalized tables标签,对变化数据步骤的表排序,对于有主外键关联的表,主表一定放在子表前面。
最后选择start journal,这一步实际上是在源系统中建立变化数据捕捉的过程。





启动后,我们到operator窗口中去监控执行的结果,如果没有什么意外,一般首次执行会成功,如果出现意外,可以双击出错的步骤,查找出错的原因,然后修改即可,大部分错误都落在以下三类里面:
1. 数据库状态不对,如noarchivelog。
2. 用户权限不足
3. 以前安装过变化数据捕捉,环境没有清理干净。
大家如果感兴趣,可以一步一步分析一下start journal到底在数据库里干了哪些事情。
如果以前start journal没有成功,最好先执行drop journal,然后再start journal,这样可以保证源系统是干净的环境。
最后,要订阅该变化数据捕捉,如下图:




用户名一般为SUNOPSIS,当然您也可以自己定义,但前提是必须在interface中将订阅的默认用户名修改成您自己定义的名称。
刷新整个窗口,我们可以看到定义了变化数据捕捉的表在左上角都有一个绿色的小时钟,这代表目前变化数据捕捉工作正常,如果是黄色,则代表有问题,您可以到operator窗口检查到底哪里出了问题。
至此变化数据捕捉的的配置全部完成,剩下的就是如何使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: