I need to migrate approximately 10 SQL Server databases totalling 400 GB from one VM to another. Some databases are in simple recovery mode, while others are in full. Below is my general plan:
A day before the migration take a full backup of all databases on old VM and restore them on new VM in NORECOVERY mode
On day of migration I will do this in order:
- ask application team to turn applications off
- bring dbs to single user mode or restricted mode in old VM
- perform checkpoint command on all user databases in old VM
- take cumulative backup of all user databases in old VM
- once cumulative backups are done, bring dbs in old VM to offline mode
- restore cumulative backups in new VM WITH RECOVERY
- Ask application team to turn apps on, pointing to new VM
My question is, in this workflow, is there any chance I might miss some transactions in the transaction log files? Since some databases are in simple recovery mode and others in full, im trying to avoid getting the transaction logs involved in the migration process at all.
Im hoping that by asking the application team to turn the apps off + bringing dbs to single user mode or restricted mode + doing checkpoint operations there is a zero % chance of missing any transaction despite using cumulative backups instead of log backups in the migration process.
Thanks for your input ahead of time
DIFFERENTIAL
backups? Why would you do this rather than a tail-log backup, which automatically sets the database offline? See eg How to restore transactions after full backup which might be a duplicate of this