Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » Oracle EBS

adpatch on EBS R12.1

--本文大部分内容引自朱龙春《ERP DBA实践指南》

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

关键词:adpatch ebs 

相关文章

Oracle EBS支持19c容器数据库
EBS跨平台迁移与传输表空间(TTS)
Oracle EBS中文MOS文档列表
GoldenGate在EBS环境中的认证
Oracle EBS R12.1使用11gR2物理备库实现业务连续性-第3节:准备主库以进行备库创建
Oracle EBS R12.1使用11gR2物理备库实现业务连续性-第2节:开始之前
Oracle EBS R12.1使用11gR2物理备库实现业务连续性-第1节:概述
将EBS R12报表载入到Active Data Guard实例
adpatch on EBS R12.1
EBS中用于clone创建数据库的脚本auclondb.sql
Top