We all know filling up databases is generally not a good idea as you can corrupt or lose data but there is another good reason as to why should not fill your ACS database.  Letting your ACS database fill up will not just affect ACS, it will affect both your Ops DB and Ops DW which in turn will have a negative impact on usability and performance within Operations Manager. 

At first glance you wouldn’t expect the ACS database to have anything to do with your Ops DB and DW, and directly it doesn’t but OpsMgr manages ACS and it is this that causes all the problems.  When the ACS database fills up, nothing more can be inserted into it and when this happens loads of AdtServer events are created in the OperationsManager log advising that data could not be inserted as the DB is full.  This itself isn’t a problem, however what is a problem is that there is a rule within Operations Manager (that is enabled by default) that collects all AdtServer events.

Due to the huge number of AdtServer events that get published into the log when the ACS DB runs out of space, this event collection rule gets very busy collecting all these event entries and placing them into the Ops DB and DW which then causes both these databases to excessively grow.  In the proof of concept I was working on I was only collecting ACS data from two servers when the ACS DB ran out of space and this generated so many AdtServer events that both the Ops DB and then DW ran out of space very quickly.  These databases were also set to autogrow but with over 1,000,000 events being collected over a week, this disk the database files were on ran out of space so this is definitely something to be aware of.

The rule that is the cause of this problem is, Microsoft Audit Collection Services Collector Event Collection Rule.

Merry Christmas all, David.