First page of Microsoft's 100,000-partner directory, sorted by responsiveness Microsoft Solutions Partner — Security, Modern Work, Infrastructure, App Innovation Microsoft partner since 2006 1,100+ organizations under management
Home/Services/SQL Server Migration to Azure SQL Managed Instance
Migration

SQL Server Migration to Azure SQL Managed Instance

A migration of production SQL Server instances to Azure SQL Managed Instance — the compatibility gaps found and priced before you commit to the platform, instance-scoped objects converted rather than lost, and a cutover that is a failover measured in minutes rather than a restore proportional to your data. Quoted fixed in writing from the assessment, from $3,900; the listed three weeks run from kickoff to the end of hypercare and cover a single source instance whose remediation the assessment has sized to fit the window. Remediation that does not fit is quoted separately and completed before the window opens; multi-instance estates are quoted separately.

Timeline 3 weeksService owner Mike MackeyMicrosoft AzureAzure SQL Managed InstanceSQL Server

What this engagement is

Managed Instance is the right target for most SQL Server workloads that do not need OS-level access. You keep cross-database queries, SQL Agent, Database Mail, Service Broker within the instance, and instance-scoped collation. Microsoft takes over patching, backups, and high availability — and since the SQL Server 2025 update policy for Managed Instance reached general availability in March 2026, you can choose whether the instance tracks the latest engine continuously or stays aligned with a specific SQL Server release. For a lot of estates it removes an entire category of operational work, and it removes the end-of-support calendar with it. What it does not give you is a byte-for-byte SQL Server. FILESTREAM and FileTable are gone. `xp_cmdshell` is gone. SQL Agent exists but not every job subsystem does. Linked servers reach other SQL platforms only. CLR assemblies must be SAFE. Instance collation and time zone are fixed at creation — get either wrong and the only remedy is rebuilding the instance and migrating again. Every one of those is discoverable in advance. That is what the assessment is for, and it is why this engagement will not start without one. The failure mode we are engineered against is a client who is halfway through a Managed Instance migration when someone finds the FileTable. Our default method is the Managed Instance link, which uses distributed availability group technology to keep the Managed Instance continuously synchronised with your source SQL Server, then fails over on your schedule. Cutover is a failover, not a restore, so the window is minutes rather than proportional to your data volume. Microsoft currently supports the link from SQL Server 2016 (Service Pack 3 with the Azure Connect pack) through SQL Server 2025, on Standard, Enterprise, and Developer editions, with a minimum cumulative update per version; the assessment checks your build against Microsoft's current matrix. Where the source version or configuration rules the link out, we use the Log Replay Service — Microsoft's log-shipping-based path fed from backups staged in Azure Blob Storage — or a native restore from URL, and the report states which and why.

Success criteria

Sign-off requires all eight, each with evidence attached to the closeout report.

01Cutover downtime within the quoted window — timestamped cutover log, from write freeze to application smoke-test pass.
02Zero data loss — Managed Instance link failover completed with the source in synchronised state and zero pending log; per-table row counts and `HASHBYTES` aggregates reconciled between source-at-freeze and target; `sys.objects` counts matched.
03Database integrity — `DBCC CHECKDB WITH DATA_PURITY` returns clean on every migrated database on the target.
04Nothing orphaned — zero orphaned users; every in-scope login present and able to authenticate; permissions reconciled against the source.
05Instance-scoped objects present — every in-scope SQL Agent job, Database Mail profile, linked server, and server-level setting either migrated and executing, or explicitly listed as not migratable with the agreed replacement in place.
06No performance regression — p95 duration of ten agreed business-critical queries within the tolerance agreed at kickoff (our default is 20%) of the pre-migration Query Store baseline, on the agreed service tier.
07Collation and time zone correct — instance collation and time zone match the source; verified before any data is loaded, because neither can be changed afterwards.
08Reversible within the fallback period — rollback runbook validated during the dry run; written abort criteria agreed at kickoff; source retained read-only.

What you receive

