Unable to Restore System Databases Backup Due to Version Mismatch
You may receive an error as mentioned below while trying to restore a system database Master, Model or MSDB using an old backup file.
System.Data.SqlClient.SqlError: The backup of the system database on the device D:\msdb\msdb_backup.bak
cannot be restored because it was created by a different version of the server (10.50.2550) than this server (10.50.6000). (Microsoft.SqlServer.Smo)
This error occurs because, it is not allowed to restore a system databases using backup file of the same system database whose backup was performed while it was on a different build.
Example: If you have SQL Server 2012 SP2 instance and if you try to restore an System database while was of version SP1, then it will not allow you to restore as it requires the backup of same build.
In the above error, the MSDB backup was performed while the SQL Server instance was on build 10.50.2550 and they were trying to restore it on the SQL Server instance which was on build 10.50.6000. This kind of scenario happens when there are no regular backups being performed on the SQL Server instance and patches were applied to the SQL instance and some bad day the database got corrupted and now you cannot restore the backup anymore which was performed long back. Another situation when this issue happens could be that you performed backup on another SQL Server instance and using it to restore on another SQL Server instance.
The workarounds to this problem include, bring the SQL Server instance on to same build as that of the backup file, so that you could perform the system database restore. Other option is to restore the system databases on another test server which has SQL Server on same build and then extract the required data and create the same on which ever server required. You may also try to restore the database an user database and then extract the required data from it.
This problem is only specific to System databases, but not for User databases. We can perform user database backup on SQL Server 2014 SP1 and use it to restore on SQL Server 2014 RTM build.
This is applicable on below versions of SQL Server
SQL Server 2005
SQL Server 2008 R2
SQL Server 2012
SQL Server 2014
Hope this was helpful.
In-Depth Blogs on SQL Server, Information about SQL Server Conferences and Events, SQL Server Frequently asked questions, SQL Server Trainings.