Comment faire pour dépanner avec vos journaux de base de données Oracle 12c

Vous avez besoin de plonger dans le 12c Oracle se connecte. Chaque base de données dispose d'un ensemble de répertoires où journaux, trace, et les fichiers de clés de vidage sont stockés.

Sommaire

Base de données de l'infrastructure journal dans Oracle 12c

Utilisation des fichiers de log pour diagnostiquer un problème est souvent une tâche quotidienne pour le DBA afin de savoir comment Oracle gère cette ressource critique est importante. La structure et la gestion du fichier journal Oracle sont désignés comme le Référentiel de diagnostic automatique (ADR). ADR fournit ces capacités de gestion de journal:

  • La gestion intégrée de journal pas seulement pour la base de données, mais d'autres produits Oracle. Actuellement, Automatic Storage Management et l'auditeur écrivent aussi à la nouvelle infrastructure de journal.

  • La journalisation des événements en termes d'incidents avec des données de diagnostic inclus et stockées dans des fichiers zip qui peuvent être examinés et envoyés à Oracle Support. L'idée est de mieux compartimenter les événements d'erreur et soigneusement emballer eux afin qu'ils puissent être envoyés directement à Oracle Support.

  • Le contrôle des inondations Incident pour limiter intelligemment la création et la taille des fichiers de trace. Si un événement se répète à un taux extrême-dessus d'un seuil défini, que la survenance de l'événement est enregistré.

Il est important de savoir où se trouvent les fichiers de diagnostic clés:

  • L'emplacement pour les sous-répertoires de diagnostic (diag) est le ADR_BASE et est généralement sous la ORACLE_BASE.

  • L'emplacement de la base pour les sous-répertoires de journaux est le ADR_HOME et est défini par le paramètre de base de données DIAGNOSTIC_DEST.

  • Le ADR_HOME est sous l'emplacement de ADR_BASE et est sous le répertoire de base de données SID.

La structure des bases de données pour ADR_HOME suit:

$ ADR_BASE / diag / SGBDR / Nom de la base / Base de données SID

Par exemple, voici la structure suivante pour la base de données de dev12c:




$ Ls ORACLE_BASE $ / diag / SGBDR / dev12c / dev12calert hmincpkg lck metadatametadata_pv sweepcdump incidents journal ir metadata_dgif stagetrace

L'emplacement de ADR_HOME est le chemin complet jusqu'à et y compris la deuxième référence à dev12c.

Vous voyez cette même information soigneusement stockées dans la base de données et peut être demandée par l'intermédiaire V $ DIAG_INFO:

SQL> select name, value de v $ diag_info-NOM VALEUR ----------- -------------------------- ------- Diag Enabled TRUEADR Base / u01 / app / oracleADR Accueil / u01 / app / oracle / diag / SGBDR / dev12c / dev12cDiag Trace / u01 / app / oracle / diag / SGBDR / dev12c / dev12c / Alerte traceDiag / u01 / app / oracle / diag / SGBDR / dev12c / dev12c / alertDiag Incident / u01 / app / oracle / diag / SGBDR / dev12c / dev12c / incidentDiag Cdump / u01 / app / oracle / diag / SGBDR / dev12c / dev12cl / cdumpHealth Moniteur / u01 / app / oracle / diag / SGBDR / dev12c / dev12c / hmDefault Trace File / u01 / app / oracle / diag / SGBDR / dev12c / dev12c / trace / dev12c_ora_23293.trcActive problème comte 0Active incident comte 011 lignes sélectionnées.

Au sein de chaque répertoire de base de données sont sous-répertoires où les différents fichiers sont stockés. Voici chaque répertoire primaire et son but.

RépertoireObjectif
alerteMagasins très important journal d'alertes au format XML pour la base de données
cdumpLieu de core dump de la pile de la mémoire quand un processus échoue
incidentSous-répertoires relatifs à des événements ou des incidents individuels
traceTrace et vider les fichiers pour les utilisateurs de fond et alsocontains processes- texte formaté journaux alerte
Ceci est une liste de chaque répertoire:
$ Ls $ ORACLE_BASE / diag / SGBDR / dev12c / dev12calert hmincpkg lck metadatametadata_pv sweepcdump incidents ir connecter metadata_dgif stagetraceoralinux1> ORACLE_BASE ls $ / diag / SGBDR / dev12c / dev12c / alertlog.xml $ ls $ ORACLE_BASE / diag / SGBDR / dev12c / dev12c / cdump $ ls $ ORACLE_BASE / diag / SGBDR / dev12c / dev12c / incidents $ ls ORACLE_BASE $ / diag / SGBDR / dev12c / dev12c / tracealert_dev12c.logdev12c_m000_23037.trc dev12c_ora_6593.trmdev12c_aqpc_24310.trc dev12c_m000_23037.trm dev12c_ora_760.trc

Ces répertoires peuvent être encombré avec de nombreux fichiers et de manger de l'espace disque.

