Quando a versão 12c foi lançada alguns anos atrás (visto que já estamos com a versão 23c batendo à porta), um recurso interessante que ela trouxe, foi a capacidade de confirgurarmos um log “exclusivo” para comandos DDL e o mais legal é que fazer isso é muito simples, basta apenas um comando, um simples “ALTER SYSTEM”. O parêmtro que você vai alterar neste caso é o ENABLE_DDL_LOGGING que é um parâmetro do tipo BOOLEAN e alterável dinamicamente, ou seja, você não precisa fazer um reboot na instância de banco de dados.

Como você pode ver na imagem acima, este parâmetro vem com o valor FALSE por default, mas como disse antes basta um simples “ALTER SYSTEM” para alterá-lo. Veja:

ALTER SYSTEM SET ENABLE_DDL_LOGGING=TRUE;

Pronto! Com essa alteração executada, agora todo e qualquer comando DDL que executado na instância será gravado em um arquivo de log. Agora vem a pergunda: “Onde fica esse arquivo de log?” e a resposta é simples:

O arquivo de log fica na ADR Home, mas se você não souber onde fica esse local, este select vai lhe trazer a resposta:

SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'ADR Home';

Agora podemos gerar alguns comandos DDL para executar um teste. Lembre-se de que comandos DDL (Data Definition Language) são básicamente CREATE, ALTER, DROP e TRUNCATE

Depois de executar esses testes, basta ir até o diretório encontrado no select acima, e encontrar o seu arquivo de log. Ele é um arquivo no formato “XML”. Repare que eu coloquei no exemplo um SELECT (que não é um DDL) e isso foi proposital para vermos que esse comando não vai para o arquivo de log.

Veja uma amostra de como fica o arquivo com os logs de DDL:

Um ponto que devemos prestar atenção é que este arquivo de log vai crescer conforme o uso do banco de dados, então lembre-se de criar um mecanismo que “limpe” este arquivo para evitar que seu filesystem tenha problemas de 100% de ocupação. Se você tomar cuidado com esse ponto, o resto é só alegria, agora você consegue ver todos os comandos DDL executados no seu banco de dados que pode lhe ajudar em vários aspectos como por exemplo auditoria ou até mesmo recuperar um objeto que inadvertidamente foi alterado ou sofreu um drop etc.

Por enquanto é isso, espero ter ajudado.

Forte abraço e até a próxima!

Deixe uma resposta

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

Deixe uma resposta

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