最近搞一个11i升级的项目,目标如下:
APP-----11.5.10.2(版本保持不变)
DB-------9.2.0.6(升级到11.2.0.3.8)
升级后做RAC和DG
系统改造方案:
1、合并应用节点
2、数据库升级到11G
3、数据库RAC转换
4、配置应用负载均衡
5、搭建Dataguard数据库
本文先介绍一下ebs 11i应用节点合并。源环境如下:两台应用服务器,节点1运行Admin server,Form server,Concurrence server,节点2运行Web server。
参考文档:Sharing the Application Tier File System in Oracle Applications Release 11i (Doc ID 233428.1)
两节点上分别依次运行adadmin进行维护快照信息的操作
->2. Maintain Applications Files menu
-> 5. Maintain snapshot information
-> 2. Update current view snapshot
最初的想法是将节点1作为主节点,把节点2合并过来,因为form文件都在节点1上。但是事与愿违啊,在节点1运行perl adpreclone.pl appsTier merge时报错,错误信息如下:
At least two or more APPL_TOPs of identical platforms should be available to merge.
Could not create the high water mark manifest...
Please re-run the program to create the manifest required for merging APPL_TOPs.
给oracle提了SR,最终也没有解决问题。本文最后将给出Oracle的分析思路。
节点1不行,尝试将节点2作为主节点。庆幸的是节点2运行没有出错。
节点2:
cd $COMMON_TOP/admin/scripts/$CONTEXT_NAME
perl adpreclone.pl appsTier merge
上述命令完成后,在节点1上运行:
cd $COMMON_TOP/admin/scripts/$CONTEXT_NAME
perl adpreclone.pl appltop merge
合并需要如下文件:
节点2的prodappl、prodcomn、prodora,节点1的$COMMON_TOP/clone/appl/$HOSTNAME
本次实施将节点1的$COMMON_TOP/clone/appl/$HOSTNAME复制到节点2$COMMON_TOP/clone/appl下
节点2上操作:
cd $COMMON_TOP/clone/bin
perl adcfgclone.pl appsTier
配置时注意Does the target system have more than one application tier server node (y/n) [y] ?:n
运行完成后应用会被自动启动起来,将应用关闭
使用adadmin维护上述1、2、3项,第4项第六步中处理
->2. Maintain Applications Files menu
-> 6. Check for missing files
根据生成的$APPL_TOP/admin/$TWO_TASK/out/admvrf.lst,确定缺少哪些文件。将缺少的文件拷贝到相应目录下。另拷贝节点1上$CUX_TOP下的forms到节点2对应目录
启动应用
节点1执行perl adpreclone.pl appsTier merge错误
At least two or more APPL_TOPs of identical platforms should be available to merge.
Could not create the high water mark manifest...
Please re-run the program to create the manifest required for merging APPL_TOPs.
oracle的分析思路如下:
运行以下SQL,查看结果:
SQL> select appl_top_id, active_flag, name from ad_appl_tops;
APPL_TOP_ID A NAME
----------- - --------------------------------------------------
194 Y GLOBAL
190 Y *PRESEEDED*
191 Y apperp01
214 Y apperp02
SQL> select distinct appl_top_id from ad_patch_runs;
APPL_TOP_ID
-----------
191
SQL> select distinct apd.platform, apr.appl_top_id from ad_patch_runs apr,
ad_patch_drivers apd where apr.patch_driver_id = apd.patch_driver_id;
PLATFORM APPL_TOP_ID
------------------------------ -----------
GENERIC 191
LINUX 191
oracle说SQL3查询的结果中没有节点2信息,如果在节点1上运行perl adpreclone.pl appsTier merge命令,需要包含节点2信息。让我更新快照,然后再次查看上述SQL,还是一样的结果。不知道怎么回事,考虑到项目进度,就没有跟这个问题死磕了,待日后有时间再好好看看。
另:关于这个错误,Oracle有几个对应的bug,不过本例不适用。