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
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
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
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"
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`
A problem may consist of one or more incidents.
show home
set home diag/rdbms/<db_unique_name>/<instance_name>
show incident -mode detail -p "incident_id=<incident id>"
or
show problem
ips create package problem <problem id>
or
ips create package problem <problem id> correlate all
ips generate package <package number> in "/tmp"