Superviser les ordres DDL en 11g

Pour être honnête, c’est Howard J. Rogers et ses articles à propos des nouveaux paramètres d’initialisation (1,2 et 3 pour l’instant !) qui inspirent ce post…

En général une application ne génère pas de DDL (LDD, si vous préférez ?); il s’agit le plus souvent d’opérations manuelles… Savoir ce qu’a fait un autre DBA, ou un développeur, sur une base de données en production peut-être très utile. Vous pouvez sans doute mettre en oeuvre l’audit mais ce n’est pas forcément des plus spontanés pour un DBA face à un problème ! Le paramètre enable_ddl_logging permet d’enregistrer les ordres DDL dans le fichier alert.log; voici une démonstration de cette fonctionnalité :

Connectez-vous DBA et exécutez la série de commandes ci-dessous :

alter system set enable_ddl_logging=TRUE;
alter table scott.emp add gcol number;
alter table scott.emp drop column gcol;
alter system set enable_ddl_logging=FALSE;

exit

Visualisez ensuite le fichier alert.log avec la commande ci-dessous :

adrci exec="show alert"

Les lignes qui suivent apparaissent dans le fichier alert.log :

ALTER SYSTEM SET enable_ddl_logging=TRUE SCOPE=BOTH;
alter table scott.emp add gcol number
alter table scott.emp drop column gcol
ALTER SYSTEM SET enable_ddl_logging=FALSE SCOPE=BOTH;