Tuesday, June 30, 2020
Thursday, January 23, 2020
How to apply EBS application patch in R12.1
ADPATCH in Oracle E-Business Suite
$ which adadmin
$ which adpatch
Unzip the patch. And set the permission
$ unzip p30456216_R12.XDO.B_R12_GENERIC.zip
$ chmod 755 30456216
root@r12 ~]# su - oracle
$ sqlplus apps/*****
SQL> select * from AD_BUGS where bug_number='30456216';
no rows selected
SQL> select count(*) from dba_objects where status='INVALID';
SQL> select owner,object_name,object_type,status from dba_objects where status='INVALID';
Run the environment variable from application tier
$ cd /opt/oracle/VIS/apps/apps_st/appl/ or $APPL_TOP
$. ./APPSVIS_r12.en
Stop the application with adstpall.sh utility. Database and Listener should be up
./adstpall.sh
Enable the Maintenance Mode
/opt/oracle/VIS/apps/apps_st/appl/ad/12.0.0/bin
$./adadmin
Filename [admin.log]: patchnumber.log
provide system and apps password
Select an option 5 and press enter key to Change Maintenance Mode..
Then, Select an option 1 and press enter to Enable Maintenance Mode.
Press enter to continue.
Select option 3 and press Enter key to return to main menu .
Press enter to Exit AD Administration
Run autopatch (adpatch) from the patch directory by entering the following command:
$pwd
/opt/oracle/VIS/apps/apps_st/appl/ad/12.0.0/bin
$ ls -l adpatch
-rwxrwxrwx 1 oracle oinstall 9380 Mar 31 2009 adpatch
$./adpatch
After applying successfully patch disable the Maintenance mode as below.
Disabling options and choose as 5->2->3->6.
After disabling the Maintenance Mode, we need to start the services.
$ps –ef|grep applmgr |wc –l
Or
$ps –ef|grep FNDLIBR
Or
$ps –ef|grep FND*
SQL>Select count(*) from dba_objects where status='INVALID';
SQL> select owner,OBJECT_NAME,OBJECT_TYPE,STATUS from dba_objects where STATUS='INVALID';
If there is any new invalid objects then need to recompile.
Thursday, January 9, 2020
Could not execute auto check for display colors
Could not execute auto check for display colors using command /
Check if the DISPLAY variable is set
Error:
Checking Temp space: must be greater than 500 MB. Actual 74963 MB Passed
Checking swap space: must be greater than 150 MB. Actual 23830 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Sol:
1) log into console as root
2) DISPLAY=:0.0
3) export DISPLAY
4) xhost +
5) su - oracle
6) DISPLAY=:0.0
7) export DISPLAY
2) DISPLAY=:0.0
3) export DISPLAY
4) xhost +
5) su - oracle
6) DISPLAY=:0.0
7) export DISPLAY
Now try to run the installer in VNC, it will work
Monday, December 16, 2019
Restore Database from RMAN backups
Restore the database from production backup
Start the database nomount stage
sqlplus / as sysdba
SQL> startup nomount pfile=’<location>/initPROD.ora’;
rman target /
RMAN>restore controlfile from '/u02/prod_backup/prod_Control_Copy.ctl';
RMAN>alter database mount;
RMAN>catalog start with '/u02/prod_backup/';
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK clear; - This will clear the disk type from production RMAN configurations
RMAN>restore database preview;
Restoration Script:
run {
set newname for database to '/u01/oracle/test/db/data/%U';
set until scn 8854465393;
restore database;
SWITCH DATAFILE ALL;
recover database;
}
Rename the redo log files:
alter database rename file '/u01/oracle/prod/db/data/log05.dbf' to '/u01/oracle/test/db/data/log01.log';
alter database rename file '/u01/oracle/prod/db/data/log06.dbf' to '/u01/oracle/test/db/data/log02.log';
alter database rename file '/u01/oracle/prod/db/data/log07.dbf' to '/u01/oracle/test/db/data/log03.log';
alter database rename file '/u01/oracle/prod/db/data/log08.dbf' to '/u01/oracle/test/db/data/log04.log';
alter database clear unarchived logfile group 8;
Rename the tempfile:
alter database rename file '/u01/oracle/prod/db/data/temp01.dbf' to '/u01/oracle/test/db/data/temp01.dbf';
Create pfile
Change the database name to TEST
$nid target=sys/<sys_password> dbname=TEST
Rename the pfile to initTEST.ora
Change the database name to TEST
Start the database in nomount and create spfile.
Bounce the database
Start the database nomount stage
sqlplus / as sysdba
SQL> startup nomount pfile=’<location>/initPROD.ora’;
rman target /
RMAN>restore controlfile from '/u02/prod_backup/prod_Control_Copy.ctl';
RMAN>alter database mount;
RMAN>catalog start with '/u02/prod_backup/';
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK clear; - This will clear the disk type from production RMAN configurations
RMAN>restore database preview;
Restoration Script:
run {
set newname for database to '/u01/oracle/test/db/data/%U';
set until scn 8854465393;
restore database;
SWITCH DATAFILE ALL;
recover database;
}
Rename the redo log files:
alter database rename file '/u01/oracle/prod/db/data/log05.dbf' to '/u01/oracle/test/db/data/log01.log';
alter database rename file '/u01/oracle/prod/db/data/log06.dbf' to '/u01/oracle/test/db/data/log02.log';
alter database rename file '/u01/oracle/prod/db/data/log07.dbf' to '/u01/oracle/test/db/data/log03.log';
alter database rename file '/u01/oracle/prod/db/data/log08.dbf' to '/u01/oracle/test/db/data/log04.log';
alter database clear unarchived logfile group 8;
Rename the tempfile:
alter database rename file '/u01/oracle/prod/db/data/temp01.dbf' to '/u01/oracle/test/db/data/temp01.dbf';
Create pfile
Change the database name to TEST
$nid target=sys/<sys_password> dbname=TEST
Rename the pfile to initTEST.ora
Change the database name to TEST
Start the database in nomount and create spfile.
Bounce the database
Saturday, December 14, 2019
Daily Used Queries
To delete
old / unused files:
find /u01/inst/apps/QAT/logs/appl/conc/out -type f
-mtime +30 -exec rm -f {} \; --To delete files older than 30 days
find /path/to/ -type f -mtime +7 -name '*.gz' -execdir rm --
'{}' \; --To delete gzip files older than 7days
find . -mtime +10 -print -exec gzip {} \; --for gzip files --To gzip files older than 10days
find . -mtime +10 | xargs tar -czvPf trace_log_$(date +%F).tar.gz --To tar files older than 10days
find . -type f -mtime +30 -exec rm -f {} \; --To remove files older than 30days
delete noprompt archivelog until time 'SYSDATE-15'; -- To remove archives from rman older than 15days
To check Inactive / Blocking sessions
select sid,serial#,username,status,schemaname,logon_time
from v$session where status='INACTIVE' and username is not null;
select distinct vlock.id1,decode(vlock.request,0,'Holder','Waiter') Type,vses.client_identifier,vses.sid,vses.serial#,vses.inst_id,vses.status,round(vses.last_call_et/60) mins,vses.event,vses.module,vses.sql_id,vses.machine,vses.row_wait_obj#
from gv$session vses, gv$lock vlock
where vlock.sid=vses.sid and vlock.inst_id=vses.inst_id
and (vlock.id1,vlock.id2,vlock.type) in (select id1, id2, type from gv$lock where request>0)
and vlock.ctime/60 > 5
order by id1 ;
To Drop a
User who is connected:
DECLARE
v_user_exists NUMBER;
user_name CONSTANT varchar2(20) := 'XXEIS';
BEGIN
LOOP
-- Kill any currently active sessions
FOR c IN (SELECT s.sid, s.serial# FROM
v$session s WHERE upper(s.username) = user_name)
LOOP
EXECUTE IMMEDIATE
'alter system kill session ''' || c.sid
|| ',' || c.serial# || ''' IMMEDIATE';
END LOOP;
-- Try to drop the user.
BEGIN
EXECUTE IMMEDIATE 'drop user ' ||
user_name || ' cascade';
EXCEPTION WHEN OTHERS THEN
IF (SQLCODE = -1940) THEN
-- Ignore ORA-01940 'Cannot drop user
that is currently connected' exception
NULL;
ELSE
RAISE;
END IF;
END;
-- Continue looping, killing sessions and
retrying to drop until successful
BEGIN
SELECT COUNT(*) INTO v_user_exists FROM
dba_users WHERE username = user_name;
EXIT WHEN v_user_exists = 0;
END;
END LOOP;
END;
/
To Get error
from the files:
egrep -i "PLS-|ORA-|unab-|Unab-|Error-" *.log
grep -iE "ORA-|Error-|Unab-" filename
Data Pump:
CREATE
DIRECTORY XXSBIWFA AS '/u02/XXSBIWFA';
select *from dba_directories;
GRANT read,
write ON DIRECTORY
XXSBIWFA TO XXSBIWFA;
GRANT DATAPUMP_EXP_FULL_DATABASE TO hr;
GRANT read,
write ON DIRECTORY
SBI_DIR TO XXEBS;
expdp
\"/ as sysdba\" schemas=XXOCA_M directory=XXOCA_M_EXP dumpfile=XXOCA_M.dmp
logfile=XXOCA_M.log
expdp XXSBIWFA/XXSBIWFA schemas=XXSBIWFA directory=XXSBIWFA
dumpfile=XXSBIWFA3rdSep.dmp logfile=expdp_XXSBIWFA.log
impdp \'/ AS
SYSDBA\' remap_schema=XXSBIWFA:XXSBIWFA2 dumpfile=XXSBIWFA3rdSep.dmp
directory=XXSBIWFA
logfile=XXSBIWFAimp.log
select *from
tab;
To Compile
Invalid Objects:
select owner,object_name,object_type,status from dba_objects
where STATUS='INVALID' and OWNER='XXSBIWFA';
EXEC DBMS_UTILITY.compile_schema(schema => 'XXSBIWFA2');
@/u01/DEMO2_DB/db/tech_st/11.2.0/rdbms/admin/utlrp.sql
SELECT COUNT
(*) FROM ALL_OBJECT WHERE STATUS='INVALID' ;
exec
DBMS_UTILITY.compile_schema(schema => 'XXEIS');
select
object_name, object_type, owner from dba_objects where status='INVALID' and
owner='XXSPLASH_STOWERSLST' ;
EXEC
DBMS_UTILITY.compile_schema(schema => 'XXSPLASH_STOWERSLST') ;
To Check the
Quota of Tablespace Size:
set linesize
300
set pagesize
300
select
a.tablespace_name, b.total,
c.available, d.large_extent,
(b.total - c.available) used,
round((((b.total -
c.available)*100)/b.total),2) pctused
from (select tablespace_name,
(sum(bytes)/1024)/1024 total
from dba_data_files group by
tablespace_name) b,
(select tablespace_name, nvl(round(((sum(bytes)/1024)/1024),2),0)
available
from dba_free_space group by
tablespace_name) c,
(select tablespace_name,
(max(bytes)/1024)/1024 large_extent
from dba_free_space group by
tablespace_name) d,
dba_tablespaces a
where
a.tablespace_name = b.tablespace_name(+)
and a.tablespace_name = c.tablespace_name(+)
and a.tablespace_name = d.tablespace_name(+)
/
select default_tablespace from dba_users where
username='XXWFAOCA';
select file_name,file_id,bytes/1024/1024/1024 from dba_data_files where tablespace_name='TEMP';
To get version of File name at OS Level
strings -a | grep '$Header' file_name
adident Header file_name
Convert Trace files with TKPROF
tkprof <trace_File>.trc <tkprof>.txt sys=no explain=apps/<apps pwd>
ADOP options in 12.2
ADOP Options in 12.2
ADOP stands for Application DBA Online Patching and this was introduced in EBS R12.2
This is new feature that we can able to patch running system without taking any down time for a significant period of time
ADOP uses dual file system to support online patching
If you want to know all the available options in ADOP, try below command
$adop -examples
To check the status of ADOP session
$adop -status
To get the list of log files along with the snippet of the error message corresponding to each log file try this command
$adopscanlog -latest=yes
Onlilne Patching Cycle: Consists of 5phases which needs to be execute in order.
Source the environment variable
adop phase=prepare
adop phase=apply patches=000000
adop phase=finalize
adop phase=cutover
source the environment variable
adop phase=cleanup
Also multiple phases can be executed in a single adop command
Example: adop phase=finalize,cutover,cleanup
Prior to cutover phase, it is possible to execute additional 'apply' and 'finalize' phases as needed.
Exaple: adop phase=prepare
adop phase=apply patches=000000
adop phase=finalize
adop phase=apply patches=000000
adop phase=cutover
adop phase=cleanup
If you apply any patches after the finalize, you need to run the finalize again before cutover
Parameters applicable to all phases:
workers=<number> Number of parallel workers used to execute tasks. Default value is computed according to CPU cores.
Example: adop phase=prepare workers=8
prompt=(yes/no) [default:yes]
This parameter specifies whether adop should prompt for user input on warnings.
By default adop will ask user whether to continue or exit on some warning messages. If this parameter is set to 'no' adop will remain fully non-iterative, and will continue past any warning messages without user confirmation.
Example: adop phase=cutover prompt=no
Prepare Parameters:
skipsyncerror=(yes/no) [default:no]
This specifies whether to ignore errors that may occur during incremental file system synchronization. This might happen if you applied a patch in the previous patching cycle
Example: adop phase=prepare skipsyncerror=yes
Apply Parameters:
apply=(yes/no) [default:yes]
This parameter controls adop acually applies the patch. In test environment we can use this parameter to complete the patch cycle without applying the patch
Example: adop phase=apply apply=no patches=000000
Apply two patches in series:
adop phase=apply patches=123456,987654
Apply patch to a user-specific directory
patchtop=<directory-name> [default:$PATCH_TOP]
Example: adop phase=apply patches=000000 patchtop=/u01/fs_ne/EBSapps/patches
apply_mode=(online/downtime/hotpatch) [default:online]
Use online mode to apply a patch to the patch edition during an online patching cycle.
Downtime mode to apply a patch to the run edition when services are down.
Hotpatch mode to apply a patch to the run edition when services are up and running. [Use only when Oracle recommends]
Example: adop phase=apply patches=000000 apply_mode=downtime
adop phase=fs_clone
It will check for any pending cleanup actions
It will clone patch file system from run file system
It will check if there are any blocking managed server ports
ADOP stands for Application DBA Online Patching and this was introduced in EBS R12.2
This is new feature that we can able to patch running system without taking any down time for a significant period of time
ADOP uses dual file system to support online patching
If you want to know all the available options in ADOP, try below command
$adop -examples
To check the status of ADOP session
$adop -status
To get the list of log files along with the snippet of the error message corresponding to each log file try this command
$adopscanlog -latest=yes
Onlilne Patching Cycle: Consists of 5phases which needs to be execute in order.
Source the environment variable
adop phase=prepare
adop phase=apply patches=000000
adop phase=finalize
adop phase=cutover
source the environment variable
adop phase=cleanup
Also multiple phases can be executed in a single adop command
Example: adop phase=finalize,cutover,cleanup
Prior to cutover phase, it is possible to execute additional 'apply' and 'finalize' phases as needed.
Exaple: adop phase=prepare
adop phase=apply patches=000000
adop phase=finalize
adop phase=apply patches=000000
adop phase=cutover
adop phase=cleanup
If you apply any patches after the finalize, you need to run the finalize again before cutover
Parameters applicable to all phases:
workers=<number> Number of parallel workers used to execute tasks. Default value is computed according to CPU cores.
Example: adop phase=prepare workers=8
prompt=(yes/no) [default:yes]
This parameter specifies whether adop should prompt for user input on warnings.
By default adop will ask user whether to continue or exit on some warning messages. If this parameter is set to 'no' adop will remain fully non-iterative, and will continue past any warning messages without user confirmation.
Example: adop phase=cutover prompt=no
Prepare Parameters:
skipsyncerror=(yes/no) [default:no]
This specifies whether to ignore errors that may occur during incremental file system synchronization. This might happen if you applied a patch in the previous patching cycle
Example: adop phase=prepare skipsyncerror=yes
Apply Parameters:
apply=(yes/no) [default:yes]
This parameter controls adop acually applies the patch. In test environment we can use this parameter to complete the patch cycle without applying the patch
Example: adop phase=apply apply=no patches=000000
Apply two patches in series:
adop phase=apply patches=123456,987654
Apply patch to a user-specific directory
patchtop=<directory-name> [default:$PATCH_TOP]
Example: adop phase=apply patches=000000 patchtop=/u01/fs_ne/EBSapps/patches
apply_mode=(online/downtime/hotpatch) [default:online]
Use online mode to apply a patch to the patch edition during an online patching cycle.
Downtime mode to apply a patch to the run edition when services are down.
Hotpatch mode to apply a patch to the run edition when services are up and running. [Use only when Oracle recommends]
Example: adop phase=apply patches=000000 apply_mode=downtime
adop phase=fs_clone
It will check for any pending cleanup actions
It will clone patch file system from run file system
It will check if there are any blocking managed server ports
Subscribe to:
Posts (Atom)

