Moving your Veeam Backup & Replication Database
As you are probably are aware, in the beginning there are few VMs. People start out by virtualizing their low flyers, web servers, etc.. As time goes on there is something called VM sprawl which occurs. Suddenly there are many many VMs being spun up for no real reason at all. Tier 1 apps make there way into your vCenter, and things begin to grow exponentially. The problem with this, is that sometimes you have solutions installed from the beginning which were initially setup in the 'small' environment you had in the beginning. As is the case with my Veeam installation. When I first installed it, I just used the SQL express option that came with it. Now, since the environment has grown, and the stakes are higher when failures occur, I have the need to move this database from its' default SQL express to a full blown version of SQL that is managed by all of our monitoring and backup tools. Below is just how I did that…
First off, you will need to get your hands on a copy of SQL Server Management Studio. We will need this in order to perform the backups of the SQL express databases that Veeam has created. You can find 2005 here and 2008 here.
After you have installed this on your Veeam server just follow the steps below to move your database. Oh, and be sure to stop and / or disable any running jobs or jobs that may run while you are performing these actions. It's probably best to just disable all of them until you are done.
Stop Veeam Services
We will need to stop (and I disabled) all of the Veeam Services. Don't worry, when we get to re-installing the Veeam applications later the services will be re-enabled again. The reason for this is that we do not want any data flowing into our database as we are backing it up and moving it. You will need to stop the following services; Veeam Backup Enterprise Manager, Veeam Backup Service, Veeam Indexing Service, and the Veeam vPower NFS Service as shown below
Backup your VeeamBackup database
Once the services are stopped it's time to get going on backing up our Veeam databases. Veeam has 2 databases that it uses; VeeamBackup and VeeamBackupReporting. We will need to back both of these up in order to restore on our new SQL server. So, fire up SQL Server Management Studio and find the VeeamBackup database and follow the following
- the VeeamBackup database and select Tasks->Backup
- Make note of the location near the bottom where its' going to save the backup
- 'OK' and browse to the targeted location and copy the backup to your new SQL server.
You will need to repeat the bulleted points above for the VeeamBackupReporting database as well.
Restore on your new SQL server as the same name
Now that we have the backups on the new SQL Server we will need to restore them. The following is how I did
- Databases and Select Restore
- in the 'To Database' field we will want to type the name of our target database. I would just use the same name as it was before – 'VeeamBackup'
- Here we need to select 'From Device' and then 'Add' our backup file that we have just copied
- we have added our file, be sure to check the checkbox under the Restore heading.
- Check out the settings on the Options tab. Here is where you will want to check to be sure that the mdf and ldf files will restore to the locations that you want them to.
- When your happy, click 'OK'
Again, we need to repeat this for the VeeamBackupReporting database as well.
Depending on how had Veeam setup before, this may or may not need to be done, or it may need to be done in a different way. Essentially the user that you are going to run the Veeam installation as will need to have db_owner rights to both of these databases. So if you installed Veeam as a local user account previously, you might want to think about creating and using a domain account this time around, as now we have two servers that we need to authenticate on. However you decide, you will need to grant that user dbo rights as follows…
- Under Security->Logins, right click and select New Login. Browse to the windows user account that you want to use.
- In the 'User Mapping' section, select both VeeamBackup and VeeamBackupReporting and ensure that the db_owner role membership is checked off.
- Also in that section, assign the Default Schema for both of those databases to dbo.
Remove and Re-Install Veeam
There may be other ways to 're-point' Veeam to the new database server (registry hacks), but for all intensive purposes it takes literally less than 5 minutes to install Veeam so i found this the easiest route. Go into control panel and remove both Veeam Backup and Replication and the Veeam Enterprise Manager. Once done, re-install both of these applications. When prompted for your database location enter your desired information to point to the new SQL Server. You should be prompted that a Veeam server is already connected to the database, when asked this just select 'Yes' to connect this (the new installation) server to the database instead.
And it's that easy! You know have a more expandable database and the ability to utilize more RAM and CPU.
Just a note, I cannot guarantee that this will work for you…it worked great for my environment! If in doubt, open up a support call with Veeam and have them give you a hand or directions to do so… Also, if you are looking for a way to automate a backup of your Veeam Database, check out this post.