I was presenting at the UKOUG event in Manchester on Thursday last week (21st April 2016), and one of the sessions I attended was Carl Dudley’s presentation of some New Features in 12c. The one that caught my eye in particular was “DDL Logging” because it’s a feature that has come up fairly frequently in the past on OTN and other Oracle forums.
So today I decided to write a brief note about DDL Logging – and did a quick search of my blog to see if I had mentioned it before: and I found this note that I wrote in January last year but never got around to publishing – DDL Logging is convenient, but doesn’t do the one thing that I really want it to do:
DDL Logging – 12c
One of the little new features that should be most welcome in 12c is the ability to capture all DDL executed against the database. All it takes is a simple command (if you haven’t set the relevant parameter in the parameter file):
alter system set enable_ddl_logging = true;
All subsequent DDL will be logged to two different places (in two formats)
Unfortunately the one thing I really wanted to see doesn’t appear – probably because it doesn’t really count as DDL – it’s the implicit DDL due to inserting into not-yet-existing partitions of an interval partitioned table.
Note: If you’re using a container database with pluggable databases then the DDL for all the pluggable databases goes into the same log file.
Update – Licensing
The following text in the Oracle 12c Database Licensing document has just been brought to my attention:
The init.ora parameter ENABLE_DDL_LOGGING is licensed as part of the Database Lifecycle Management Pack when set to TRUE. When set to TRUE, the database reports schema changes in real time into the database alert log under the message group schema_ddl. The default setting is FALSE.
The licensing document is also linked to from the 12c online html page for the parameter.
The 11g parameter definition makes no mention of licensing, and the 11g “New Features” manual don’t mention the feature at all, but the parameter does get a special mention in the 11g licensing document where it is described as being part of the Change Management Pack.
The use of the following init.ora parameter is licensed under Oracle Change Management Pack:
■ ENABLE_DDL_LOGGING: when set to TRUE (default: FALSE)