diff --git a/projects/PARHEON/migration.md b/projects/PARHEON/migration.md new file mode 100644 index 0000000..ac2dea0 --- /dev/null +++ b/projects/PARHEON/migration.md @@ -0,0 +1,257 @@ +Dla SQL Server Standalone runbook jest prostszy niż dla FCI, ale paradoksalnie częściej kończy się problemami, bo ludzie zapominają o jobach, linked serverach, ODBC, SSIS i konfiguracji systemowej. + +Poniżej jest moja produkcyjna checklista DBA do migracji: + +SQL Server Standalone → SQL Server 2022 Standalone + +1. Discovery / Assessment +Serwer źródłowy +System + Nazwa serwera + Windows Version + Patch Level + CPU + RAM + Dyski + Antivirus + Firewall rules + ODBC DSN + Scheduled Tasks +SQL Server +SELECT @@VERSION; + + SQL Version + SQL Edition + CU/SP + Collation + Authentication Mode + Max Server Memory + MaxDOP + Cost Threshold + Trace Flags + TempDB Configuration + Backup Compression + IFI +2. Inwentaryzacja baz + +Dla każdej bazy: + + Nazwa + Rozmiar + Recovery Model + Compatibility Level + Owner + TDE + CDC + Replication + Service Broker + FullText + FileStream + CLR + Query Store +3. Obiekty instancji +Security + SQL Logins + Windows Logins + Server Roles + Credentials + Certificates + Endpoints +SQL Agent + Jobs + Job Steps + Schedules + Operators + Alerts + Proxies +Integracje + Linked Servers + Linked Server Logins + Database Mail + SSIS Packages + Maintenance Plans + PowerShell Scripts + Batch Files +4. Nowy serwer +Windows + Serwer zbudowany + Join do domeny + Patchowanie + AV exclusions + Firewall +Dyski + +Przykład: + +C: OS +D: SQL Binaries +E: Data +F: Log +G: TempDB +H: Backup + + Wolumeny utworzone + NTFS 64K + Uprawnienia nadane +5. Instalacja SQL 2022 +Instalacja + SQL Engine + Agent + FullText (jeśli używany) +Konfiguracja + Port TCP + Max Memory + MaxDOP + Cost Threshold + Backup Compression + IFI +6. Migracja obiektów instancji +Logins + Migracja z SID + Role + Permissions +Linked Servers + Linked Servers + Login Mapping + Hasła +Database Mail + Accounts + Profiles + Test mail +Agent + Jobs + Schedules + Operators + Alerts + Proxies +7. Test Restore + +Dla każdej bazy: + +Backup +BACKUP DATABASE db +TO DISK='...' +WITH COMPRESSION,CHECKSUM; + +Restore +RESTORE VERIFYONLY + + VERIFYONLY + Restore Test + CHECKDB +8. Tydzień przed migracją +Freeze + Brak zmian schematu + Brak nowych jobów + Brak nowych loginów + Brak nowych linked serverów +Test aplikacji + Login + Odczyt + Zapis + Raporty + ETL +9. Cutover +Start + Aplikacje stop + ETL stop + Joby stop +Final Backup +Full +BACKUP DATABASE + +Log +BACKUP LOG + +Restore +Full +RESTORE DATABASE +WITH NORECOVERY + +Logi +RESTORE LOG + +Recovery +WITH RECOVERY + +Security + Logins + Credentials + Linked Servers + Database Mail +Jobs + Import + Enable +10. Smoke Test +SQL + Wszystkie bazy ONLINE + Logins działają + Agent działa + Backup działa +Aplikacja + Login + Read + Write + Raport +ETL + Job Success + SSIS Success + Import działa +11. Performance Validation + +Porównanie do starego serwera: + + CPU + RAM + IOPS + PLE + Wait Stats + Blocking +12. Rollback + +Warunki rollback: + + aplikacja nie startuje + błędy logowania + utrata danych + krytyczne ETL nie działa + brak wydajności +Procedura +Stop nowego środowiska + Disable Jobs + Stop Applications +Powrót + Connection Strings -> stary SQL + Enable Source Jobs + Uruchom aplikacje +Test + Login + Read + Write +13. Najczęściej zapominane rzeczy + +To jest moja „killer checklist”: + + SQL Agent Schedules + SQL Agent Proxies + Linked Server Passwords + ODBC DSN + Windows Scheduled Tasks + Database Mail + TDE Certificates + Backup Jobs + Maintenance Plans + PowerShell scripts + SSIS packages + CLR Assemblies + Service Broker + Monitoring (Splunk) + Antivirus exclusions + Connection strings + Shared folders + Startup parameters + TempDB configuration + Trace flags + Local service accounts + +Jeżeli migracja dotyczy typowego środowiska D&B (np. SQL 2016/2019 → SQL 2022), to ja dodatkowo zawsze dopisuję jeszcze sekcję „Post Migration 30 dni”, czyli kontrolę backupów, jobów, wzrostu baz, indeksów i ewentualne podniesienie compatibility level dopiero po zakończeniu okresu stabilizacji. \ No newline at end of file