Cutover runbook — every step in order, with expected duration, owner, and the go/no-go check that gates it.
Rollback runbook — the reverse path, with abort criteria, validated in the dry run, including the honest limits described under Limitations.
Compatibility remediation record — every gap found, what was done about it, and what was consciously accepted.
Validation evidence pack — the eight criteria above, populated with actual output.
As-built configuration document — service tier and vCores, storage, collation, time zone, update policy, subnet and networking, backup retention, maintenance window, authentication model.
Instance-scoped object inventory — Agent jobs and their converted form, linked servers, Database Mail, logins and permissions.
Dependency and connection-string inventory — what connects to what, and what changed at cutover.
Hypercare from cutover to the end of the three-week window, with a named engineer — the exact dates are stated in your quote.
Project closeout report — final status, outstanding issues, final budget.

How the work unfolds

Kickoff and design (week 1)

Confirm the assessment findings still hold. Lock the target service tier, vCore count, update policy, collation, and time zone — the last two are irreversible after provisioning and are treated as a formal written sign-off item, not an assumption. Agree the cutover window, the fallback period, the ten queries forming the performance baseline, and written abort criteria. Confirm that any remediation the assessment placed ahead of the window is complete.

Target provisioning and network preparation (week 1)

Provision the Managed Instance into a correctly configured, delegated subnet with the required route table and network security group rules, or validate the one you have built. Provisioning a Managed Instance takes hours and can take considerably longer for the first instance in a subnet — it is started on day one rather than discovered as a delay later. Connectivity from the source site is verified end to end.

Compatibility remediation (weeks 1–2)

Address the gaps the assessment identified, to the effort it quoted and sized to fit the window: convert or replace unsupported SQL Agent job subsystems, replace `xp_cmdshell` calls inside stored procedures, re-point linked servers, resolve CLR assembly permission sets, and adapt `BULK INSERT` and `OPENROWSET` calls to Blob Storage sources. Work the assessment found that does not fit the window — application code changes, replacing FILESTREAM or FileTable usage, or moving the authentication model to Microsoft Entra ID across your applications — is quoted as a separate remediation phase and completed before this window opens, so the three weeks are never silently stretched.

Link establishment and seeding (weeks 1–2)

Establish the Managed Instance link from the source, seed the databases, and monitor the synchronised state while the source keeps running normally. Where the link is not the chosen method, establish the Log Replay Service chain or the backup-to-URL restore sequence instead.

Dry run (week 2)

The full cutover executed against a test target: failover, login and permission remapping, Agent job enablement, application smoke test, reconciliation queries — and then the rollback. Timings from the dry run become the quoted cutover window, and the go/no-go for the week-three cutover is taken on its results. Surprises happen here, in business hours, not at 2am.

Cutover (week 3)

Revoke application logins → confirm synchronised state with zero pending log → failover → enable Agent jobs and linked servers → connection-string or DNS switch → application smoke test → reconciliation evidence captured. Go/no-go gate before the irreversible step.

Validate, hypercare, and hand over (week 3)

`DBCC CHECKDB` on the target. Query Store comparison against the baseline, including confirming the chosen service tier actually sustains the workload. Evidence pack assembled. Source retained read-only for the fallback period. Hypercare runs from cutover to the end of the three-week window with a named engineer, then the closeout report is issued.

Prerequisites

