Is ADR Really Automatic?

Posted in: Technical Track

Oracle has consolidated the diagnostic information of database under one umbrella called as Automatic Diagnostic Repository (ADR). This repository is XML-based and that opens up new vistas for future Oracle diagnostic tools to manipulate the hierarchical data.

The beauty of ADR is that it cleanly separates out the diagnostic data churned out by different components, like RDBMS and ASM instances have their own corresponding ADR homes. Each ADR home then divides different types of traces and dumps in their corresponding and familiar sub-directories like alert file in alert directory and trace files from background processes, SQL traces etc in trace directories. All these homes corresponds to one ADR base which is set by initialization parameter DIAGNOSTIC_DEST.

ADR also maintains the client side tracing and creates it’s separate home under the same base. If the user accessing the database hasn’t got rights on the ADR base at the OS level, then the trace files are generated in that user’s home directory. In order to disable that give write rights to that user on ADR base at OS level, and if you want to disable the ADR client side tracing, put DIAG_ADR_ENABLED=OFF in sqlnet.ora file at the server.

There is much more the ADR and it needs improvement in many corners like respecting the automatic rotation of files through short and long policies, giving  more control over generation of files, purging and rotation of all the trace files including legacy alert and listener log files, and also containing the huge number of files generated. These problems with ADR doesn’t justify the word ‘Automatic’ in ADR’s name IMHO.



Want to talk with an expert? Schedule a call with our team to get the conversation started.

About the Author

I have been in love with Oracle blogging since 2007. This blogging, coupled with extensive participation in Oracle forums, plus Oracle related speaking engagements, various Oracle certifications, teaching, and working in the trenches with Oracle technologies has enabled me to receive the Oracle ACE award. I was the first ever Pakistani to get that award. From Oracle Open World SF to Foresight 20:20 Perth. I have been expressing my love for Exadata. For the last few years, I am loving the data at Pythian, and proudly writing their log buffer carnivals.

2 Comments. Leave new

Well put Fahd. Managing the ADR is far from “automatic” and takes some effort to do it properly. The adrci is pretty powerful and with the purge parameter in batch mode, it can be added to existing file clean up scripts. Though, I predict that Oracle 12 will have this repository “clean up” highly configurable and will be more self managed. I think the term “automatic” really comes into play when you see what goes on behind the scenes when the rdbms experiences critical errors. Previous to 11g if you received a strange ORA-00600/ORA-07445 you’d have to go through the Metalink dance grabbing files, confirming system parameters, or worse, forced to run RDA and then have to start the whole process all over again. In 11g, with every “incident” Oracle dumps trace information, runs diagnostic checks, and then neatly associates all this data to the incident “automatically” which can later be packaged and sent to Oracle. For DBAs this is very nice, how the other software stacks tracing to the ADR follow suit will remain to be seen.


I’m trying to find out if any shop actually disabled ADR, and ideally even compared performance before and after doing that. Our shop never bothers to use adrci to do anything and considers the trm and xml files related to ADR unnecessary garbage. Do you happen to know any shop that permanently disabled ADR?


Leave a Reply

Your email address will not be published. Required fields are marked *