Avoir un processus de nettoyer les répertoires trace, cdump, et l'incident afin de ne pas remplir votre disque et sont plus faciles à gérer.

Trace et vider les fichiers dans Oracle 12c

Quand un événement de problème se produit (comme un processus en panne ou l'allocation de mémoire a échoué), les fichiers journaux pour cet événement sont écrits dans le tracer répertoire.

Le format de fichier est le journal SID_process de ID.TRC:

$ Ls $ ORACLE_BASE / diag / SGBDR / dev12c / dev12c / tracealert_dev12c.logdev12c_m000_23037.trc dev12c_ora_6593.trmdev12c_aqpc_24310.trc dev12c_m000_23037.trm dev12c_ora_760.trc

Voici le contenu d'un fichier de trace:

Fichier Trace Database 12c /u01/app/oracle/diag/rdbms/dev12c/dev12c/trace/dev12c_dbw0_24263.trcOracle Enterprise Edition sortie 12.1.0.1.0 - 64bit ProductionWith le partitionnement, OLAP, Advanced Analytics et Real Application Testing optionsORACLE_HOME = / u01 /app/oracle/product/12.1.0System nom: nom de LinuxNode: oralinux1Release: 2.6.39-400.17.2.el6uek.x86_64Version: # 1 SMP Mer 13 mars 12:31:05 PDT 2013Machine: nom x86_64Instance: fil dev12cRedo monté par cet exemple: 0 Oracle nombre de processus: 11Unix processus pid: 24263, l'image: Oracle @ oralinux1 (DBW0) *** 19/07/2013 13: 21: 21,458 *** CLIENT ID :() 19/07/2013 13: 21: 21,458 * ** NOM DU SERVICE :() 19/07/2013 13: 21: 21,458 *** MODULE NOM :() 19/07/2013 13: 21: 21,458 *** ACTION NOM :() 19/07/2013 13: 21: 21.4582013-07-19 13: 21: 21,458540: kjcipctxinit (): (pid | psn) = (11 | 1): initialisé pctX andlinked 0x125d93038 dans la liste des processus

La différence entre une décharge et un fichier de trace: A trace est un journal en cours d'un événement de problème. La décharge publique est le dumping des informations dans un fichier pour un événement de problème ponctuel. En Database Administrator (DBA), vous devez lire ces fichiers texte pour diagnostiquer ce qui se passe.

Si un processus se bloque, un core dump peut être créé dans le répertoire de cdump. Ceci est un fichier de trace binaire du processus de la mémoire et de son contenu au moment de l'accident. Bien que beaucoup de gens considèrent ceux-ci soient “ mains-off ” pour un DBA à donner votre avis, qui est pas nécessairement le cas.

La commande Linux et UNIX cordes peut afficher le texte à imprimer d'un fichier binaire. Si vous optez pour télécharger le fichier de base de toute organisation de soutien, vous voudrez peut-être examiner d'abord pour nom d'utilisateur et mot de passe des combinaisons parce qu'ils sont parfois présents en texte clair dans ces fichiers.

Journal d'écoute dans Oracle 12c

Vous pourriez avoir à suivre les connexions dans la base de données via l'auditeur. Chaque fois qu'une connexion à la base de données se produit, l'événement (ou l'échec) est stocké dans le journal d'auditeur.

Savoir où les journaux d'écoute sont générés est important de dépannage. Vous pouvez trouver le journal de l'auditeur sous l'arbre de répertoire ADR_BASE / diag / tnslsnr. (Dans cet exemple, il est /u01/app/oracle/diag/tnslsnr/oralinux1/listener/trace/listener.log).

Voici une entrée de journal de l'échantillon:

02-AUG-2013 17:38:48 * (CONNECT_DATA = (SERVICE_NAME = dev12c) (CID = (PROGRAM = sqlplus) (HOST = oralinux1) (USER = oracle))) * (ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.2.121) (PORT = 21165)) * * établir dev12c * 0

Les informations clés est le temps, l'hôte, et un programme pour les connexions entrantes.

Voici un utilisateur de logiciel utilitaire de connexion Dell TOAD, probablement depuis le poste d'un utilisateur:

02-AUG-2013 11:57:45 * (CONNECT_DATA=(SERVICE_NAME=192.168.2.121)(CID=(PROGRAM=C:Program?FilesQuest?SoftwareTOADTOAD.exe)(HOST=LPT-MPYLE)(USER=mpyle))) * (ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.2.170) (PORT = 3108)) * * établir 192.168.2.121 * 12514

Enfin, une erreur se produit:

TNS-12514: TNS: l'auditeur ne sait pas actuellement de servicerequested dans le descripteur de connexion

Vous pouvez rechercher le Transport Réseau Substrat (TNS) le code d'erreur dans le journal d'écoute pour voir quelles erreurs se produisent. Cette recherche est utile, car il y aura (on l'espère) être beaucoup plus de connexions que les erreurs et, comme les journaux d'alerte, le journal de l'auditeur peut devenir volumineux.


» » » Comment faire pour dépanner avec vos journaux de base de données Oracle 12c