Informatica:将一个存储库中的文件夹迁移到其他存储库

  1. 在infa元数据库中创建新用户infa_repo1,作为新存储库的容器
    create user repo1 identified by repo1;
    grant connect, resource,create session,dba to repo1;
    
  2. 创建存储库服务repo1,connection string填写ip:port/service name,code page为utf-8,单选项处选择创建新内容(No content exists under specified connection string. Create new content),不要选下面的两项复选。创建完成后将服务修改为normal模式
  3. 创建集成服务ins1,用户名密码填写web console的密码,data movement mode选unicode,在下一个弹出的对话框中设置code page,注意要与系统的字符集相同(如果在windows中就选ms gb2312),创建完成后启动服务
  4. 导出文件夹为xml(在infa服务器上执行)
    cd $INFA_HOME/server/bin
    使用pmrep进入命令行,使用web console用户名密码连接到存储库
    connect -r etl_win -d Domain_etl -n Administrator -x etl23
    导出文件夹
    objectexport -f From_TA -u /from_ta.xml
    
  5. 打开Power Center Workflow Manager,连接到域,创建原文件夹中用到的数据库连接!
  6. 处理xml
    1、在xml中搜索  Partition #1 ,将"Partition #1"替换为"分区编号1" (有时可能要反向操作)
    2、在xml中搜索 PRECISION ="0" ,将类型为字符串或long的地方替换为 PRECISION ="4000" ,类型为clob、text、blob的替换为  PRECISION ="8000" 
    3、数据源名称包含"."时导入也会报错:"正在验证 Source Definition zhym.dlzt...   <错误>:名称中不允许有字符 '.'。** 无法导入 zhym.dlzt",需在xml中将类似"zhym.dlzt"的内容替换为"zhym_dlzt",注意替换前先查看内容位置,替换时带上双引号
    
  7. 打开Power Center Repository Manager,连接到域,repository-import object,在导入向导中新建文件夹,冲突的default_session_config选replace,导入
  8. 检查导入xml的日志,搜索<警告>、<错误>、无效、失败、缺少的字样,确定问题并解决。
  9. 在workflow manager中分配集成服务给任务流即可

问题整理

1、迁移后部分任务insert时报unique constraint 错误,可能是原任务使用了mapping variable来标记增量抽取,通常查看任务source的select语句可以看到使用了变量做筛选,在Designer中可以看到映射变量的定义,映射中可以看到类似SETMAXVARIABLE($$expo_obj,Objid)这样的语句,这是设置变量的语句,查看运行日志的第二行可以看到变量实际运行时使用了什么值,比对迁移前的运行日志,如果不一样则就是这个问题导致的。解决方法:在老ETL上运行一次,确定最新的变量值是多少,在新ETL中修改Designer的映射,设置变量默认值为上述最新的变量值,保存后重新执行一遍即可刷新存储库中保存的映射变量(有可能还需要在workflow manager中的任务上右键-查看永久值-重置值),后续还需要对该表做全同步,防止数据断档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值