1.名词释义
异构数据源: 源和目标库属于不同的数据库产品。此例子中源库为Oracle,目标库为DB2。
PowerCenter: ETL工具,擅长做异构数据源的数据清洗、转换、转载,可以做Node集群。
2.场景
使用Informatica工具的抽取和装载功能实现异构平台数据的迁移。
3.遇到的问题总结
3.1 PowerCenter无法连接抽取库。
1)错误日志与截图
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
特别提醒: 建议将以上内容直接贴在.profile文件中,试过采用文件的形式引入Informatica无法识别。
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*
3.2 数据库迁移过程中事务日志文件写满工作流报错
1)错误日志与截图
2)原因分析
因为事务日志文件写满,导致事务日志无法写入并提交。
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 -- 第二日志文件的个数
另:
Informatica可以通过在Session中给TargetTableName指定带模式名的表名来实现对不同模式的访问。
附图