Table of Contents
Reference links
The new way to package problems and their incidents up for Oracle Support.
A useful way to keep the purging of trace files under control.
With an Oracle database environment setup, type:
adrci
To get out, type:
adrci> exit
To get help, type:
adrci> help
Show registered ORACLE_HOMEs
show home
Set one of the homes
set home diag/rdbms/orcl
tail the alert log (adrci reads the XML version of the alert log)
show alert -tail -f
Are there any problems?
show problem
Show the incident(s) of this problem
show incident -all
Show more detail about an incident
show incident -mode detail -p "incident_id=<incident number>"
Show the incident trace file for this incident
show trace /u01/app/oracle/diag/rdbms/orcl/orcl/incident/incdir_6201/orcl_ora_2299_i6201.trc
Package a problem up for Oracle Support
ips create package problem 1 correlate all
Zip a problem package for Oracle Support
ips generate package <package number created in previous step> in "/home/oracle"
To see current setup, type:
adrci> show control
Is the list of HOMEs incorrect?
Check the ADR Base. This is probably set wrongly. Thanks to this site, we can set the ADR Base to what it should be.
echo "ORACLE_BASE: ${ORACLE_BASE}"
STORED_ADR_BASE=$(cat $ORACLE_HOME/log/diag/adrci_dir.mif)
printf "Stored ADR_BASE: %s\n" "${STORED_ADR_BASE}"
Does it show the ORACLE_BASE? If not populate it correctly with this
printf "%s" "${ORACLE_BASE}" >$ORACLE_HOME/log/diag/adrci_dir.mif
Purging trace and dump files in 11g with adrci
SHORTP_POLICY and LONGP_POLICY are number of hours to keep trace files and alert files respectively. These can be changed by typing:
set control (SHORTP_POLICY=240)
Trace files will now be deleted after 10 days.
If space is running low, you can manually delete trace files.
This deletes all trace files older than 1 day (note the age parameter is minutes, not hours).
purge -age 3600 -type trace
Show the tracefiles in reverse time order
show tracefile -rt
Use ADR command line interface from shell
adrci exec="show homes" adrci exec="set home diag/tnslsnr/ravjde01/listener_ravjde1; show control" adrci exec="set home diag/tnslsnr/ravjde01/listener_ravjde1; set control (shortp_policy=360,longp_policy=720);purge;show control;"
Show ADR homes related to databases
$ORACLE_HOME/bin/adrci exec="show homes" | grep "rdbms"
Shell script to purge ADR data
Found here
- Purge ADR contents (adr_purge.sh)
purge_log () {
purge_min=$(( 24 * 60 * $2 ))
echo "INFO: purging $1 older than $2 days"
adrci exec="set homepath $file_line; purge -age $purge_min -type $1"
}
echo "INFO: adrci purge started at `date`"
adrci exec="show homes"|grep -v : | while read file_line
do
echo "INFO: adrci purging diagnostic destination " $file_line
echo "------------------"
purge_log ALERT 365
purge_log INCIDENT 273
purge_log TRACE 120
purge_log CDUMP 75
purge_log HM 75
echo "------------------"
done
echo "INFO: adrci purge finished at `date`
Create a package to send to Oracle Support
A problem may consist of one or more incidents.
Show the available adr homes
show home
Set the appropriate adr home
set home diag/rdbms/<db_unique_name>/<instance_name>
Find the problem id
show incident -mode detail -p "incident_id=<incident id>"
or
show problem
Create a package containing the latest incident for this problem
ips create package problem <problem id>
or
Create a package containing all incidents for this problem
ips create package problem <problem id> correlate all
Generate a zipped package file
ips generate package <package number> in "/tmp"