A completed SQL Server to Azure Migration Assessment, or an equivalent findings document we can validate. This is mandatory. Managed Instance has a compatibility surface that cannot be responsibly guessed at, and we do not issue fixed prices against unassessed environments.
An active Azure subscription, with the Managed Instance service tier, vCore count, and update policy agreed.
A dedicated virtual network subnet meeting Microsoft's Managed Instance requirements — delegated to the Managed Instance service, correctly sized, with the required route table and network security group configuration, and not shared with other resource types. We build it where the quote includes it; if your Azure foundation does not exist yet, that is the Azure Landing Zone implementation.
Network connectivity from the source site to that subnet — site-to-site VPN or ExpressRoute, established and throughput-tested.
Collation and time zone decided and signed off in writing, matching the source instance. Neither can be changed after provisioning.
`sysadmin` on the source SQL Server instance and owner-equivalent rights on the target Managed Instance — granted for the engagement and removed at closeout.
Source SQL Server at a version and build supported by the chosen migration method, confirmed by the assessment against Microsoft's current matrix.
Sufficient storage for backup or seeding staging, and an Azure storage account where Blob-staged methods are used.
A verified, restorable current backup of the source databases before work begins.
Application owners available for the dry-run smoke test and the cutover smoke test.
Authority to change DNS records or application connection strings at cutover, and a named person who can execute that change.
An agreed maintenance window and an agreed fallback period during which the source stays available.

Who does what

IT Partner

  • Select and implement the migration method against the assessment findings.
  • Provision the Managed Instance and configure the subnet, or validate them against specification where you built them.
  • Perform the compatibility remediation the assessment quoted and sized to fit the window.
  • Migrate and convert instance-scoped objects — Agent jobs, logins, Database Mail, linked servers.
  • Establish and monitor the link, Log Replay Service chain, or restore sequence.
  • Write and execute the dry run, including the rollback rehearsal.
  • Run the cutover, hold the go/no-go gates, and call rollback if abort criteria are met.
  • Capture and assemble all eight evidence criteria.
  • Provide hypercare for the agreed period and remove our access at closeout.

Your team

  • Provide a dedicated technical point of contact for the duration.
  • Provide the access listed in prerequisites.
  • Establish network connectivity, or engage us separately to do so.
  • Sign off collation, time zone, update policy, and service tier before provisioning.
  • Make application code changes where remediation requires them, or engage us separately.
  • Execute the DNS or connection-string change at cutover.
  • Make application owners available for both smoke tests.
  • Approve the cutover window and abort criteria in writing.
  • Coordinate any third-party vendor whose application or schema is in scope.

What's not included

Azure consumption costs — Managed Instance compute, storage, backup retention, and bandwidth are billed by Microsoft directly. Managed Instance typically costs more to run than SQL Server on an Azure VM; the assessment models this before you commit.
Network establishment — a site-to-site VPN or ExpressRoute build is the separate VPN and ExpressRoute engagement; the Azure foundation itself is the Landing Zone implementation.
Application code changes — we identify what must change and can quote it separately, but rewriting your application is not inside this fee.
Vendor application remediation — where a third-party product uses an unsupported feature, resolution is between you and the vendor.
Migration of features Managed Instance does not support — FILESTREAM, FileTable, `xp_cmdshell`, cross-instance Service Broker, and unsafe CLR assemblies are replaced or retired, not migrated.
SSIS, SSRS, and SSAS migration — quoted separately (SSIS packages can run on the Azure-SSIS Integration Runtime; that is its own engagement).
Query and index tuning beyond remediating regressions against the agreed baseline.
Failover group or geo-replication configuration — quoted as an add-on.
Decommissioning the source infrastructure after the fallback period.
Support beyond the stated hypercare period — available under the Azure Resource Monitoring and Maintenance service.
Migration to SQL Server on an Azure VM or Azure SQL Database — different targets, different methods, separate services; the assessment says which you need.

Limitations & technical notes

