SQL Server Migration
SQL Server Migration Services
In short: A SQL Server migration covers version upgrades to 2022, on-prem to Azure SQL, and Oracle/MySQL/PostgreSQL cross-platform moves, run through a six-step process — assessment, planning, schema and object migration, data migration with CDC, testing, and cutover. Always On availability groups or log shipping feed a rehearsed cutover in a planned window, with checksum validation before go-live.
Version upgrades to SQL Server 2022, moves to Azure SQL, and migrations from Oracle use a rehearsed cutover in a planned window, with checksum validation before go-live.
JusDB plans Microsoft SQL Server migration cutovers across major version upgrades (2012/2016 to 2019/2022), Azure SQL, AWS RDS, and cross-engine transitions. JusDB DBREs execute distributed Always On availability groups, transactional log shipping, schema compatibility validation, and automated cutover drills, with checksum validation before a rehearsed cutover in a planned window.
Migration in flight — sound familiar?
- ▸ CLR assemblies + SSIS that Azure SQL MI will not take as-is — consolidating onto SQL Server 2022 or Azure SQL Managed Instance surfaces unsupported CLR assemblies, cross-database queries, and SSIS packages that need re-hosting (SSIS in Azure Data Factory). The migration plan did not budget for this.
- ▸ Always-On AG split-brain at cutover — The secondary that should have promoted did not — both sides accepted writes for 4 minutes during the failover window, and you have inconsistent state.
- ▸ License audit mid-cutover — You switched Edition during the migration (Enterprise → Standard, or Web → Standard) and the auditor now wants per-core licensing back-dated to the cutover.
JusDB migration consultants own the cutover playbook + rollback plan, end-to-end. Book a migration scoping call →
SQL Server Migration Paths We Support
From version upgrades to cross-platform migrations, these are the paths we support.
SQL Server Version Upgrade
In-place or side-by-side upgrades from SQL Server 2012/2014/2016/2017/2019 to SQL Server 2022, with an Always On availability group cutover rehearsed in a planned window.
- 2012/2014 → 2022
- 2016/2017 → 2022
- 2019 → 2022
- AG rolling upgrade
On-Premises to Azure SQL
Lift-and-shift and modernization migrations from on-prem SQL Server to Azure SQL Database, Azure SQL Managed Instance, or SQL Server on Azure VMs.
- Azure SQL Database
- Azure SQL Managed Instance
- SQL Server on Azure VM
- Azure Database Migration Service
Oracle to SQL Server
Full schema conversion, PL/SQL to T-SQL rewriting, data migration, and application validation using SQL Server Migration Assistant (SSMA).
- Schema conversion via SSMA
- PL/SQL → T-SQL rewrite
- Sequence → Identity migration
- Synonym and trigger conversion
MySQL / PostgreSQL to SQL Server
Cross-database migrations from MySQL or PostgreSQL to SQL Server with schema mapping, data type conversion, and stored procedure adaptation.
- SSMA for MySQL
- Schema & data migration
- Stored procedure conversion
- Application cutover support
Our Migration Process
A structured, risk-managed process with rollback plans at every stage.
Assessment & Discovery
Inventory databases, assess compatibility, identify blockers, and size target infrastructure.
Migration Planning
Define cutover strategy, rollback plan, testing milestones, and stakeholder communication plan.
Schema & Object Migration
Convert schema, stored procedures, functions, and views. Script logins, jobs, and linked servers.
Data Migration
Full initial load with ongoing CDC (change data capture) to keep source and target in sync during testing.
Testing & Validation
Functional testing, performance benchmarking, and row count / checksum validation of migrated data.
Cutover & Go-Live
Final sync, application connection switch, DNS/listener update, and post-cutover monitoring.
Migration Tools & Technologies
How JusDB DBRE Migration compares to alternative paths.
Generic migration scripts and offline backup restores face compatibility level regressions, AG seeding timeouts, and zero rollback safety. Here is how our engineering methodology compares across core evaluation vectors:
| Evaluation Vector | JusDB DBRE | In-House DBA | Legacy Agency | Developer Generalist |
|---|---|---|---|---|
| Version Upgrade Architecture (2012→2019/2022) | Side-by-side Always On Availability Group seeding or distributed AGs; automated cardinality estimator (CE) compatibility audits, Query Store baseline validation, and low-downtime cutover. | In-place OS/SQL upgrades risking broken dependencies, master database corruption, and unpredictable offline downtime. | Standard backup and restore with hours of application downtime, manual compatibility patching, and zero post-upgrade performance testing. | Direct upgrade execution without Query Store baselines; application encounters immediate query plan regressions and broken server configurations. |
| Cloud Target Migration (Azure SQL / AWS RDS) | Seamless cross-platform migration to Azure SQL DB/MI or AWS RDS via Azure DMS, transactional replication, or native log shipping with continuous catch-up until cutover. | Cloud-native tooling reliance without addressing feature gaps (CLR, SQL Agent jobs, cross-database queries) causing cutover blockers. | Offline BCP or SSIS exports that truncate binary data, drop identity specifications, and fail under multi-terabyte table sizes. | Generic ETL pipelines that ignore SQL Server collation rules, table partition schemes, and columnstore index requirements. |
| Distributed Availability Group Seeding | Automatic and manual seeding via VSS-integrated backup streams, TCP compression tuning, and physical seeding checkpoints across distinct WSFC clusters without WAN timeouts. | Default automatic seeding across WAN links leading to network timeouts, unmanageable transaction log growth, and primary storage saturation. | Unfamiliar with Distributed AGs; relies on slow point-in-time manual restoration requiring prolonged read-only locks. | Direct replica joining over unoptimized endpoints without certificate authentication or network compression, stalling sync. |
| Deprecated Feature & T-SQL Audit | Comprehensive static analysis via Extended Events and DEA; automated detection of legacy joins (*=), DBCC syntax, deprecated types (text/ntext/image), and CLR assemblies. | Manual script reviews that miss dynamic SQL, linked server syntax changes, and deprecated system tables like sysdatabases. | Surface-level syntax validation that discovers breaking T-SQL syntax errors only after production cutover. | Assumes backward compatibility; untracked deprecated features cause runtime application exceptions and broken API endpoints post-migration. |
| Minimal-Downtime Cutover Orchestration | Sub-minute connection draining, orchestrated AG manual failover, automated DNS CNAME / virtual network name redirection, and login SID alignment. | Multi-hour weekend maintenance windows with manual connection string re-pointing and error-prone checklist executions. | Scheduled 8–16 hour outages with static maintenance pages, dropped client transactions, and uncoordinated application restarts. | Abrupt IP change during peak hours triggering connection timeouts, uncommitted transaction rollbacks, and orphaned sessions. |
| Fallback & Reversible Rollback Safety | Bidirectional synchronization or reverse log shipping pre-configured from target back to source, so you can fall back to the source quickly if needed. | One-way cutover; rollback relies on restoring pre-migration cold backups, discarding all transactions processed since go-live. | No functional rollback playbook; encountering critical production issues forces live firefighting on unstable environments. | Complete absence of rollback architecture; aborted migrations leave both source and target in inconsistent, corrupt states. |
Critical SQL Server Migration Risks We Eliminate
Unvalidated SQL Server migrations risk severe downtime when compatibility level shifts cause plan regressions, distributed AG seeding stalls over WAN links, or orphaned database users break application authentication:
Database Compatibility Level Syntax Failure Post-Upgrade
Changing database compatibility levels (e.g. 110 to 160) triggers cardinality estimator plan regressions, removes deprecated non-ANSI join syntax (*=), and breaks legacy table hints, leading to severe application query failures post-upgrade.
JusDB DBREs deploy Database Experimentation Assistant (DEA) shadow workload replay, enforce Query Store baseline plan forcing, and audit all T-SQL syntax for deprecated operators prior to cutover.
Distributed AG Automatic Seeding Network Timeout on Multi-TB Databases
Automatic seeding across distributed availability groups over WAN or cross-cloud links suffers TCP resets and VSS timeout errors on multi-TB databases, stalling seeding and causing uncontrollable primary transaction log expansion.
JusDB configures compression-tuned physical backup streams with checkpoint restartability, dedicated private migration networks, and transactional log shipping fallbacks to protect synchronization against data loss.
Orphaned SQL Logins with SID Mismatches After Instance Cutover
Restoring databases to new SQL Server target instances creates orphaned database principals when server-level login SIDs do not match binary SIDs in sys.database_principals, triggering widespread authentication failures (Error 18456).
JusDB DBREs pre-migrate all server logins preserving exact binary SIDs using sp_help_revlogin and automated dbatools scripts, running automated SID reconciliation sweeps before application switchover.
Our DBREs execute non-blocking pre-flight diagnostic queries to audit Availability Group synchronization state, queue sizes, and principal SID alignment before production cutover windows:
Audits replica synchronization state, health flags, log send queue size, and redo queue size to verify data parity and seeding completion before cutover.
SELECT r.replica_server_name, d.database_name, s.synchronization_state_desc, s.synchronization_health_desc, s.log_send_queue_size, s.redo_queue_size FROM sys.dm_hadr_database_replica_states s JOIN sys.availability_replicas r ON s.replica_id = r.replica_id JOIN sys.databases d ON s.database_id = d.database_id;
Audits database principals with missing server-level logins to detect and resolve orphaned user SIDs that would break application authentication after cutover.
SELECT dp.name AS UserName, dp.type_desc, dp.sid FROM sys.database_principals dp LEFT JOIN sys.server_principals sp ON dp.sid = sp.sid WHERE sp.sid IS NULL AND dp.type IN ('S', 'U', 'G') AND dp.name NOT IN ('guest', 'INFORMATION_SCHEMA', 'sys');Migration FAQs
Plan Your SQL Server Migration Today
Get a free migration assessment — we will review your source environment, identify risks, and produce a detailed migration plan with timelines and effort estimates.
Related SQL Server Services
Explore more ways our SQL Server experts can help optimize your enterprise Microsoft SQL Server estate
SQL Server Consulting
Strategic SQL Server architecture, Always On AG design, performance optimization, and migration advisory
SQL Server Performance Tuning
Query Store analysis, missing-index recommendations, execution-plan optimization, and statistics tuning
SQL Server High Availability
Always On Availability Groups, FCI, log shipping, replication, and multi-region DR architectures
Need a different SQL Server service? Browse our complete offerings.