Como solucionar problemas com seus da Oracle 12c banco de dados Logs

Você precisa mergulhar no 12c A Oracle registra-se. Cada banco de dados tem um conjunto de diretórios onde chaves de registro, rastreamento e arquivos de despejo são armazenados.

infra-estrutura de log de banco de dados no Oracle 12c

Usando arquivos de log para diagnosticar um problema é muitas vezes uma tarefa diária para o DBA para saber como a Oracle gere este recurso crítico é importante. estrutura e gerenciamento de arquivos de log do Oracle são referidos como a Repositório Automatic Diagnostic (ADR). ADR fornece esses recursos de gerenciamento de log:

  • gerenciamento de log integrada não apenas para o banco de dados, mas outros produtos da Oracle. Atualmente, Automatic Storage Management e ouvinte também escrever para a nova infra-estrutura de log.

  • O registro de eventos em termos de incidentes com dados de diagnóstico incluído e armazenado em arquivos zip que pode ser revisados ​​e enviados ao Suporte Oracle. A ideia é melhor compartimentar eventos de erro e ordenadamente empacotá-los para que eles possam ser enviados diretamente para o Suporte Oracle.

  • controle de inundações incidente para limitar de forma inteligente a criação eo tamanho dos arquivos de rastreamento. Se um evento se repete em um ritmo extremo acima de um limite definido, apenas a ocorrência do evento é registrado.

É importante saber onde os arquivos de diagnóstico principais estão localizados:

  • A localização para os subdiretórios de diagnóstico (diag) é o ADR_BASE e é tipicamente sob a ORACLE_BASE.

  • A localização da base para os subdiretórios de log é o ADR_HOME e é definido pelo parâmetro de banco de dados DIAGNOSTIC_DEST.

  • O ADR_HOME está abaixo da localização ADR_BASE e está sob o diretório SID do banco de dados.

A estrutura para ADR_HOME para bancos de dados a seguir:

$ ADR_BASE / diag / rdbms / DATABASE NAME / DATABASE SID

Por exemplo, aqui é a seguinte estrutura para o banco de dados dev12c:

$ Ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12calert hmincpkg Ick metadatametadata_pv sweepcdump log ir incidente metadata_dgif stagetrace

A localização ADR_HOME é o caminho completo até e inclusive a segunda referência para dev12c.

Você vê esta mesma informação ordenadamente armazenados dentro do banco de dados e pode ser consultado via V $ DIAG_INFO:

SQL> select nome, o valor de v $ diag_info-NAME VALOR ----------- -------------------------- ------- diag Ativado TRUEADR base / u01 / app / oracleADR Início / u01 / app / oracle / diag / rdbms / dev12c / dev12cDiag Trace / u01 / app / oracle / diag / rdbms / dev12c / dev12c / Alert traceDiag / u01 / app / oracle / diag / rdbms / dev12c / dev12c / alertDiag Incidente / u01 / app / oracle / diag / rdbms / dev12c / dev12c / incidentDiag Cdump / u01 / app / oracle / diag / rdbms / dev12c / dev12cl / cdumpHealth Monitor / u01 / app / oracle / diag / rdbms / dev12c / dev12c / hmDefault rastreio file / u01 / app / oracle / diag / rdbms / dev12c / dev12c / trace / dev12c_ora_23293.trcActive problema de contagem de 0Active Incidente Contagem 011 linhas selecionadas.

Dentro de cada diretório do banco são subdiretórios onde diferentes arquivos são armazenados. Aqui está cada diretório principal e sua finalidade.

Diretóriopropósito
alertaLojas muito importante log de alerta de formato XML para banco de dados
cdumplocal de despejo de núcleo da pilha de memória quando um processo falha
incidenteSubdiretórios relativos a eventos ou incidentes individuais
vestígioRastrear e arquivos de despejo para o fundo e usuário alsocontains processos- texto formatado log de alerta
Esta é uma lista de cada diretório:
$ Ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12calert hmincpkg Ick metadatametadata_pv sweepcdump incidente ir log metadata_dgif stagetraceoralinux1> ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12c / alertlog.xml $ ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12c / cdump $ ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12c / incidentes $ ls $ ORACLE_BASE / diag / rdbms / dev12c / dev12c / tracealert_dev12c.logdev12c_m000_23037.trc dev12c_ora_6593.trmdev12c_aqpc_24310.trc dev12c_m000_23037.trm dev12c_ora_760.trc

