Slik feilsøker med Oracle 12c Database Logs

May 21  by Eliza

Må du dykke inn i Oracle 12c logger seg. Hver database har et sett med kataloger der nøkkellogg, spor, og dumpfilene er lagret.

Databaselogg infrastruktur i Oracle 12c

Hjelp av loggfiler for å diagnostisere et problem er ofte en daglig oppgave for DBA så å vite hvordan Oracle styrer denne kritiske ressursen er viktig. Oracle loggfil struktur og ledelse er referert til som den automatiske Diagnostic Repository (ADR). ADR gir disse loggadministrasjonsmuligheter:

  • Integrert logg ledelse ikke bare for databasen, men andre Oracle-produkter. Foreløpig Automatic Storage Management og lytteren skrive også til den nye tømmer infrastruktur.
  • Hendelseslogging i form av hendelser med inkludert diagnostiske data og lagret i zip-filer som kan gjennomgås og sendes til Oracle Support. Ideen er å bedre compartmentalize feilhendelser og pent pakke dem slik at de kan sendes direkte til Oracle Support.
  • Hendelsen flomkontroll for å begrense intelligent etablering og størrelsen på sporingsfiler. Dersom en hendelse gjentas ved en ekstrem hastighet over en definert terskelverdi, blir bare forekomsten av hendelsen logges.

Det er viktig å vite hvor de viktigste diagnostiske filene er plassert:

  • Plasseringen for de diagnostiske underkataloger (DIAG) er ADR_BASE og er vanligvis under ORACLE_BASE.
  • Plasseringen av basen for loggkatalogene er ADR_HOME og er definert av databasen parameter DIAGNOSTIC_DEST.
  • Den ADR_HOME er under ADR_BASE beliggenhet og er under database SID katalogen.

Strukturen for ADR_HOME for databaser følger:

$ ADR_BASE / diag / RDBMS / DATABASE NAME / DATABASE SID

For eksempel, her er følgende struktur for dev12c database:

$ Ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c
varsle hm incpkg lck metadata metadata_pv feie
cdump hendelsen ir logge metadata_dgif scenen spor

Den ADR_HOME plasseringen er den fullstendige banen til og med den andre referanse til dev12c.

Du ser den samme informasjonen pent lagret i databasen og kan spørres via V $ DIAG_INFO:

SQL> velg navn, verdi fra v $ diag_info;
NAVN VERDI
----------- ---------------------------------
Diag Enabled TRUE
ADR Base / U01 / app / oracle
ADR Hjem / U01 / app / orakel / diag / RDBMS / dev12c / dev12c
Diag Trace / U01 / app / orakel / diag / RDBMS / dev12c / dev12c / spor
Diag Alert / U01 / app / orakel / diag / RDBMS / dev12c / dev12c / varsling
Diag Incident / U01 / app / orakel / diag / RDBMS / dev12c / dev12c / hendelse
Diag Cdump / U01 / app / orakel / DIAG / RDBMS / dev12c / dev12cl / cdump
Helse Monitor / U01 / app / orakel / diag / RDBMS / dev12c / dev12c / hm
Standard Trace File
/u01/app/oracle/diag/rdbms/dev12c/dev12c/trace/dev12c_ora_23293.trc
Aktiv Problem Antall 0
Aktiv Incident Antall 0
11 rader valgt.

Innenfor hver databasekatalogen er underkataloger hvor forskjellige filene er lagret. Her er hver primær katalogen og dens formål.

Katalog Formål
varsling Butikker svært viktig XML-formatert varselloggen for database
cdump Kjernen dump plassering av minne bunken når en prosess mislykkes
hendelse Underkataloger knyttet til enkelthendelser eller hendelser
spor Spore og dumpe filer for bakgrunn og brukerprosesser; inneholder også tekst formatert varselloggen
Dette er en oversikt over hver katalog:

$ Ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c
varsle hm incpkg lck metadata metadata_pv feie
cdump hendelsen ir logge metadata_dgif scenen spor
oralinux1> ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c / varsling
log.xml
$ Ls $ ORACLE_BASE / DIAG / RDBMS / dev12c / dev12c / cdump
$ Ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c / hendelse
$ Ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c / spor
alert_dev12c.log dev12c_m000_23037.trc dev12c_ora_6593.trm
dev12c_aqpc_24310.trc dev12c_m000_23037.trm dev12c_ora_760.trc

Disse katalogene kan få rotete med mange filer og spiser opp diskplass.

Ha en prosess for å rydde opp i spor, cdump, og hendelsen kataloger slik at de ikke fyller opp disken og er enklere å administrere.

Spore og dumpe filer i Oracle 12c

Når et problem hendelse inntreffer (for eksempel en mislykket prosess eller mislykket minnetildeling), loggfiler for at arrangementet blir skrevet inn i spor katalogen.

