Best Practices bei der Nutzung des Automatic Diagnostic Repository Christian Ballweg Berater OPITZ CONSULTING Essen GmbH Nürnberg, 18.11.2009 OPITZ CONSULTING GmbH 2009 Seite 3
Agenda 1. Einführung 2. Technischer Überblick 3. Live Demo 4. Schlusswort OPITZ CONSULTING GmbH 2009 Seite 4
1 Einführung OPITZ CONSULTING GmbH 2009 Seite 5
Fault Diagnosability Infrastructure Automatic Health Monitor Fehlererkennung und Problemlösung Checkers Advisors Automatic Diagnostic Repository Fehlerverwaltung Ziele Workflow Hilfsmittel Vorteile OEM Integration: Support Workbench Schnittstelle zum Administrator html-basierter Einstiegspunkt geführte Verwaltung OPITZ CONSULTING GmbH 2009 Seite 6
Fault Diagnosability Infrastructure Ziele Probleme proaktiv erkennen Prävention! Den Einfluss von Problemen (Schaden/Ausfall) begrenzen Verringerung der Diagnosezeit Verringerung der Zeit zur Lösung des Problems Vereinfachung der Interaktion mit dem Oracle Support Lösung! Oracle OPITZ CONSULTING GmbH 2009 Seite 7
Fault Diagnosability Infrastructure Workflow Proaktives Monitoring Fehlererkennung ( First-failure data capture ) Information Verarbeitung Analyse Oracle OPITZ CONSULTING GmbH 2009 Seite 8
Fault Diagnosability Infrastructure Hilfsmittel Proaktives Monitoring Checkers (proaktiv autom. ausgelöste: 453125.1): exec DBMS_HM.RUN_CHECK('<name>', 'my_run_01') DB Structure Integrity Check Data Block Integrity Checker Redo Integrity Check Undo Segment Integrity Check Transaction Integrity Check Dictionary Integrity Check Fehlererkennung ( First-failure data capture ) Checkers (reaktiv) Log Group Member Check, CF Member Check Information Enterprise Manager: Meldungen Verarbeitung Analyse Enterprise Manager: Support Workbench, Advisors, OPITZ CONSULTING GmbH 2009 Seite 10
Fault Diagnosability Infrastructure Vorteile Space-Management Begrenzung des Volumens Begrenzung der Vorhaltezeit Flood Control Begrenzung der Verarbeitung gleichartiger Fehler Automatisierung und Korrelation Auslösung von Erste-Hilfe-Maßnahmen Verbindung von Problem und Diagnoseinformationen Strukturierung und Vereinheitlichung Ein Einstiegspunkt für alle Komponenten Identische Struktur Leichter Überblick über alle Komponenten OPITZ CONSULTING GmbH 2009 Seite 11
2 Technischer Überblick OPITZ CONSULTING GmbH 2009 Seite 12
Technischer Überblick Automatic Diagnostic Repository Automatic Health Monitor EM Support Workbench ADR Commandline Interface Incidents, Problems & Packaging OPITZ CONSULTING GmbH 2009 Seite 13
Automatic Diagnostic Repository Dateibasierte Ablage für Traces Dumps Alert-Log Health Monitor Reports Produkt- und komponentenübergreifend Clients Listener ASM-Instanzen Clusterware, RAC-Datenbanken Unterstützung für Automatisierung Incident Packaging OPITZ CONSULTING GmbH 2009 Seite 14
Automatic Diagnostic Repository Inhalt Alert-Log XML-basierte Datei Kritische Fehler (Incidents) Administrative Operationen Andere Datenbank-Ereignisse (z.b. Refresh-Mview-Fehler) Trace Files, Dumps, Core Files Trace Files von Server- und Background-Prozessen Dumps von Incident Diagnostic Data Core Files (Speicherabbilder) Reports und Metainformationen Health Monitor Reports Data Repair Records Incident Packages OPITZ CONSULTING GmbH 2009 Seite 15
Automatic Diagnostic Repository Space Management Aufbewahrung der aggregierten Informationen im sogenannten Metadaten Repository Begrenzung der Vorhaltung per änderbarer Policy: Detail Retention Policy (SHORTP_POLICY) Default: 1 Monat Metadata Retention Policy (LONGP_POLICY) Default: 1 Jahr Ändern: adrci> set control (LONGP_POLICY = 4380) 1/2 Jahr (4380/24 = 182,5 Tage) OPITZ CONSULTING GmbH 2009 Seite 16
Automatic Diagnostic Repository Flood Control Begrenzung der Verarbeitung gleichartiger Fehler Feste nicht änderbare Schwellwerte: Keine Detaildatensammlung mehr nach max. 5 Incidents für dasselbe Problem (PROBLEM KEY) pro Stunde, Neuaufnahme nach 1 Stunde max. 25 Incidents für dasselbe Problem (PROBLEM KEY) pro Tag, Neuaufnahme nach 1 Tag aber weiterhin Meldungen im Alert.log und hochzählen der Anzahl im ADR Keine Aufnahme mehr ins ADR max. 50 Incidents für dasselbe Problem (PROBLEM KEY) pro Stunde max. 250 Incidents für dasselbe Problem (PROBLEM KEY) pro Tag Meldung im Alert.log, dass keine Incidents mehr aufgezeichnet werden OPITZ CONSULTING GmbH 2009 Seite 17
Automatic Diagnostic Repository Ablageort Empfehlung Oracle (Note 454442.1*) zu ORACLE_BASE: Nur noch ORACLE_BASE setzen, das ORACLE_HOME wird daraus abgeleitet ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE /product/11.2.0/db_1 ADR_BASE wird bestimmt durch Init-Parameter DIAGNOSTIC_DEST, automatisch (wenn nicht explizit gesetzt) gleich $ORACLE_BASE, falls dieses nicht gesetzt ist $ORACLE_HOME/log ADR_HOME Heimatverzeichnis einer Produktinstanz Unter ADR_BASE Form ADR_HOME: ADR_BASE/diag/<product_type>/<product_name>/<instance_id> Beispiel: ADR_BASE=/data und Datenbank DEMODB ADR_HOME=/data/diag/rdbms/demodb/DEMODB *) 11g Install : Understanding about Oracle Base, Oracle Home and Oracle Central/Global Inventory Locations OPITZ CONSULTING GmbH 2009 Seite 18
Automatic Diagnostic Repository Vergleich Init-Parameter DIAGNOSTIC_DEST ersetzt BACKGROUND_DUMP_DEST CORE_DUMP_DEST USER_DUMP_DEST Diagnostic Data ehemalige Lokation 11g: ADR Lokation Foreground Process Trace Files USER_DUMP_DEST ADR_HOME/trace Background Process Trace Files BACKGROUND_DUMP_DEST ADR_HOME/trace Database Alert Log File BACKGROUND_DUMP_DEST ADR_HOME/alert/log.xml ADR_HOME/trace/alert_<SID>.log SQL*Net Listener Log File* LOG_DIRECTORY_listener ADR_HOME/alert/log.xml Core Dump Files CORE_DUMP_DEST ADR_HOME/cdump Incident Dump Files USER_DUMP_DEST BACKGROUND_DUMP_DEST ADR_HOME/incident/incdir_n Quelle: 453125.1 11g Diagnosability: Frequently Asked Questions *) DIAG_ADR_ENABLED_listener_name = ON (default), wenn OFF wird wie bisher nach LOG_DIRECTORY_listener geschrieben ($ORACLE_HOME/network/admin/log) OPITZ CONSULTING GmbH 2009 Seite 19
Automatic Diagnostic Repository Struktur Form: ADR_BASE/diag/<product>/<product_id>/<instance_id> ADR_HOME askoracledba.wordpress.com product rdbms tnslsnr client product_id db_name +asm hostname (Note:438148.1) OPITZ CONSULTING GmbH 2009 Seite 20
Automatic Diagnostic Repository Struktur im ADR_HOME (Auszug) alert cdump hm incident incpkg ir lck metadata stage sweep neues alert.log im XML-Format (log.xml) Coredumps Health Monitor Reports Incident-Files Staging Area des IPS: Package Incidents+Details Data Recovery Advisor (RMAN verwendet LogMiner-Files: offline_dictionary.ir + recovery_history.ir) Lockfiles für den Zugriff auf ADR Metadaten-Files Relationen ( tables ) des ADR (describe ) Staging Directory für das ADR-Relationen temporäre Dateien während Incidentgenerierung (vermeiden konkurrierenden Metadaten-Zugriff) trace Alle Tracefiles (früher [b,u]dump-directories) + Textversion ( altes alert_sid.log) OPITZ CONSULTING GmbH 2009 Seite 21
Automatic Health Monitor Funktion Fehleraufzeichnung im ADR Kategorisierung des Schweregrades (LOW, HIGH, CRITICAL) Advisor-Integration (RMAN: Data Recovery Advisor) Fehlerbehebung: Auswahl aus teils mehreren Optionen (Scripts) Überprüfung, Anpassung und Kontrolle Oracle OPITZ CONSULTING GmbH 2009 Seite 22
EM Support Workbench EM Support Workbench Enterprise Manager Tab: Software and Support Link: Support Workbench Interaktiver Zugang zu Problems Checker Findings Packages Verweise zu Advisor Central: Schnittstelle zu allen Advisors und Checkers Alert Log Contents (komplett) Alert Log Errors (wichtiger Link: Metrik- und Policy-Einstellungen) Create User-Reported Problem (genutzte Advisors) System-Performance (ADDM) Abfrage-Performance (SQL Advisor) Ressourcennutzung (Memory Advisor) oder: Manuelle Erstellung Incident Packaging Configuration Retention Package Settings OPITZ CONSULTING GmbH 2009 Seite 23
ADR Commandline Interface ADRCI ADRCI interaktiv Commandline Aufruf: adrci HELP SET EDITOR SET SHOW BASE SET SHOW HOMES HOME HOMEPATH TIPP: set autoshell on "This will enable you to execute the OS commands from ADRCI SHOW ALERT INCIDENT PROBLEM TRACEFILE REPORT HELP EXTENDED BEGIN END BACKUP SHOW CATALOG ADR Relationen und ADR System-Views HELP DDE DDE = Diagnostic Data Extractor CREATE INCIDENT EXECUTE ACTION SET INCIDENT PARAMETER SHOW [AVAILABLE] ACTIONS HELP HIDDEN Spezialfälle wie REGISTER INCIDENT FILE, CREATE HOME INCIDENT OPITZ CONSULTING GmbH 2009 Seite 24
ADR Commandline Interface ADRCI ADRCI im Batch Hilfe: adrci -help adrci exec="one_command [;one_command;...] adrci script=script_filename Beispiele: 1) $ adrci exec='set home demo1; show alert -tail 5 # die letzten 5 Zeilen 2) $ cat adr_ora.scr set home demo1 show alert -p "message_text like 'ORA-%'" term $ adrci script=adr_ora.scr OPITZ CONSULTING GmbH 2009 Seite 25
Incidents, Problems & Packaging Incidents Einmaliges Auftreten eines Fehlers mit eindeutiger (numerischer) INCIDENT_ID Bei Auftreten Eintrag ins Alert Log Transfer an den Enterprise Manager Diagnoseinformationen in Form von Dumps & Traces Speicherung des Incidents unterhalb ADR_HOME (incident/incdir_n) Einstellbare Aufbewahrungszeit (shortp_policy, longp_policy) Anzeige mittels ADRCI: show incident -mode detail [-p "incident_id=123"] OPITZ CONSULTING GmbH 2009 Seite 26
Incidents, Problems & Packaging Incident Status (show incident -mode [brief detail]) collecting (=1) Incident wurde soeben erzeugt und sammelt noch die Diagnoseinformationen. In diesem Zustand ist der Incident unvollständig und sollte nicht gepackt werden. ready (=2) Das Sammeln der Diagnoseinformationen ist abgeschlossen und kann nun genutzt werden, um das Problem zu analysieren oder um ein Paket für den Oracle Support zu schnüren. tracking (=3) Der Status zeigt an, dass ein Datenbankadministrator an diesem Problem arbeitet. Dieser Status muss manuell gesetzt werden. closed (=4) Dieses Incident gilt als erledigt und kann vom ADR zum Löschen ausgewählt werden, sobald die Retention Policy greift. data purged (=5) Die betroffenen Dateien wurden vom Incident gelöscht. In den meisten Fällen können die Dateien auch nicht mehr genutzt werden, selbst wenn sie sich noch im File-System befinden. OPITZ CONSULTING GmbH 2009 Seite 27
Incidents, Problems & Packaging Problem V$DIAG_CRITICAL_ERROR Zuordnung von Incidents zu einem Problem Ist definiert durch bestimmte Oracle Fehler und/oder das wiederkehrende Auftreten von Incidents?* *) Metalink Note: 453125.1 What Oracle Errors can create an Incident? The next errors will automatically produce an Incident: Internal errors: ORA-00600 "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s] ORA-00700 "soft internal error, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s] ORA-07445 "exception encountered: core dump [%s] [%s] [%s] [%s] [%s] [%s]" Some of the External Errors are: ORA-04030 "out of process memory ORA-04031 "unable to allocate %s bytes of shared memory Can The Diagnosability Framework be configured to create an Incident for other errors? No, only a set of predefined errors are automatically tracked by the diagnosability framework. OPITZ CONSULTING GmbH 2009 Seite 28
Incidents, Problems & Packaging Problem: known Problems 1/2 Zuordnung Facility Error Errortext ORA 4030 out of process memory when trying to allocate %s bytes ORA 4031 unable to allocate %s bytes of shared memory Cluster ORA 29701 unable to connect to Cluster Synchronization Service ORA 29702 error occurred in Cluster Group Service operation ORA 29703 error occurred in global enqueue service operation ORA 29740 evicted by instance number %s, group incarnation %s dbge 10567? (ORA: Redo is inconsistent with data block) ORA 4020 deadlock detected DB ORA 8103 object no longer exists ORA 1410 invalid ROWID ORA 1578 data block corrupted OPITZ CONSULTING GmbH 2009 Seite 29
Incidents, Problems & Packaging Problem: known Problems 2/2 Zuordnung Facility Error Errortext redo log corruption ORA-600 (Auszug: unvollständig u. ungeordnet) Note 153788.1 - Troubleshoot an ORA-600 or ORA-7445 Error Using the Error Lookup Tool ORA 353 log corruption near block %s change %s time %s ORA 355 change numbers out of order ORA 356 inconsistent lengths in change description ORA 600 [kcbzpb_1] ORA 600 [kcbzwb_4] ORA 600 [kccsbck_first] ORA 600 [kcfrbd_2] ORA 600 [kcoapl_blkchk] ORA 600 [26599] Gesamtzahl 230 216 verschiedene ORA-600 und 14 andere Problems OPITZ CONSULTING GmbH 2009 Seite 30
Incidents, Problems & Packaging Packaging Zusammenfassen aller notwendigen Informationen und Dateien eines Problems für den Support Entfernen von sensiblen Daten Erstellung eines Zipfiles Anschließend: Upload zum Oracle Support OPITZ CONSULTING GmbH 2009 Seite 32
Incidents, Problems & Packaging Packaging Steps: 1) Create Logical Package 2) Generate Physical Package Sollen sensitive Daten entfernt werden, dann sind folgende Schritte (manuell per IPS-Command oder mittels Support Workbench) auszuführen: 1) Create logical package 2) Finalize package 3) Remove sensitive data 4) Generate physical package OPITZ CONSULTING GmbH 2009 Seite 33
Incidents, Problems & Packaging Packaging Steps: 1) adrci> ips create package incident 19148 2) adrci> ips generate package <X> in <DIR> Sollen sensitive Daten entfernt werden, dann sind folgende Schritte (manuell per IPS-Command oder mittels Support Workbench) auszuführen: 1) adrci> ips create package incident 19148 2) adrci> ips finalize package package <X> 3) adrci> copy [in out] file; oder via GUI 4) adrci> ips generate package <X> in <DIR> OPITZ CONSULTING GmbH 2009 Seite 34
Incidents, Problems & Packaging Packaging Vorgehensweise für die ganz Schnellen Steps: 1) adrci> ips pack incident 19148 OPITZ CONSULTING GmbH 2009 Seite 35
3 Live Demo OPITZ CONSULTING GmbH 2009 Seite 36
4 Schlusswort OPITZ CONSULTING GmbH 2009 Seite 37
Schlusswort Zu guter Letzt All jene, welche gute Gründe haben, die Fault Diagnosability Infrastructure ausschalten zu wollen um damit zum alten Verhalten zurückzukehren: so geht es*: Controlling ADR Creation and Disabling Fault Diagnosability To disable the fault diagnosability feature, you must turn off the capture of diagnostics. Edit the sqlnet.ora file by changing the values of the DIAG_ADR_ENABLED and DIAG_DDE_ENABLED parameters to FALSE²; the default values are TRUE². To turn off the OCCI [Oracle C++ Call Interface] signal handler and to reenable standard operating system failure processing, edit the sqlnet.ora file by adding the corresponding parameter: DIAG_SIGHANDLER_ENABLED=FALSE. *) Auszug aus Oracle Call Interface Programmer's Guide, 11g Release 1 (11.1), Part Number B28390-03 ²) o.g. Dokument nennt TRUE/FALSE während die Net Services Reference ON/OFF angibt. TRUE/FALSE trifft für die unsupporteten _diag_..._enabled -Parameter zu! OPITZ CONSULTING GmbH 2009 Seite 38
Schlusswort und zu Allerletzt: Allen anderen möchten wir empfehlen, sich mit den Features des ADR und den Erleichterungen der "Fault Diagnosability Infrastructure" zu beschäftigen. Die Arbeit des Sammelns von Tracefiles und der Zusammenführung dieser Informationen entfällt fast gänzlich... Auf zu neuen Ufern und... Willkommen im neuen Zeitalter Tracefiles können andere suchen! OPITZ CONSULTING GmbH 2009 Seite 39
Fragen und Antworten OPITZ CONSULTING GmbH 2009 Seite 40
Kontakt Christian Ballweg OPITZ CONSULTING Essen GmbH christian.ballweg@opitz-consulting.com Telefon +49 201 89 29 94-1718 Mobil +49 173 8978636 OPITZ CONSULTING GmbH 2009 Seite 41