Estes diretórios podem ficar confuso com muitos arquivos e comer espaço em disco.

Ter um processo para limpar os diretórios de rastreamento, cdump e incidentes para que eles não encher o seu disco e são mais fáceis de gerenciar.

Rastrear e arquivos de despejo no Oracle 12c

Quando um evento de problema ocorre (como um processo falhou ou alocação de memória falhou), arquivos de log para esse evento estão escritos no diretório de rastreamento.

O formato para o nome do arquivo de log é SID_process name_process ID.TRC:

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

Eis o conteúdo de um arquivo de rastreamento:

arquivo de rastreamento /u01/app/oracle/diag/rdbms/dev12c/dev12c/trace/dev12c_dbw0_24263.trcOracle banco de dados 12c Enterprise Edition lançamento 12.1.0.1.0 - 64bit ProductionWith o particionamento, OLAP, Análise Avançada e Real Application Testing optionsORACLE_HOME = / u01 /app/oracle/product/12.1.0System nome: LinuxNode: oralinux1Release: 2.6.39-400.17.2.el6uek.x86_64Version: # 1 SMP Qua 13 março 12:31:05 PDT 2013Machine: nome x86_64Instance: rosca dev12cRedo montado pelo neste caso: 0 A Oracle número do processo: 11Unix processo pid: 24263, imagem: oracle @ oralinux1 (DBW0) *** 2013/07/19 13: 21: 21,458 *** ID CLIENTE :() 2013/07/19 13: 21: 21,458 * ** nome do serviço :() 2013/07/19 13: 21: 21,458 *** Nome do Módulo :() 2013/07/19 13: 21: 21,458 *** NOME AÇÃO :() 2013/07/19 13: 21: 21.4582013-07-19 13: 21: 21,458540: kjcipctxinit (): (pid | PSN) = (11 | 1): inicializado pctX andlinked 0x125d93038 na lista de processos

A diferença entre um aterro e um arquivo de rastreamento: A vestígio é um registro contínuo de um evento de problema. o lixeira é a one-time despejo de informações em um arquivo para um evento de problema. Como um administrador de base (DBA), você deve rever esses arquivos de texto para diagnosticar o que está ocorrendo.

Se um processo falha, um dump de memória pode ser criado no diretório cdump. Este é um arquivo de rastreamento binário do processo de memória e seu conteúdo no momento do acidente. Embora muitas pessoas consideram que estes sejam nº 147-mãos-off # 148- para um DBA a avaliar, que não é necessariamente o caso.

O comando Linux e UNIX cordas podem mostrar o texto de impressão de um arquivo binário. Se você optar por fazer o upload do arquivo de núcleo para qualquer organização de suporte, você pode querer revê-lo primeiro para combinações de usuário e senha, porque eles são por vezes presentes em texto claro nesses arquivos.

log Listener no Oracle 12c

Você pode ter que rastrear conexões no banco de dados através do ouvinte. Cada vez que uma ligação para a base de dados ocorre, esse evento (ou falha) é armazenado no log ouvinte.

Saber onde os logs são gerados ouvinte é importante para solução de problemas. Você pode encontrar o registro de ouvinte sob a árvore de diretórios ADR_BASE / diag / tnslsnr. (Neste exemplo, é /u01/app/oracle/diag/tnslsnr/oralinux1/listener/trace/listener.log).

Aqui está uma entrada de registo de exemplo:

-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)) * estabelecer * dev12c * 0

As informações-chave é o tempo, host e programa para as conexões de entrada.

Aqui é um usuário utilitário de software SAPO Dell ligação, provavelmente a partir de estação de trabalho de um usuário:

-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)) * estabelecer * 192.168.2.121 * 12514

Finalmente, um erro está ocorrendo:

TNS-12514: TNS: ouvinte não sabe atualmente de servicerequested no descritor de conexão

Você pode procurar o Transport Network Substrate (TNS) código de erro no log de ouvinte para ver o que os erros estão ocorrendo. Esta busca é útil porque vai (espero) ser muito mais ligações do que erros e, como os logs de alerta, o log de ouvinte pode crescer grandes.

menu