!Rollback has a hard limit you need to understand before you cut over. A backup taken on Managed Instance cannot be restored to an older SQL Server — the platform does not support downgrading. Rollback therefore means reverting to the source server, which we keep intact and read-only, and manually reconciling anything written to Managed Instance after cutover. Where the Managed Instance link is the method and the source is SQL Server 2022 or 2025, Microsoft currently supports keeping the link after failover so data can flow back — a supported failback path; older sources cannot. The assessment confirms whether yours qualifies. If it does not, the fallback period is your protection and the abort criteria are what matter.
!Collation and time zone are set at provisioning and are permanent. Correcting either means rebuilding the instance and migrating again. This is why they are a formal written sign-off rather than a configuration step.
!The General Purpose tier uses remote storage and has higher log-write latency than local disk. Latency-sensitive OLTP workloads may need Business Critical. The assessment models this from your observed workload, and the performance criterion is measured against the tier you chose.
!Provisioning and scaling operations take hours, not minutes. This shapes the project timeline and is one reason the schedule is measured in weeks even for a small estate.
!SQL Agent exists but not every subsystem does. Jobs using unsupported step types must be converted — typically to T-SQL, or moved to Azure Automation or Logic Apps. The assessment inventories these and the quote covers the conversion.
!Linked servers reach SQL platforms only. Connections to Oracle, ODBC sources, or arbitrary OLE DB providers do not carry across and need an alternative architecture.
!Windows Authentication against on-premises Active Directory does not work the way it does on a domain-joined server. Managed Instance authenticates through Microsoft Entra ID (with Kerberos integration available for some Windows-authentication scenarios). Applications with hardcoded Windows-authentication assumptions need attention, and the quote covers that workstream where the assessment finds it.
!The listed three weeks run from kickoff to the end of hypercare and cover a single source instance, with connectivity in place, one agreed cutover window, and remediation the assessment sized to fit inside the window; the database count and data volume the window holds are confirmed in the assessment, and the quote states them. Remediation that does not fit is quoted as a separate phase and completed before the window opens; multi-instance estates are quoted and scheduled separately. A three-week Managed Instance migration is credible only because the assessment has already found the blockers — it is not credible on an unassessed estate, which is why the assessment is mandatory.
!Azure platform capabilities change frequently — the SQL Server 2025 update policy went GA in March 2026, the Azure Data Studio migration extension was retired in February 2026, and the link's supported source versions move. The assessment is written against the platform as it stands on the day it is issued and states its verification date; findings older than 60 days are re-checked before the migration starts.

Frequently asked questions

How much downtime will we actually have?

Minutes — and we quote your specific number after the dry run, before the cutover is scheduled. Because the Managed Instance link cuts over by failover rather than restore, the window is largely independent of how much data you have: a 2 TB database and a 200 GB database cut over in roughly the same time. The window is spent on the write freeze, the failover itself, the connection-string change, and the smoke test.

How do you prove there was no data loss?

The link must report a synchronised state with zero pending log before failover is permitted — that is a go/no-go gate, not a check afterwards. Then per-table row counts and `HASHBYTES` aggregates are reconciled between source-at-freeze and target, `sys.objects` counts are matched, and `DBCC CHECKDB` confirms the target is internally consistent. All of it lands in the evidence pack.

What does it cost?

From $3,900, fixed in writing from the assessment findings. The floor covers a single source instance migrated over the Managed Instance link within the three-week window, with connectivity in place and remediation limited to what the assessment sized to fit. What moves the number above it: remediation effort — how many Agent job subsystems need converting, whether the authentication model changes, whether FILESTREAM or a non-SQL linked server has to be replaced — plus instance count, data volume, whether we provision the subnet and instance or validate yours, and hypercare beyond the window. The $950 assessment sizes all of that and produces the quote; you pay for the migration after you approve delivery.

Should we choose Managed Instance or an Azure VM?

Managed Instance if you want the operational burden gone and your workload fits the compatibility surface. Azure VM if you need OS-level access, a feature Managed Instance does not support, a specific SQL Server version or build, third-party agents on the host, or the lowest Azure bill. Expect Managed Instance to be more work than a VM move: an Azure VM migration moves a database between two copies of the same product, while this is a platform change — instance-scoped objects are converted rather than copied, the authentication model often changes, and the target takes hours to provision. That is why the floor is higher and why remediation the assessment finds is scheduled ahead of the three-week window rather than squeezed into it. The trade is that you stop patching, backing up, and configuring high availability afterwards — permanently. The assessment compares both against your actual environment and recommends one; we migrate to either, so the recommendation costs us nothing.

What are the most common blockers you find?

