Transaction log for VIM_VCDB is full.
A week or two after an upgrade of vCenter to the 4.1 version I ended up with a vCenter server service down. I could not connect with my VI client any more, so I RDP to my vCenter server and I saw the vCenter server service was down. I tried to start the service manually, but it kept crashing.
I thought that there might be an issue with the migration I did last week, but a quick tour to the Windows event log showed me folowing error:
How to Fix the “Transaction log for database ‘VIM_VCDB’ is full” error?
I found this thread on the VMware communities. You'll need a SQL Server Management Studio Express.
Go and fire up SQL Server Management Studio Express and select the VIM_VCDB database, right click properties.
Then select the File Section on the right. There are 2 files which will appear on the right hand side. Just scroll a bit the horizontal bar to the right and you click the “….” button. With that you'll be able to configure the maximum size of those logs.
I just changed that to 2000, it's my homelab server and I'm running SQL Express default instance. After changing that value from the original 500 to 2000 the error was gone.
Enjoy…
Dejan says
Vladan, did you check if database is configured as “full recovery” mode? You can set it as simple recovery mode if you do full backup and you do not need point in time restore. Then the transacation log should not be that big.
Dejan
Vladan SEGET says
Dejan,
Can you point exactly where to do it? I think my readers would like to see it. You can contact me as well and I’ll update the post.
Thanks
Dejan says
Sure, no problem …
If I remembered correctly the full recovery mode was “default” on SQL 2000 and SQL 2005 and I belive that this is the same in SQL 2008. As I said in upper post based on how critical database is you can set so called recovery model. In this so called simple recovery model SQL Server will truncate the transaction log every time a checkpoint operation will occur.
Copy paste from SQL documentation:
“By using the simple recovery model, you can recover your database to the most recent backup of your database. By using the full recovery model or the bulk-logged recovery model, you can recover your database to the point when the failure occurred by restoring your database with the transaction log file backups. ”
“With the full recovery model, regular backups of the transaction log are used to prevent the transaction log file size from growing out of proportion to the database size. However, if the regular backups of the transaction log are not performed, the transaction log file grows to fill the disk, and you may not be able to perform any data modification operations on the SQL Server database”
You can change this setting of vCenter database with this simple steps:
1) Start SQL Server Management Studio and select vCenter database
2) Right click on this database and select Properties
3) DatabaseName dialog box, click Options
4) you will see so called recovery model list and “replace” full to “simple”
I hope I help just a little bit about this “problem”.
Vladan SEGET says
Great, I’m testing it.. I’ll update the post later…
Thanks…
Keith says
I had this same issue, and when i first set to 2GB i encountered a error saying my database was already greater. I had to set to 3GB. Once i set, and applied “the Dejan method” i could set the database size back to 1GB.
Hope it lasts! Thanks for the info.
Dejan says
@Keith: Nice to here, that you solved the “problem”.
Dejan
Ricardo says
Full recovery is default on SQL 2008 as well. I have created a new DB for VUM and after or during the 4.1 Update Manager installation it alerts you that it is in Full Recovery mode and it grows rapidly. So it is a reminder to change to Simple Recovery mode.
Dave says
Thanks. I just migrated to vcenter 4.1 and then wasted over an hour looking at vpxd logs. Finally I found this post. You saved me a lot of time, thanks!