Migracja SQL Server 2016 do 2022 — czego nie mówi kreator aktualizacji?

2026-10-06 · 2 min

Kreator instalacji potrafi sprawdzić wiele technicznych warunków.

Nie zna jednak procesów biznesowych, zależności aplikacji ani zachowania najważniejszych zapytań.

Dwa poziomy migracji

Trzeba rozdzielić:

  1. przeniesienie bazy na nowszy silnik,
  2. przejście na wyższy Compatibility Level.

Co trzeba przenieść poza bazą użytkownika?

  • loginy i SID-y,
  • role i uprawnienia serwerowe,
  • Credential i Proxy,
  • joby,
  • operatory i alerty,
  • linked servers,
  • Database Mail,
  • certyfikaty,
  • klucze,
  • SSISDB,
  • ustawienia instancji.

Użytkownicy osieroceni

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
SELECT
    dp.name AS DatabaseUser,
    dp.type_desc
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp
    ON dp.sid = sp.sid
WHERE dp.authentication_type_desc = 'INSTANCE'
  AND sp.sid IS NULL
  AND dp.name NOT IN
  (
      N'guest',
      N'dbo',
      N'sys',
      N'INFORMATION_SCHEMA'
  );

Compatibility Level

1
2
3
4
5
SELECT
    name,
    compatibility_level
FROM sys.databases
ORDER BY name;

Zmiana:

1
2
ALTER DATABASE [TwojaBaza]
SET COMPATIBILITY_LEVEL = 160;

powinna być osobnym etapem z Query Store i monitoringiem regresji.

Obszary ryzyka wydajnościowego

  • parameter sniffing,
  • cardinality estimation,
  • scalar UDF inlining,
  • table variables,
  • MSTVF,
  • batch mode on rowstore,
  • memory grants,
  • stare hinty.

Test powdrożeniowy

Sprawdź:

  • stan baz,
  • DBCC CHECKDB,
  • loginy,
  • joby,
  • backup,
  • monitoring,
  • aplikację,
  • integracje,
  • wydajność,
  • HA/DR,
  • alerty,
  • SQL Server Error Log.

Plan wycofania

Rollback może obejmować:

  • powrót aplikacji na starą instancję,
  • tail-log backup,
  • zmianę aliasu lub DNS,
  • odtworzenie bazy,
  • cofnięcie zmian integracyjnych.

Podsumowanie

Migracja nie kończy się, gdy baza ma status ONLINE.

Spokojny DBA ocenia ją po tym, czy cały system działa poprawnie, jest monitorowany i można go bezpiecznie odtworzyć.


Tagi: SQLServer , Migration , SQLServer2022 , DBA , Upgrade

Marcin Pytlik
LinkedIn · GitHub

Marcin Pytlik

LinkedIn · GitHub