The transaction log for database ‘VIM_VCDB’ is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

Recently I have gotten this error on a couple of vCenter servers I manage, due to them using SQL Express installs for the VCDB and then having a large number of deletes occur on events & tasks. The reason for the message is that by default the SQL express DB log file is limited to 500MB and the deletes fill the log up. Now all the “fixes” I’ve found by searching for the error in the title simply say “change the limit” so it doesn’t fill up. Which I don’t really like as a fix as it’s a workaround, especially as the log file on one of the servers had to grow to around 15GB, which is insane for a 2GB DB.

Instead I started looking for a way to get this back under control and in the end I had to search for the database being full, which lead me to http://bohemiangrove.co.uk/vmware-vcenter-server-5-5-database-is-full/

Now most of the article was irrelevant to me as I had already performed the tasks purging the DB of old events. However, there is a command at the end of the article:

dbcc shrinkdatabase ( VIM VCDB , 5 )

Now I’m not a SQL admin so I don’t know what sort of affects this might have on the DB (negative or otherwise) but after backing up the DB I ran the command and the DB & Log file both shrank and haven’t grown massively since.