正德厚生,臻于至善

adpatch on EBS R12.1

AutoPatch是一个自动完成多种补丁工作的工具,只能用于Oracle Applications Server、Oracle Development Tools和应用模块产品补丁,不能用于Oracle应用系统数据库层。

1.工作原理
AutoPatch首先验证放在PATCH_TOP下的Patch driver files,对比要进行的补丁文件和原来文件的版本,如果是比原来文件还旧的版本,AutoPatch就不会复制。在替换一个文件前,会自动备份一个副本到子目录中,然后PATCH_TOP复制新文件到产品目录。如果补丁文件是一个C对象模块,AutoPatch会自动Relink相关的Oracle库文件;如果是要更新到特殊的Driver,Checkfile特性会确认唯一性。如果是打一个普通的Driver补丁,会产生Forms、Reports或者Message文件,补丁记录会把信息更新到数据库中。

2.打adpatch的一般过程
00.执行前置健康检查,包含应用、数据库、URL、WF组件、有效用户、无效对象等,并通知用户维护时间开始

无效对象
set lines 200 pages 50000
col object_name format a30
col owner format a20
select owner, object_name, object_type,status from dba_objects where status = 'INVALID';

WF组件
set linesize 120
set pagesize 50
column COMPONENT_NAME format a45
column STARTUP_MODE format a15
column COMPONENT_STATUS format a16
select fsc.COMPONENT_NAME,fsc.STARTUP_MODE,fsc.COMPONENT_STATUS from APPS.FND_CONCURRENT_QUEUES_VL fcq,fnd_svc_components fsc where fsc.concurrent_queue_id = fcq.concurrent_queue_id(+) order by COMPONENT_STATUS,STARTUP_MODE,COMPONENT_NAME;

01.应用系统用户登录到服务器中,例如applmgr
02.执行应用系统的环境变量. 如${ORACLE_BASE}/apps/apps_st/appl/APPS${CONTEXT_FILE}.env
03.确认有足够的空间,APPLTEMP/APPLTMP_REPORT_TMPS至少要有50MB的空间
04.复制补丁文件到PATCH_TOP目录下
05.仔细研读Readme文件的每个细节
06.备份可能被覆盖的文件
07.确认有一个最近备份过的可用的系统全备份
08.确认所有用户都正常退出Oracle电子商务套件
09.关闭应用层所有服务adstpall.sh apps/apps_passwd
10.切换应用系统到维护模式sqlplus apps/apps_passwd @$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE
11.执行AutoPatch(执行Readme文件规定的操作步骤)
12.如果Readme文件中有需要手动执行的步骤,则手动执行
13.仔细查看相关的几个Log、OutPut和Restart文件
14.删掉一些确定不再用的文件
15.如果Readme文件中有特殊要求,需要更新MLS
16.对数据库的一些操作,可能会引起SGA的增加,需要注意
17.切换到非维护模式sqlplus apps/apps_passwd @$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE
18.执行后置健康检查,包含应用、数据库、URL、WF组件、有效用户、无效对象等
19.重启服务器所有进程adsrtal.sh apps/apps_passwd
20.通知用户维护时间结束

注意:把补丁文件放到PATCH_TOP里面,通过设置BatchSize的大小以及Worker的数量来提高性能;安装过程中可能有失败的情况,可能需要restart

3.日志文件
主要有以下两个最重要的日志文件:
◇ adpatch.log:一般放在APPL_TOP/admin/<SID>/log,默认的名字是adpatch.log。建议每次打补丁补丁的时候用对应的补丁编号+语言作为日志名字。
◇ adpatch.lgi: 这是一个信息日志文件,例如包含一些由于问题没有被打上的文件并列出这些文件的名字。系统会随着adpatch.log的名字自动产生adpatch.lgi

另外还有adrelink.log、adlibout.log、adlibin.log、adwork.log

4.补丁历史记录管理
补丁历史信息数据记录了补丁应用的结果,据此可以查询当前系统什么时候应用了哪些补丁及其版本等信息。
◇ 记录了补丁历史信息数据库的信息特性
◇ 可以通过查询数据库中跟补丁历史数据相关的表比如ad_applied_patches等,生成补丁历史数据报表
Oracle应用默认医用此功能。如果想了解生产环境已经安装的补丁列表,可以通过以下SQL查询:
select patch_name from apps.ad_applied_patches;
select b.bug_number, b.language, to_char(b.LAST_UPDATE_DATE, 'YYYY-MM-DD HH24:MI:SS') Last_update from apps.ad_bugs b where bug_number='&a';

5. shared_appltop distributed adpatch
#erpapp1
cd /R12/SEED/patch/20319158
adpatch patchtop=/R12/SEED/patch/20319158 driver=u20319158.drv logfile=u20319158_US.log workers=40 localworkers=20

batch 10000

#erpapp2
adctrl distributed=y
Enter the worker range: 21-40

6.Merge Multi-patch
cd /R12/SEED/patch/task_num
mkdir source
mkdir destination
mv unzip_patches to source
cd ..
admrgpch -s /R12/SEED/patch/task_num/source -d /R12/SEED/patch/task_num/destination -merge_name merge99
赞(0) 打赏
未经允许不得转载:徐万新之路 » adpatch on EBS R12.1
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