In rough order: SQL Agent jobs using unsupported step types; `xp_cmdshell` buried in a legacy stored procedure; linked servers to non-SQL sources; `BULK INSERT` reading from local file paths; applications assuming Windows Authentication against on-premises AD; and FILESTREAM. Most are solvable. The point of assessing first is that you find out which are solvable, and at what cost, before you have committed to the platform.

We have FILESTREAM. Is Managed Instance ruled out?

For those databases, yes — Managed Instance does not support FILESTREAM or FileTable. The usual outcomes are moving the binary content to Azure Blob Storage with the application updated to match, or migrating those specific databases to an Azure VM while the rest go to Managed Instance. A split estate is a legitimate and fairly common answer.

What happens if we pick the wrong collation?

You rebuild the instance and migrate again, and you pay for it twice. Instance collation cannot be changed after provisioning, and neither can the time zone. This is why both are a formal written sign-off item at kickoff rather than something inferred from the source.

Which source SQL Server versions can use the link?

Microsoft's current matrix runs from SQL Server 2016 (Service Pack 3 plus the Azure Connect pack) through SQL Server 2017, 2019, 2022, and 2025, each with a minimum cumulative update, on Standard, Enterprise, and Developer editions running on Windows Server. A source below the floor either gets patched first or uses the Log Replay Service instead. The assessment checks your exact build on the day, because the floors move with Microsoft's cumulative updates — do not rely on this paragraph for a build decision.

Can we roll back if it goes wrong?

Within the fallback period, yes — the source server stays intact and read-only, and reverting means restoring write access and reversing the connection change. What you cannot do is restore a Managed Instance backup onto an older SQL Server; the platform does not support downgrading. For SQL Server 2022 and 2025 sources migrated over the link, Microsoft currently supports keeping the link after failover so that data can flow back to the source, which gives you a real failback path; for older sources, anything written to Managed Instance after cutover has to be reconciled manually. That is precisely why we rehearse the cutover in a dry run, agree abort criteria before the night, and run the smoke test before you let users in.

Will performance be the same?

That is a measured success criterion, not a hope. We capture a Query Store baseline of ten business-critical queries before the move and compare after. The most common cause of regression is choosing General Purpose for a workload that needs Business Critical's local-storage latency — which the assessment models from your observed wait statistics, before you commit to a tier.

Do our SQL Agent jobs come across?

Managed Instance has SQL Agent, so most jobs migrate as-is. Jobs using step types Managed Instance does not support need converting, usually to T-SQL or to Azure Automation. The assessment inventories every job and flags the ones needing work; the quote covers the conversion.

Which tools do you use? Our vendor's runbook says Azure Data Studio.

That runbook is out of date. Microsoft retired Azure Data Studio and its Azure SQL migration extension on 28 February 2026. The supported paths for Managed Instance are now the Managed Instance link (our default), the Log Replay Service, the SQL migration experience in Azure Arc, and the Azure Database Migration Service through PowerShell and the CLI. We verify the currently supported path against Microsoft's documentation on the day we start, not from memory.

Do you need to do the assessment first?

Yes, without exception on this service. Managed Instance's compatibility surface is the entire risk of the project, and it is not visible from a conversation. Quoting a fixed price without checking it would be guessing with your production estate.

How long from first call to being live in Azure?

Roughly one week for scheduling and the three-business-day assessment, then three weeks from kickoff to the end of hypercare for a single instance: provisioning, remediation the assessment sized to fit, and link seeding in weeks one and two; the dry run at the end of week two; cutover, validation, and hypercare in week three. Where the assessment finds remediation that does not fit — application code changes, an authentication-model change, FILESTREAM replacement — that phase is quoted and completed first, and the three-week window starts when it is done. Your quote states the schedule.

Didn’t find your question?

Ask it here. A real engineer answers by email within one business day — and if it’s a good one, it becomes part of this page so the next person finds it.

Answered by a person, one time, to your inbox. Nothing you type here is published without a human reviewing and anonymizing it first.

Often combined with

from $3,900
3 weeks
Request a migration quote