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.
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.
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.
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.
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.