Database corruptions on restore

Userlevel 1

Hi All, I have recurring intermittent issues with restoring VMs. Host machine is Windows 2016 Hyper-V

With VMs ranging from Windows 2012 r2 to 2016 server.

I am not getting any errors reported in the backup or restore process, but what i find is on starting up the VM a database might be corrupted. This can range from NTDS, DHCP, or single exchange databases.

I have noticed that if i do a restore of just the disk file, instead of a full VM restore that the VM will then work fine.

Backups are made to a set of rotated USB hard drives, however, issues still occur when the files are copied to a local hard drive.

We were running an old version of 9.5 but have since tried community editions of 11 and 12.

Anyone have any thoughts? Im guessing it might have something to do with replaying transaction logs?


Userlevel 7
Badge +17

How to do backup these VMs? Snapshot only? Or with application aware backup for the specific application?

Userlevel 7
Badge +21

As Joe mentioned if you are backing up anything database related you need to enable AAP for it to be backed up correctly for restore.  Example is Active Directory if not backed up properly then restore does not work properly to allow it to come up correctly.

Userlevel 1

Thanks for the replies.
Yep the application aware processing box is ticked.
(I havent tried the option for persistent guest agent)

But is it normal that when i restore the vhdx file from the same backup, that the database is not corrupted?
So to clarify what i’ve had to do is that i’ll do a full vm restore. Then start up the VMs and when i find something with a corrupted database i work out which drive its on do a “Restore VM Files….” and i restore the vhdx file and it works.

I was thinking it was some kind of corruption in the live VM, but its also happening to new freshly installed VMs which i was looking to migrate to.
The host server was also freshly installed a few months back.

Userlevel 7
Badge +21

If the restore works then it should not corrupt things. This might be a support case requirement to get the to bottom of things.