EBS patching steps in Oracle On Demand(OOD) projects
#check if patch applied & count of invalid objects, create invalids table & replace 7777777 with patch number
select name,user from v$database;
select BUG_NUMBER, LAST_UPDATE_DATE, success_flag from ad_bugs where bug_number=xxx;
create table apps.invalids_13jul12_7777777 as select * from dba_objects where status='INVALID';
select count(*) from dba_objects where status='INVALID';
#copy patch to stage area
cp /tmp/pxxx.zip /dxxx1i/applcsf
#unzip patch zip
unzip pxxx.zip
#check if all prerequisites meet, such as merge or prerequisite patch need
view readme
#switch user
pbrun impdba -u apdxxx1i
#list all available targets on host
/usr/local/git/bin/em-blackout-cmd -s
#list all active blackouts on host, if there's already active blackouts on specific instance, it means other people have already booked this time slot
/usr/local/git/bin/em-blackout-cmd -o list
#blackout APP node
/usr/local/git/bin/em-blackout-cmd -o start -t "DXXX1I" -r 2 -d <2h> -u -c patch_num
#blackout DB node
/usr/local/git/bin/em-blackout-cmd -o start -t full -r 2 -d <2h> -u -c patch_num
#stop all app service($ADMIN_SCRIPT_HOME), make sure no errors except timeout relative issue.
adstpall.sh apps/apps
#wait several minutes till all FNDLIBR process quit
ps -ef | grep FNDLIBR | grep dxxx1i
#enable maintence mode
adadmin
#cd patch directory & patch, logfile name format patchnum_13jul12.log
adpatch
#check log see if any errors, seach error
view patchnum_13jul12.log
/error
##check if patch applied & count of invalid objects, drop invalids table if no more invalids
select name,user from v$database;
select BUG_NUMBER, LAST_UPDATE_DATE, success_flag from ad_bugs where bug_number=xxx;
select object_name,object_type,owner,LAST_DDL_TIME from dba_objects where status='INVALID' and object_name||object_type||owner not in (select object_name||object_type||owner from apps.invalids_13jul12_7777777);
select count(*) from dba_objects where status='INVALID';
drop table apps.invalids_13jul12_7777777;
#disable maintence mode
adadmin
#start all app service($ADMIN_SCRIPT_HOME), make sure no errors except timeout relative issue.
adstrtal.sh apps/apps
#disable blackout(APP&DB)
#list all active blackouts on host
/usr/local/git/bin/em-blackout-cmd -o list
#Stop blackout
/usr/local/git/bin/em-blackout-cmd -o stop -n
#health check
login instance from frontend, switch to Application Administrator responsibility, submit Active User request, check output.