How to migrate from Azure SQL Database to Azure SQL Managed Instance

Georg Sieber 5 Reputation points
2026-02-03T10:42:55.42+00:00

We have a around 100 databases in Azure SQL database on one logical sql server in one elastic pool. The database range from ~5GB to 400GB in size.

We want to migrate all databases to Azure SQL Managed Instance due to reasons like better cross-database support, SQL Server agent etc.

While there is a ton of resources how to migrate eg. from on-prem SQL server to Azure SQL, there is nothing apart from (dump to bacpac and import again).

What is the recommended way to perform such a migration?

Azure SQL Database
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Pilladi Padma Sai Manisha 3,875 Reputation points Microsoft External Staff Moderator
    2026-02-03T11:09:21.69+00:00

    Hi Georg Sieber,
    Thankyou for reaching microsoft Q&A!
    Moving from Azure SQL Database in an elastic pool to Azure SQL Managed Instance is a pretty common scenario for customers who need things like cross‑database queries, SQL Server Agent, or other instance‑level capabilities that aren’t available in Azure SQL Database. The challenge is that the two services run on different architectures, so the usual migration methods people use elsewhere native backup and restore, log shipping, transactional replication, Always On, or even most Azure Database Migration Service options aren’t supported for this specific path.

    Because of that, the supported approach for moving both schema and data from Azure SQL Database to Managed Instance is still BACPAC. In practice, this means exporting each database to a BACPAC file using SqlPackage or the Data‑tier Application wizard in SSMS. For larger databases, teams typically run SqlPackage from an Azure VM or any host with good local storage so the export is faster, and they automate or parallelize the exports to handle dozens of databases efficiently.

    Once the BACPACs are generated, they’re imported into the Managed Instance as new databases. After the imports finish, you recreate your logins, permissions, SQL Agent jobs, and whatever other server‑level objects you need. At that point, the only remaining step is to update your application connection strings to point to Managed Instance instead of the old Azure SQL Database server.

    Since BACPAC is a point‑in‑time export, there’s going to be a downtime window during the final export and import where the source databases shouldn’t be modified. Most customers handle this by scripting the whole process, doing test runs on a smaller subset of databases, and scheduling a maintenance window for the full cutover especially in cases like yours with around 100 databases ranging from a few gigabytes to a few hundred.

    If reducing downtime even further is a requirement, you can build something more custom using tools like Azure Data Factory or SSIS to pre‑copy data and then only migrate the final deltas during cutover. This doesn’t replace the BACPAC process, but it helps in scenarios where the application can be adapted to support that sort of staged migration.

    Overall, as of today, the supported and reliable method to migrate from Azure SQL Database to Azure SQL Managed Instance is BACPAC export and import, combined with automation and staged testing to manage scale and downtime.
    References:
    Migrate to Azure SQL Managed Instance

    Azure Database Migration Service

    How to migrate Azure SQL Database to Azure SQL Managed Instanc


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.