Ahh, customers love getting something for free. But like all good free things, they come to an end eventually. Let’s take a look at the SQL Express database that is bundled with the installation of vCenter. Many have relied on this as a good start to virtualization, but it is sometimes overlooked by management even during an enterprise deployment. A well planned virtual infrastructure deployment must include an enterprise database application. In my opinion, if your company is investing in vSphere Enterprise or Enterprise Plus, you should be investing in an enterprise database application that can handle an expanding business.
So SQL Express has some limitation to it. There is a 4GB database limit in size (this limit does not apply to the log file size), limited to one CPU (can be installed on a multi CPU system, but only 1 CPU is utilized), one GB memory limit for the buffer pool, you are limited to a starter schema – you cannot run the scheduled jobs via the provided sql scripts, VMware recommends a small deployment of 5 hosts and 50 virtual machines and more. There is no hard-coded limit on the number of users that can access the database, but the recourse limits can cause performance issues. Features like parallel query execution are not supported due to the limit of one processor. I am not trying to discourage anyone from using SQL express, it is a great product with tons of features, but it is intended for small or initial deployments. SQL Express does make it easy to scale up to an enterprise edition.
I am no DBA, but there are a ton of advantages to installing your vCenter DB on an enterprise database application. You can cluster your database with other SQL servers and it can be placed in a SQL farm. There are to many features to list within this post, so visit the Microsoft SQL site to learn more.
Can you virtualize the vCenter database? Most admins frown upon placing a key component of vCenter within it’s own infrastructure. This is similar to the argument over whether to virtualize the vCenter server itself. I would say, if you are virtualizing tier 1 application like MS Exchange or other SQL databases, why should the vCenter database be anymore special? So in my opinion, absolutely you can virtualize the vCenter database. There is nothing in the vSphere best practice guide that says you need the vCenter database on a physical server, but it would be nice for them to mention housing it within the virtual infrastructure. Remember to follow all VMware recommendation when building the SQL server for the vCenter database, it applies to physical and virtual machines. It is up to you to size your virtual infrastructure resources accordingly.
Keep in mind that according to the VMware compatibility matrix, vCenter also supports DB2 and Oracle databases. Also note that VMware update manager does not have DB2 listed as a supported database. When it comes to update manager, VMware recommends to separate this database from the vCenter database. So choose your database application wisely.