Formatet for loggen filnavn er SID_process name_process ID .trc:

$ Ls $ ORACLE_BASE / diag / RDBMS / dev12c / dev12c / spor
alert_dev12c.log dev12c_m000_23037.trc dev12c_ora_6593.trm
dev12c_aqpc_24310.trc dev12c_m000_23037.trm dev12c_ora_760.trc

Her er innholdet i et spor fil:

Sporingsfilen /u01/app/oracle/diag/rdbms/dev12c/dev12c/trace/dev12c_dbw0_24263.trc
Oracle Database 12c Enterprise Edition Versjons 12.1.0.1.0 - 64bit Produksjon
Med partisjonering, OLAP, Avanserte Analytics og Real Application Testing opt
ioner
ORACLE_HOME = /u01/app/oracle/product/12.1.0
Systemnavn: Linux
Nodenavn: oralinux1
Slipp: 2.6.39-400.17.2.el6uek.x86_64
Versjon: # 1 SMP Ons 13 mars 12:31:05 PDT 2013
Maskin: x86_64
Forekomst navn: dev12c
Redo tråd montert ved dette tilfellet: 0 <ingen>
Oracle prosess nummer: 11
Unix prosessen pid: 24263, bilde: oracle @ oralinux1 (DBW0)
*** 2013-07-19 13: 21: 21,458
*** CLIENT ID :() 2013-07-19 13: 21: 21,458
*** SERVICE NAVN :() 2013-07-19 13: 21: 21,458
*** Modulnavn :() 2013-07-19 13: 21: 21,458
*** ACTION NAVN :() 2013-07-19 13: 21: 21,458
2013-07-19 13: 21: 21,458540: kjcipctxinit (): (pid | psn) = (11 | 1): initialisert og
knyttet pctx 0x125d93038 i prosessen listen

Forskjellen mellom en dump og en sporingsfilen: Et spor er en pågående logg over et problem hendelsen. Dump er engangs dumping av informasjon i en fil for et problem hendelse. Som en Database Administrator (DBA), bør du gå gjennom disse tekstfilene til å diagnostisere hva som skjer.

Hvis en prosess krasjer, kan en kjerne dump opprettes i cdump katalogen. Dette er en binær sporfil av minneprosessen og dens innhold på tidspunktet for ulykken. Selv om mange anser disse for å være "hands-off" for en DBA en anmeldelse, det er ikke nødvendigvis tilfelle.

Linux og UNIX strenger kommandoen kan vise utskrifts teksten til en binærfil. Hvis du velger å laste opp kjernen filen til noen støtte organisasjon, kan det være lurt å gå gjennom det første for brukernavn og passord kombinasjoner fordi de er noen ganger til stede i klartekst i disse filene.

Lytteren innlogging Oracle 12c

Du må kanskje spore forbindelser inn i databasen via lytteren. Hver gang en forbindelse til databasen skjer, at arrangementet (eller feil) blir lagret i loggen lytteren.

Å vite hvor lytter logger genereres er viktig for feilsøking. Du kan finne lytteren loggen under ADR_BASE / diag / tnslsnr katalogtreet. (I dette eksempel er det /u01/app/oracle/diag/tnslsnr/oralinux1/listener/trace/listener.log).

Her er et eksempel loggoppføring:

02-AUG-2013 17:38:48 * (CONNECT_DATA = (Tjeneste = dev12c)
(CID = (PROGRAM = sqlplus) (HOST = oralinux1) (USER = oracle))) *
(ADRESSE = (PROTOKOLL = tcp) (HOST = 192.168.2.121) (PORT = 21165))
* Etablere * dev12c * 0

Nøkkelinformasjon er tiden, vert, og program for innkommende tilkoblinger.

Her er en Dell TOAD programvare verktøyet brukeren kobler til, mest sannsynlig fra en brukers arbeidsstasjon:

02-AUG-2013 11:57:45 * (CONNECT_DATA = (Tjeneste = 192.168.2.121)
(CID = (PROGRAM = C:? \ Program Files \ Quest Software \ TOAD \ TOAD.exe)
(HOST = LPT-MPYLE) (USER = mpyle))) * (ADRESSE = (PROTOKOLL = tcp)
(HOST = 192.168.2.170) (PORT = 3108))
* Etablere * 192.168.2.121 * 12514

Til slutt, er en feil som oppstår:

TNS-12514: TNS: lytteren foreløpig ikke vet om tjenesten
spurt i tilkoblingsdeskriptor

Du kan søke etter Transport Network Substrat (TNS) feilkode i lytteren loggen for å se hvilke feil forekommer. Dette søket er nyttig fordi det vil (forhåpentligvis) være langt flere sammenhenger enn feil, og som varsel loggene, kan lytteren loggen vokse seg stor.