Based on the current trend of moving to the cloud platform, there have been many new learnings for me. One of my clients migrated to SQL Azure Managed Instance and contacted me for an interesting situation. In this blog, I am going to share my findings of the error message “The database was backed up on a server running version 15.00.2000. That version is incompatible with this server, which is running version 15.00.2070.” which came when they wanted to restore a backup taken from Managed Instance to a SQL Server 2019 in an on-premise environment. Let us learn how we can resolve the Restore Error.
Below is the error message which they shared with me.
Msg 3169, Level 16, State 1, Line 7
The database was backed up on a server running version 15.00.2000. That version is incompatible with this server, which is running version 15.00.2070. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.
Msg 3013, Level 16, State 1, Line 7
RESTORE DATABASE is terminating abnormally.
That error came as a surprise to me because the major version number is the same on both sides. Notice the version 15.00.2000 and 15.00.2070. Since both are 15.xx.xxxx (SQL Server 2019) it should have worked.
Later, I did some more search and learned more about SQL Server Azure Managed Instance. Here is the relevant information from Microsoft articles which mentions this as a limitation. (FAQ). One of the FAQ is as below:
- How can I move a database from managed instance back to SQL Server or Azure SQL Database?
A. (…removed some text…) Native COPY_ONLY backups taken from managed instance cannot be restored to SQL Server because the managed instance has a higher database version compared to SQL Server.
Another link which talks about the same limitation marked as Important.
A database backup created on a managed instance can only be restored on another managed instance. It cannot be restored to a SQL Server on-premises instance (similar to the way that a backup of a SQL Server 2016 database cannot be restored to a SQL Server 2012 instance).
Due to this limitation, we went ahead with bacpac method.
Reference: Pinal Dave (https://blog.sqlauthority.com)