===== Mit OraDebug die Oracle Datenbank analysieren ====
**11g/12c**
Mit dem Oracle Werkzeug OraDebug ( integriert in SQL*Plus ) lassen sich die Oracle Datenbank Speicherstrukturen analysieren, Traces von Sessions und SQL Abfragen erzeugen und teilweise auch Werte in der SGA direkt modifizieren.
----
==== Starten / Online Hilfe ====
Oradebug starten mit SQL*Plus:
sqlplus / as sysdba
# ein Art online hilfe ausgeben:
SQL>oradebug doc
----
==== Einsatz Zenarien ====
Was kann man nun dazu anfangen? Außer damit Unfug in der Datenbank anzurichten .-)
=== SQL Abarbeitung in der eigenen Session tracen ===
Neben dem dbms_monitor.session_trace_enable oder dbms_session.session_trace_enable kann auch mit oradbug ein Trace aktiviert werden:
sqlplus / as sysdba
-- Oradebug mit der eigenen Session verknüpfen
SQL>oradebug setmypid
-- Tracefile Größe einstellen
SQL>oradebug unlimit
-- Name der Trace Datei ermitteln
SQL>oradebug tracefile_name
-- Trace aktivieren
SQL>oradebug event 10046 trace name context forever, level 12
--
... SQL / PL/SQL ausführen
--
-- Trace wieder deaktiveren
SQL>oradebug event 10046 trace name context off
Ist die Process ID einer anderen Session bekannt, kann mit "oradebug setorapid " auch eine andere Session auf die gleiche Weise analyisert werden.
Um die PID zu ermitteln, kann das folgendes Script verwendet werden: [[http://orapowershell.codeplex.com/SourceControl/latest#sql/process.sql|process.sql]]
----
=== oradebug - Meldungen im Alert Log erzeugen ===
sqlplus / as sysdba
oradebug unit_test dbke_test dde_flow_kge_soft foo bar baz
siehe auch [[dba:oracle_ora_600_im_log_erzeugen|Ora-600 Eintrag für Metrik Test Zwecke im Alert Log erzeugen]]
----
===Dump IPC Informationen ===
Hier läßt sich unteranderen die private IP Adresse des Interconnect auslesen, falls RAC im Einsatz
SQL> oradebug setmypid
SQL> oradebug ipc
SQL> oradebug tracefile_name
IPC Dump alternativ aus dem OS auch mit dem Programm $ORCLE_HOME/bin/**sysresv**
siehe auch [[dba:rac_internals#privat_ip_adress_vom_interconnect|Privat IP Adress vom Interconnect]]
----
===NLS Trace in einer Session===
SQL> oradebug SETOSPID ;
SQL> oradebug dump modified_parameters 1;
Siehe auch [[dba:sqlnet_session_settings#trace_mit_ora_debug|NLS Trace in einer Session]]
----
===Auditing in der DB mit OraDebug ausschalten===
* http://www.petefinnigan.com/weblog/archives/00001352.htm
* http://www.soonerorlater.hu/download/hacktivity_lt_2011_en.pdf
----
==== Quellen und weitere Informationen====
Allgemein:
* http://tech.e2sn.com/oracle/troubleshooting/oradebug-doc
* http://www.morganslibrary.org/reference/oradebug.html
* http://www.orafaq.com/papers/oradebug.pdf