日期:2014-05-16  浏览次数:20400 次

Informatica 8.5.1升级8.6.1
前段时间一直在忙Informatica 8.5.1升级到8.6.1,做为一个中间人(实际升级不是我们公司直接接的项目,但是应该是有分成)走在客户和支持商之前
被使用了2个方案,下面还是记录下这些经历吧:
首次使用方案:先从8.5.1也就是现在的正式环境中把contents备份出来,我们实施了两种一种是带log的备份,一种是不带log的备份(这里的log无非是些服务log,run log等等如果只是发布完全没有必要去管它,直接skip掉)备份起来时间上有很大的差别,第一个系统数据库中元数据2G,带日志的用了近5分钟,不用日志的只要几十秒。第二个系统数据库中元数据20G多点,备份带日志的用掉了40多分钟,不带日志的,就没有再做了(因为给停机的时间极短)这样我们就把生产环境的contents完成了备份,后面就是实施升级了,具体是这样的:我们直接在新的机器上装好8.6.1,domian,node name,Intergrtion service,Repository service 都对照着原来生产环境上面的一样的来设置,后面我直接把contents restore到现在的8.6.1的环境上面去了。打开连接8.6.1的环境(用在创建的时候的用户Administrator进入的)看看里面的mapping,session,workflow等设计都没有问题的,以为就可以了(前面说过了,我是个中间人,之前没做过升级,对这个方案也没研究过,别人给了方案我自然去依据实施)后来才突然想到一个问题,其它user好像不能用了,看看对应的opb_users表,数据都还在啊,怎么回事?我也不知道,支持商住这边的人他也不明白。一时间大家僵持着,自然这样是不能解决问题的。

后来支持商又给出了第二套方案:
在备份contents的时候还有同时备份出domain的配置信息,在前面的文章中我已经介绍过infasetup这个命令的具体使用方法了,这里不在讲解了,使用BackupDomain这个参数选项,对domain进行备份,这里只是运行个shell脚本,没有必要停机再做什么的
然后在新的机器上还是装是8.5.1,装好infa后,再次使用infasetup命令把安装好的Domain信息Delete掉,在把之前从正式环境备份下来的Domain信息Restore,这时候会把原有的Intergrtion service,Repository service信息也恢复了,当然只是空壳信息
(前面说infasetup备份恢复针对的表,其实就是做表恢复,这些信息就是存放在这些表中的,那么在恢复的时候自然也恢复了),这边支持商告诉我直接删除掉Intergrtion service,Repository service,再自己重新依照生产环境建,Repository service建好后再把contents恢复下,这时候其实就相当于平移了下生产环境,或者说是复制了下生产环境。最后再在这台机器上直接安装8.6.1在安装的时候需选择upgrade 8.6.1这时候安装完成后,升级也做完了。再看原来的users都有了。

事实证明这套方案是可行的,也是官方推荐的,但是具体细节我还是觉得有一点不妥的地方如恢复domain信息后会带上Intergrtion service,Repository service,这里我个人觉得应该没有必要,可以直接在上面改掉数据库连接等一些设置应该就可以了,因为有些潜在配置我们不一定能完全知晓,但是只是改数据库的连接那么一定是没有问题的。后来我仔细问过了为什么要做这个升级后来被告知是Informatica厂商说能保证8.5.1对Oracle 11G完全支持,第一种方案是因为8.5.1和8.6.1的元数据是没有变化的,其实这个地方我觉得是住这边做升级的人自己方案没有写好,曲解了上头的意思,实际上第一中方案应该是这样来实施的:在安装好8.6.1后同样也是恢复domain(因为这样才能保证users能用),但是有个悲剧的地方,infasetup只能正对比备份版本前的版本,具体我没有操作过,在帮助文档上是这样写的。