采用Informatica作异构数据源间数据的迁移

[b]1.名词释义[/b]

异构数据源: 源和目标库属于不同的数据库产品。此例子中源库为Oracle,目标库为DB2。
PowerCenter: ETL工具,擅长做异构数据源的数据清洗、转换、转载,可以做Node集群。

[b]2.场景[/b]
使用Informatica工具的抽取和装载功能实现异构平台数据的迁移。

[b]3.遇到的问题总结[/b]
[b]3.1 PowerCenter无法连接抽取库。[/b]
1)错误日志与截图

[img]http://dl2.iteye.com/upload/attachment/0099/5362/374526ff-ba9b-37a8-a44a-3958317b41bc.jpg[/img]

2)原因分析

以上错误是因为安装Informatica的服务器没有安装Oracle的客户端,PowerCenter无法找到相应的驱动文件。

3)解决思路
a.在安装Informatica服务端的机器上安装Oracle的客户端,修改tnsname.ora文件添加源库的连接
b.修改Informatica安装用户(infa)的.profile文件,添加其对Oracle的支持;

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export PATH=$ORACLE_HOME/bin:$PATH

[b] :oops: 特别提醒: 建议将以上内容直接贴在.profile文件中,试过采用文件的形式引入Informatica无法识别。 [/b]

c.将infa添加至Oracle的管理员组(dba)

usermod -G dba infa

d.修改软连接文件 libclntsh.so.10.1 (可选,当服务器安装的Oracle客户端为11g版本时修改)
进入/u01/app/oracle/product/11.2.0/xe/lib目录,将libclntsh.so.10.1的软连接路径指向libclntsh.so.11.1。
查看命令ls *libclntsh.so*


[b]3.2 数据库迁移过程中事务日志文件写满工作流报错[/b]
1)错误日志与截图

[img]http://dl2.iteye.com/upload/attachment/0099/5369/3127ae37-a066-3d58-ae66-c886f7cd5322.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0099/5371/497c0b66-50aa-3b1b-b0fb-c96fd02350e3.png[/img]

2)原因分析
[img]http://dl2.iteye.com/upload/attachment/0099/5362/374526ff-ba9b-37a8-a44a-3958317b41bc.jpg[/img]

因为事务日志文件写满,导致事务日志无法写入并提交。

3)解决思路
修改目标库DB2的事务日志文件大小和个数。

update db cfg for cwjs using LOGFILSIZ 8192 -- 每个日志文件的大小
update db cfg for cwjs using LOGPRIMARY 10 -- 主日志文件的个数
update db cfg for cwjs using LOGSECOND 20 -- 第二日志文件的个数


[b]
:arrow: 另:
Informatica可以通过在Session中给TargetTableName指定带模式名的表名来实现对不同模式的访问。[/b]
附图


[img]http://dl2.iteye.com/upload/attachment/0099/5387/cae862f8-cee2-3e61-97b9-cc1e4eb54089.png[/img]

你可能感兴趣的:(Informatica)