Vai al contenuto

Migrazione SQL Server da SQL 2017 a SQL 2022 con Minimo Downtime

Scopri le strategie per migrare SQL Server 2017 a SQL Server 2022 con risvolti minimi di inattività operativa.

La migrazione di un server SQL da una versione all’altra può essere un’operazione critica per molte aziende, soprattutto quando si cerca di minimizzare il downtime. In questo articolo, esploreremo le migliori strategie per migrare da SQL Server 2017 a SQL Server 2022 con il minor tempo possibile di inattività. Vedremo tre principali metodi: Always On High Availability, Mirroring e Log Shipping.

Always On High Availability

Il metodo Always On High Availability permette di configurare un gruppo di disponibilità con una replica primaria eseguita su SQL Server 2017 e una replica secondaria su SQL Server 2022. Prima di procedere, però, bisogna considerare alcune limitazioni e compatibilità:

  • Compatibilità Retrospettiva: La replica primaria deve eseguire una versione più vecchia o uguale alla secondaria. Quindi, l’impostazione di SQL Server 2017 come primaria e di SQL Server 2022 come secondaria è valida.
  • Percorso di Aggiornamento del Database: Per aggiornare la primaria a una versione più recente:
    • Aggiungere la nuova versione come replica secondaria.
    • Eseguire un failover verso la nuova replica, rendendola primaria.
    • Aggiornare l’ex primaria alla nuova versione.
    • Aggiungere di nuovo la replica aggiornata al gruppo di disponibilità.
  • Compatibilità Funzionalità: Alcune funzionalità potrebbero non essere completamente supportate o comportarsi diversamente tra le versioni. Test approfonditi sono essenziali.
  • Supporto e Documentazione: Verificare sempre la documentazione ufficiale di Microsoft per informazioni aggiornate.
  • Licenze e Manutenzione: Ambiente misto potrebbe avere implicazioni sui supporti con Microsoft.

Ecco come configurare questo ambiente:

  1. Installare SQL Server 2017 sul server primario e configurarlo come replica primaria.
  2. Installare SQL Server 2022 sul server secondario e configurarlo come replica secondaria.
  3. Creare il gruppo di disponibilità su SQL Server 2017 e aggiungere i database.
  4. Aggiungere l’istanza SQL Server 2022 come replica secondaria.
  5. Configurare la sincronizzazione e verificare che la replica secondaria sia sincronizzata.

DB Mirroring

Il mirroring del database è un’altra strategia efficace per la migrazione da SQL Server 2017 a SQL Server 2022. Questa tecnica mantiene una copia sincronizzata del database sul nuovo server.

Processo di Migrazione:

  1. Installare SQL Server 2022 sul nuovo server.
  2. Assicurarsi che la rete tra i due server sia configurata correttamente e che possano comunicare.
  3. Eseguire un backup completo del database principale.
  4. Copiare i file di backup sul nuovo server.
  5. Ripristinare il backup completo sul nuovo server con l’opzione NORECOVERY.

Esempi di codice:

BACKUP DATABASE YourDatabaseName TO DISK = 'C:\Backup\YourDatabaseName_Full.bak';RESTORE DATABASE YourDatabaseName FROM DISK = 'C:\Backup\YourDatabaseName_Full.bak' WITH NORECOVERY;

Configurare il Mirroring del Database:

ALTER DATABASE YourDatabaseName SET PARTNER = 'TCP://SQL2022ServerName:5022';ALTER DATABASE YourDatabaseName SET PARTNER = 'TCP://SQL2017ServerName:5022';

Considerazioni e Best Practices:

  • Compatibilità: Verificare la compatibilità del database e delle applicazioni con SQL Server 2022.
  • Downtime: Pianificare una finestra di manutenzione poiché potrebbe esserci un breve downtime.
  • Backup e Ripristino: Avere sempre un backup recente prima della migrazione.

Log Shipping

Il log shipping configura il vecchio e il nuovo server per sincronizzare i log delle transazioni, permettendo il passaggio al nuovo server con un downtime minimo.

Processo di Migrazione:

  1. Installare SQL Server 2022 sul nuovo server.
  2. Assicurarsi che la rete tra i server sia configurata correttamente.
  3. Eseguire un backup completo del database principale e copiarlo sul nuovo server.
  4. Ripristinare il backup completo sul nuovo server con l’opzione NORECOVERY.
  5. Abilitare il log shipping sulla database principale.

Esempi di codice:

BACKUP DATABASE YourDatabaseName TO DISK = 'C:\Backup\YourDatabaseName_Full.bak';RESTORE DATABASE YourDatabaseName FROM DISK = 'C:\Backup\YourDatabaseName_Full.bak' WITH NORECOVERY;

Abilitare il log shipping:

BACKUP LOG YourDatabaseName TO DISK = 'C:\Backup\YourDatabaseName_Log1.trn';RESTORE LOG YourDatabaseName FROM DISK = 'C:\Backup\YourDatabaseName_Log1.trn' WITH NORECOVERY;

Considerazioni e Best Practices:

  • Testing: Testare la configurazione del log shipping in un ambiente non produttivo.
  • Downtime: Pianificare una finestra di manutenzione durante il cutover.
  • Backup e Ripristino: Avere sempre backup recenti prima della migrazione.

Link alla documentazione di Microsoft sul Log Shipping