- Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 2 meses atrás por
David Siqueira.
-
AutorPosts
-
17 de dezembro de 2008 às 10:07 pm #84341
rhguimenes
ParticipanteGalera,
blz??
Qual a melhor forma de verificar o conteudo de *.redo?
verificar quais forams os comandos salvos em um determinado arquivo.
Tem como? Existe algum tutorial
Vlwssss
18 de dezembro de 2008 às 3:56 am #84350joseniz
ParticipanteApós o arquivamento do redo log, ou seja, a partir dos archived logs é possível visualizar seu conteúdo usando o logminer.
18 de dezembro de 2008 às 2:38 pm #84352rhguimenes
ParticipanteObrigadooo!!
Voce sabe algum tutorial bom?
Abs
18 de dezembro de 2008 às 3:06 pm #84353rhguimenes
ParticipanteDeixa eu reformular minha pergunta,
Voce conhece alguma GUI para trabalhar com o logminer?
Vlwss 🙂
18 de dezembro de 2008 às 4:16 pm #84355rhguimenes
Participanteteste
23 de dezembro de 2008 às 3:33 am #84401Ricardo Portilho Proni
ParticipanteBEGIN
DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => ‘/arch/archivelog.arc’, OPTIONS => DBMS_LOGMNR.NEW);
DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY);
END;
/SELECT * FROM V$LOGMNR_CONTENTS;
BEGIN
DBMS_LOGMNR.END_LOGMNR();
END;
/24 de dezembro de 2008 às 7:42 am #84434joseniz
ParticipanteNão lembro de nenhuma ferramena gráfica, talvez o Oracle Enterprise Manager (atualmente chamado de Database Grid Control) tenha essa função.
Antes de usar o logminer é necessário autorizar o RDBMS a acessar o diretório onde estão os archived logs (no init.ora, spfile.ora (para versão após o 8i) ou via ALTER SYSTEM): UTL_FILE_DIR = /arch
Antes de adicionar um archived log é necessário construir (build) o dicionário…
EXEC dbms_logmnr_d.build( dictionary_filename=>’/arch/dictionary.dic’, dictionary_location => ‘/arch’);
EXEC dbms_logmnr.add_logfile( logfilename => ‘/arch/database_1685.arc’, options => dbms_logmnr.NEW);
EXEC dbms_logmnr.add_logfile( logfilename => ‘/arch/database_1686.ARC’, options => dbms_logmnr.ADDFILE);
(podemos chamar a procedure add_logfile “n” vezes… uma por archived log)Opcionalmente podemos definir o intervalo por data ou por system change number:
alter session set nls_date_format = ‘YYYY-MM-DD HH24:MI:SS’;EXEC dbms_logmnr.start_logmnr( dictfilename => ‘/arch/dictionary.dic’, starttime => to_date(‘2003-06-23 08:25:00’, ‘YYYY-MM-DD HH24:MI:SS’));
ou
EXEC dbms_logmnr.start_logmnr( dictfilename => ‘/arch/dictionary.dic’, startscn => 288849030);select * from v$logmnr_contents;
EXEC dbms_logmnr.end_logmnr;
Exemplos com filtros (em v$logmnr_contents):
alter session set nls_date_format = ‘YYYY-MM-DD HH24:MI:SS’;
col seg_type_name for a5
col seg_owner for a8
col seg_name for a20
col operation for a8
col username for a8select substr(timestamp, 1, 16), seg_owner, seg_name, seg_type_name
, operation, session#, serial#, count(*)
from v$logmnr_contents
where operation in ( ‘UPDATE’, ‘INSERT’, ‘DELETE’ )
and seg_type_name = ‘TABLE’
group by substr(timestamp, 1, 16), seg_owner, seg_name, seg_type_name, operation, session#, serial#;select scn, timestamp
, seg_type_name, seg_owner, seg_name, operation
, session#, serial#, username, count(*)
from v$logmnr_contents
where operation in ( ‘UPDATE’, ‘INSERT’, ‘DELETE’, ‘INTERNAL’ )
and seg_type_name = ‘TABLE’
group by scn, timestamp, seg_type_name, seg_owner, seg_name, operation, session#, serial#, username;select seg_name, count(*)
from v$logmnr_contents
where seg_type_name = ‘TABLE’
and scn >= 288849044
and session# = 10 and serial# = 59379
group by seg_name;24 de dezembro de 2008 às 8:37 pm #84437Ricardo Portilho Proni
Participante“Antes de usar o logminer é necessário autorizar o RDBMS a acessar o diretório onde estão os archived logs (no init.ora, spfile.ora (para versão após o 8i) ou via ALTER SYSTEM): UTL_FILE_DIR = /arch”.
Não, isto é necessário para acessar o arquivo de dicionário, desnecessário do 8.1.5 em diante.
“Antes de adicionar um archived log é necessário construir (build) o dicionário…”
Desnecessário do 8.1.5 em diante, basta usar o exemplo que coloquei, com DICT_FROM_ONLINE_CATALOG.
27 de dezembro de 2008 às 5:02 am #84444joseniz
ParticipanteConfesso que tive que rever meus conceitos sobre o logminer, por não lembrar de ter visto a opção dict_from_online_catalog.
Segundo o metalink e os manuais “PL/SQL User’s Guide and Reference” das versões 8.1.7 e 9.x, esta opção surgiu apenas no Oracle 9i (e não no 8.1.5).
Essa opção é util para informações não anteriores a 7 (sete) dias, após esse tempo devido a reutilização de alguns blocos nos control files será necessário construir um dicionário de dados em um arquivo flat (conforme a solução que postei). Além disso essa opção é valida somente quando se esta visualizando os archived logs no próprio banco de dados que os gerou.
O número de dias de armazenamento das informações de archived logs nos arquivos de controle podem ser expandidos via parâmetro CONTROL_FILE_RECORD_KEEP_TIME.Após essa pesquisa refaço minhas respostas:
Sim, existe uma ferramenta gráfica para o logminer (nunca usei e não lembro de ter visto) ela é o LogMiner Viewer e esta disponível no Enterprise Manager.Sim, é possível analisar o conteúdo do redo logs a partir da versão 9i (usando a opção dict_from_redo_logs), com as seguintes restrições:
– somente a partir do Oracle 9i (inclusive)
– o banco de dados deve estar em archivedlog mode
– o parâmetro COMPATIBLE deve estar definido como 9.0.x
– o dicionário e os redo logs devem pertencer ao mesmo banco de dados
– durante esse processo comandos DDL não podem ser excutados- execute DBMS_LOGMNR_D.BUILD(options => dbms_logmnr_d.store_in_redo_logs);
- Use o procedimento DBMS_LOGMNR.ADD_LOGFILE para adicionar todos os redo logs a serem analisados
- Inicie a analise:
execute DBMS_LOGMNR.START_LOGMNR(options => dbms_logmnr.dict_from_redo_logs);
O LogMiner ira montar o dicionário a partir dos arquivos de redo via procedimento DBMS_LOGMNR.ADD_LOGFILE.
Analise seu conteudo usando a visão V$LOGMNR_LOGS.30 de dezembro de 2008 às 5:45 pm #84487David Siqueira
ParticipanteSegue um How-to :
Versão 9i :
http://www.oracle-base.com/articles/9i/ … ents9i.phpVersão 8i :
http://www.oracle-base.com/articles/8i/LogMiner.phpAbraço!!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.