Pular para o conteúdo

Oracle LogMiner: Descubra Como Extrair Estatísticas Valiosas do Seu Banco de Dados

Garimpando com Oracle LogMiner: Estatísticas

Dados da mineração!

Com o Oracle LogMiner, é possível minerar os registros e revelar operações, gerando informações úteis e monitoramento rico!

Neste artigo, exploramos juntos essa poderosa ferramenta, passo a passo, de forma prática e didática. Se você quer dominar essa técnica e transformar logs em insights valiosos, clique no link e venha garimpar conhecimento!

O LogMiner é uma ferramenta nativa do Oracle usada para consultar o conteúdo dos arquivos de redo log.

Ele é muito útil para:

  • Auditar alterações realizadas nas tabelas (inserts, updates, deletes),
  • Recuperar dados perdidos (em alguns casos),
  • Monitorar atividades suspeitas ou indesejadas.

Contagem de Operações por Tipo

O objetivo é identificar quantas operações de INSERT, UPDATE, DELETE e COMMIT foram realizadas em um determinado período.

image
CONTAGEM DE OPERAÇÕES POR TIPO
SQL
SELECT operation, COUNT(*) AS total_operacoes
FROM V$LOGMNR_CONTENTS
WHERE timestamp BETWEEN TO_DATE('2025-04-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
                    AND TO_DATE('2025-04-07 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
GROUP BY operation
ORDER BY total_operacoes DESC;

Esta estatística ajuda a identificar a carga de DML em horários críticos e pode ser usada para avaliar a necessidade de ajustes de performance ou para detectar atividades anormais.

Operações por Tabela

Saber quais tabelas estão sendo mais alteradas (inserções, atualizações ou deleções).

image 2
OPERAÇÕES POR TABELA
SQL
SELECT seg_name, operation, COUNT(*) AS total_operacoes
FROM V$LOGMNR_CONTENTS
WHERE seg_name IS NOT NULL
GROUP BY seg_name, operation
ORDER BY seg_name, total_operacoes DESC;

Utilizado para identificar tabelas críticas que estão sujeitas a alto volume de alterações, o que pode indicar a necessidade de otimizações, reestruturações ou mesmo revisão dos processos de negócios.

Tempo de Execução das Transações

Calcular o tempo de duração de transações para identificar transações longas que podem afetar a performance.

image 4
TEMPO DE EXECUÇÃO DAS TRANSAÇÕES
SQL
WITH transacoes AS (
  SELECT xidusn || '.' || xidslT || '.' || xidsqn AS transacao,
         MIN(timestamp) AS inicio_transacao,
         MAX(timestamp) AS fim_transacao
  FROM V$LOGMNR_CONTENTS
  WHERE operation IN ('INSERT', 'UPDATE', 'DELETE')
  GROUP BY xidusn, xidslT, xidsqn
)
SELECT transacao,
       inicio_transacao,
       fim_transacao,
       (fim_transacao - inicio_transacao) * 24 * 60 AS duracao_em_minutos
FROM transacoes
ORDER BY duracao_em_minutos DESC;

Transações com tempo de execução elevado podem ser analisadas para identificar gargalos, bloqueios ou problemas de performance, auxiliando na melhoria do ambiente.

Operações por Usuário

Objetivo

Monitorar qual usuário está executando o maior número de operações DML, o que pode ajudar na auditoria e na identificação de padrões de uso.

image 6
OPERAÇÕES POR USUÁRIO
SQL
SELECT username AS usuario, COUNT(*) AS total_operacoes
FROM V$LOGMNR_CONTENTS
GROUP BY username
ORDER BY total_operacoes DESC;

Identificar usuários com alto volume de atividades pode auxiliar no monitoramento de acessos e na detecção de comportamentos suspeitos ou inadequados.

Distribuição das Transações por Data/Hora

Observar em quais períodos do dia há maior atividade no banco, contribuindo para a gestão de recursos e escalabilidade.

image 8
DISTRIBUIÇÃO DAS TRANSAÇÕES POR DATA HORA
SQL
SELECT TO_CHAR(timestamp, 'HH24') AS hora,
       COUNT(*) AS total_operacoes
FROM V$LOGMNR_CONTENTS
GROUP BY TO_CHAR(timestamp, 'HH24')
ORDER BY hora;

Aplicação Prática

Esse tipo de estatística é útil para planejar janelas de manutenção ou para ajustar a alocação de recursos de acordo com os períodos de pico.

Conclusão

Esses exemplos demonstram como o LogMiner pode ser uma ferramenta poderosa não só para auditoria, mas também para gerar estatísticas operacionais e de performance, proporcionando insights valiosos para o DBA. Ao incluir esses exemplos no seu artigo, você evidencia como utilizar o LogMiner para monitorar a atividade do banco, identificar gargalos e até detectar possíveis atividades suspeitas. Se precisar de mais exemplos ou detalhes, estou à disposição para ajudar!

Tercio Haring

Tercio Haring

Tércio Haring é pai do Max e um entusiasta incansável de TI. Sua paixão pelo próximo o levou a ser socorrista, sempre pronto para ajudar. No universo da tecnologia, seu objetivo vai além de simplesmente compartilhar conhecimento; ele busca manter sua mente conectada ao futuro e abraçar os desafios como oportunidades disfarçadas. Escreve com o objetivo de tornar o complexo mundo dos bancos de dados mais acessível e compreensível, sempre com um toque de humor para tornar a jornada mais leve e divertida. Se você procura insights valiosos, explicações claras e, claro, algumas boas risadas, Tércio é a pessoa certa para te guiar. Junte-se a ele para explorar, aprender e crescer nesse vasto e fascinante universo Oracle!

Comentário(s) da Comunidade

  1. Avatar photo

    Olá Geno,
    Agradeço muito pelo feedback! Sim, os testes que estou realizando são na minha máquina. Tenho um laboratório montado em uma VM com o banco na versão 19C, e ele tem sido fundamental para colocar em prática o que aprendo. Estou focado na certificação 1Z0-083, e esse ambiente me ajuda bastante.
    Se você ainda não tem um laboratório, eu realmente recomendo! É uma ótima maneira de experimentar e aprender.
    Abraços!

Prestigie o autor e deixe o seu 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