Pular para o conteúdo

Como Configurar a Retenção do UNDO no Oracle para Otimizar a Eficiência e Integridade do Banco de Dados

Retenção Garantida: Um Voo Sem Atrasos

No cenário dinâmico da administração de bancos de dados, a retenção adequada das informações de transações é um aspecto vital para manter a operação suave e sem interrupções. A “Retenção do Undo” é uma configuração que pode fazer toda a diferença, permitindo que os DBAs controlem o período em que as transações não finalizadas são mantidas no sistema.

Neste artigo, discutiremos como utilizar a visualização V$UNDOSTAT para analisar o tempo de retenção ideal e implementar estratégias que otimizem o desempenho do seu banco de dados Oracle. Ao final, você terá uma compreensão clara de como as decisões sobre a Retenção do Undo podem influenciar não apenas a integridade dos dados, mas também a eficiência operacional geral do seu ambiente de banco de dados.

Gostaria de chamar a atenção para a consulta apresentada abaixo. Ela armazena informações sobre o tempo de retenção ideal para cada hora das atividades do banco de dados nos últimos dias. Os dados estão refletindo apenas o dia 15.

image 26
V$UNDOSTAT

Quando falamos sobre a retenção do UNDO no Oracle Database, podemos pensar em um aeroporto bem organizado. Imagine que cada transação não finalizada é como um passageiro aguardando para embarcar. Assim como um aeroporto garante que todos os passageiros estejam prontos e disponíveis até o momento do embarque, a retenção do UNDO assegura que as informações necessárias para finalizar transações permaneçam acessíveis.

A “retention guarantee” atua como o sistema de check-in de um aeroporto, que assegura que os passageiros não serão deixados para trás. Se o banco de dados estiver configurado corretamente, ele poderá suportar operações contínuas, garantindo a integridade dos dados e evitando interrupções.

Assim, ao otimizar a retenção do UNDO, você garante que seu ambiente de banco de dados opere com a mesma eficiência de um aeroporto onde os voos decolam pontualmente.

Se repararem, ele nos mostra claramente a retenção de dados, o que é crucial para nossa análise de desempenho. Vamos dar uma olhada nos números e entender como isso pode nos ajudar a otimizar nossas operações.

Podemos pensar em um aeroporto bem organizado. Imagine que cada transação não finalizada é como um passageiro aguardando para embarcar. Assim como um aeroporto que todos os passageiros precisam fazer o checkin  Esse é o seu “tempo de revisão”, onde se e garanta que tudo fique em ordem.

No banco de dados, o tuned_undoretention funciona como esse tempo de revisão. Ele indica quanto tempo as “aeronaves” (transações não finalizadas) devem ser mantidas disponíveis para correção. O comando acima mostra esse tempo de retenção para as últimas transações.

Com um valor de 900 segundos (ou 15 minutos), você diz: “Quero redefinir meu acento, deciso despachar minha bagagem de mão”. As linhas que você vê representam momentos em que pode decidir reorganizar algo.

Atualmente, o período de retenção está configurado para 900 segundos, um valor pré determinado pelo banco de dados. Esse ajuste é conforme as necessidades do sistema.

O tamanho da tablespace também é importante. A configuração atual é reduzida e, se você adicionar mais dois datafiles, isso pode mudar o comportamento do banco de dados.

Sabendo que é possível vamos realizar alguns ajustes nestes parâmetros.

image 28
ALTER SYSTEM SET UNDO_RETENTION = 2400
SQL
ALTER SYSTEM SET UNDO_RETENTION = 2400;

Feita a alteração de 900 para 2400, podemos passar para o próximo passo, que visualizar qual é o estado atual do banco.

image 29
SELECT TABLESPACE_NAME, RETENTION FROM DBA_TABLESPACES
SQL
SELECT TABLESPACE_NAME, RETENTION FROM DBA_TABLESPACES WHERE CONTENTS='UNDO';

Esse comando consulta a visualização DBA_TABLESPACES para identificar os tablespaces do tipo UNDO no banco de dados e suas configurações de retenção.

NOGUARANTEE: Imagine o porão de cargas de um avião, onde é feita uma relação de todos os passageiros para estimar o número de bagagens que será despachado. No entanto, devido a um regulamento rígido, se algum passageiro apresentar uma bagagem extra, será impedido de despachá-la, já que a estimativa de bagagens não poderá acomodar essa bagagem adicional. À primeira vista, isso pode parecer estranho, mas essa regra rígida garante que todos os passageiros que não têm bagagens extras tenham espaço garantido para despachar suas malas.

Essa abordagem é útil para evitar o desperdício de espaço, mas significa que você não pode contar com a disponibilidade de todos os registros anteriores.

Aqui no laboratório, vou usar minha liberdade para alterar este parâmetro para GUARANTEE.

image 31
ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE
SQL
ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE;

A questão da garantia de retenção do UNDO varia significativamente de ambiente para ambiente. Se você possui um sistema bem dimensionado, com o tempo de retenção ajustado adequadamente, a probabilidade de enfrentar problemas relacionados ao LOCK de UNDO diminui consideravelmente, permitindo que a garantia de retenção seja aplicada sem preocupações.

Por outro lado, se sua TABLESPACE ainda não estiver otimizada durante o processo de ajuste do UNDO, o mais recomendável é não garantir a retenção. Essa abordagem evita que transações falhem devido à falta de espaço ou ao excesso de concorrência.

Assim, a decisão de garantir ou não a retenção do UNDO deve ser cuidadosamente avaliada, considerando as particularidades do ambiente e as necessidades específicas do negócio.

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 5 / 5. Contagem de votos: 3

Sem votos ! Seja o primeiro a classificar !

Marcações:

Deixe um comentário

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

plugins premium WordPress