Pular para o conteúdo

Minerando com o LogMiner

Hoje de manhã tava dando uma olhada no blog do Portilho, e ele postou um script sobre o utilitário LogMiner da Oracle…  Fui testar no meu note e só deu erro!

O primeiro problema: Minha base não estava em archive mode.

Foi resolvido assim:

1º – Fechando o banco de dados

ALTER DATABASE CLOSE;

2º –  Alterando para modo archivelog

ALTER DATABASE ARCHIVELOG;....

3º- Derrubando a instância e subindo o banco em seguida:

SHUTDOWN;

STARTUP OPEN;

Depois, verifiquei os parâmetros de arquivamento através dos comandos:

ARCHIVE LOG LIST

SHOW PARAMETER ARCHIVE

Como o arquivamento automático estava ativado, procurei algum documento no meu note *.ARC … nada… Pelo o que eu me lembrava, no Oracle 10G o padrão era arquivar os redo logs no diretório flash_recovery_area …

É claro que não haveria nada! Tem que ter alternância de logs para haver arquivamento!

Para forçar a alternância:

ALTER SYSTEM SWITCH LOGFILE;

(poderia ter usado o comando ALTER SYSTEM  ARCHIVE LOG CURRENT)

Pronto! Depois disto, o Oracle criou a pasta ARCHIVELOG dentro da minha RECOVERY_AREA, e não é que lá estavam os preciosos *.ARC !!!

FINALMENTE O LOGMINER

Agora, com material para minerar, utilizei os scripts abaixo (como SYS):

EXEC  DBMS_LOGMNR.ADD_LOGFILE('C:\oracle\product\10.2.0\flash_recovery_area\DBABUNAI\ARCHIVELOG\2009_01_05\O1_MF_1_117_4P4RRM4N_.ARC');

EXEC  DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY);

SPOOL C:\LOGMINER_RESULT.TXT

SELECT SQL_REDO FROM V$LOGMNR_CONTENTS WHERE SQL_REDO IS NOT NULL ;

EXEC DBMS_LOGMNR.END_LOGMNR;

SPOOL OFF

Com isso, consegui visualizar em um arquivo de texto o conteúdo dos redo logs. Prometo que depois explicarei em detalhes como esta poderosa ferramenta funciona, ok!

lilian

lilian

Comentário(s) da Comunidade

  1. Avatar de Hilton

    Gostaria de saber se o passo de utilização do Logminer em especifico funciona sem o banco esta em modo arquive, gostaria de fazer esse teste no banco da minha empresa porém com o .arc de um cliente.

    No cliente o banco esta no modo arquive.

  2. Avatar de Lílian Barroso

    O LogMiner serve para formatar o conteúdo dos logs arquivados (archive). Por isso, em algum momento o banco deverá estar em archive mode, para gerar os arquivos *.arc.

    No seu caso, isto não será possível inicialmente devido ao DBID (número de identificação do banco de dados, que é único e gerado na instalação) do cliente, que é diferente do banco da sua empresa.

    Quando é executado o comando EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG o Oracle procura no dicionário de dados do banco uma “tradução” para o nome dos objetos, colunas, etc do banco. É neste ponto que dará erro, pois o conteúdo do dicionário de dados é diferente de banco para banco (aí está incluso o DBID).

    Eu fiz este teste aqui na empresa: peguei um archive do banco de testes e rodei na base do meu note. Veja o resultado:

    *
    ERRO na linha 1:
    ORA-01295: incompatibilidade de DB_ID entre o dicionário USE_ONLINE_CATALOG e
    os arquivos de log
    ORA-06512: em “SYS.DBMS_LOGMNR”, line 58
    ORA-06512: em line 1

    Qualquer coisa, um dos sites que usei como referência:

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/logminer.htm#sthref1882

    Até mais,
    Lílian

  3. Avatar de Denilson

    Parabens pelo seu BLOG, foi de muita importancia saber sobre o TIMESTEN e assim que tiver mais informações sobre, publique… pode ter certeza que estarei dando muita atenção.
    Forte abraço

    Denilson

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress