Migrating SQL Server 2016 to 2022 or 2025: compatibility, downtime and rollback planning
Assess instance-level objects, compatibility levels, drivers, business regression, data synchronisation, cutover windows and rollback triggers separately.
Assess instance-level objects, compatibility levels, drivers, business regression, data synchronisation, cutover windows and rollback triggers separately. For this case, first verify source-instance patch and configuration state and compatibility level, then use Login/Job/Linked Server to decide whether remediation is needed.
Why migrate now
For this server and database case, establish the failure boundary with source-instance patch and configuration state and compatibility level, then continue to Login/Job/Linked Server. Capture the current state, incident time and one known-good comparison before changing production configuration.
Pre-migration dependency inventory
| Check | Why it matters | Recommended action |
|---|---|---|
| 01 · source-instance patch and configuration state | Verify source-instance patch and configuration state on the affected path using logs, counters or state information rather than relying only on the configured rule. | Record the current value, evidence source and timestamp for source-instance patch and configuration state. If adjustment is required, change one condition only and retain the original setting for rollback. |
| 02 · compatibility level | Verify compatibility level on the affected path using logs, counters or state information rather than relying only on the configured rule. | Check compatibility level read-only and save the result. If it differs from the baseline, correlate it with the incident time and recent changes before remediation. |
| 03 · Login/Job/Linked Server | Verify Login/Job/Linked Server on the affected path using logs, counters or state information rather than relying only on the configured rule. | Compare Login/Job/Linked Server with a known-good peer, the log timeline and the real application path; confirm whether it is causal before changing production. |
| 04 · client driver | Review the current state, related logs and recent changes for client driver, then align them with the incident timeline before deciding whether a change is required. | Record the current value, evidence source and timestamp for client driver. If adjustment is required, change one condition only and retain the original setting for rollback. |
| 05 · data synchronization and cutover | Review the current state, related logs and recent changes for data synchronization and cutover, then align them with the incident timeline before deciding whether a change is required. | Check data synchronization and cutover read-only and save the result. If it differs from the baseline, correlate it with the incident time and recent changes before remediation. |
| 06 · rollback trigger conditions | Review the current state, related logs and recent changes for rollback trigger conditions, then align them with the incident timeline before deciding whether a change is required. | Compare rollback trigger conditions with a known-good peer, the log timeline and the real application path; confirm whether it is causal before changing production. |
Recommended migration path
- Start with read-only evidence. Check source-instance patch and configuration state and compatibility level before changing configuration.
- If the first checks are normal, continue with Login/Job/Linked Server and client driver, keeping evidence tied to the incident time.
- Change configuration only when the evidence explains the symptom. For data synchronization and cutover, preserve the original value and define the rollback trigger before adjustment.
- Validate rollback trigger conditions in a controlled scope before expanding to production users or traffic.
Cutover window
- Validate the complete user or application workflow; do not stop at the single status of source-instance patch and configuration state.
- Recheck data synchronization and cutover and rollback trigger conditions after the change and confirm that no new bypass, permission expansion or secondary error has appeared.
- Archive evidence from source-instance patch and configuration state through rollback trigger conditions, together with before/after configuration, business validation and the rollback point.
Validation and rollback
- Changing source-instance patch and configuration state and compatibility level at the same time, which makes the original cause impossible to prove.
- Treating a normal result for Login/Job/Linked Server as proof that client driver and the rest of the business path are healthy.
- Leaving a temporary exception related to data synchronization and cutover or rollback trigger conditions in production without an owner, expiry time and rollback note.
Related questions
Where should I start with “Migrating SQL Server 2016 to 2022 or 2025: compatibility, downtime and rollback planning”?
Start with source-instance patch and configuration state and compatibility level; they establish the first useful troubleshooting boundary without changing production state.
What should be checked after the first layer looks normal?
Continue with Login/Job/Linked Server and client driver, then correlate the result with the incident time and the actual user or application path.
What should be retained after the change?
Keep evidence for data synchronization and cutover and rollback trigger conditions, plus the original configuration, validation result, observation notes and rollback point.
