Pianificare e testare il piano di aggiornamento del motore di database
Si applica a: SQL Server - solo Windows
Per eseguire correttamente l'aggiornamento di SQL Server, indipendentemente dall'approccio, è opportuna un'accurata pianificazione.
Note sulla versione e problemi di aggiornamento noti
Prima di aggiornare il motore di database, esaminare quanto segue:
- Note sulla versione di SQL Server 2022
- Note sulla versione di SQL Server 2019
- Note sulla versione di SQL Server 2017
- Note sulla versione di SQL Server 2016
- Articolo Compatibilità con le versioni precedenti del motore di database di SQL Server.
Elenco di controllo per la pianificazione pre-aggiornamento
Prima di aggiornare il motore di database, esaminare il seguente elenco di controllo e gli articoli correlati. Questi articoli si applicano a tutti gli aggiornamenti, indipendentemente dal metodo di aggiornamento, e consentono di determinare il metodo di aggiornamento più appropriato: aggiornamento in sequenza, aggiornamento con nuova installazione o aggiornamento sul posto. Ad esempio, potrebbe non essere possibile eseguire un aggiornamento in sequenza o sul posto se si esegue l'aggiornamento del sistema operativo, l'aggiornamento da SQL Server 2005 (9.x) o l'aggiornamento da una versione a 32 bit di SQL Server. Per l'albero delle decisioni, vedere Choose a Database Engine Upgrade Method.
Requisiti hardware e software: consultare i requisiti hardware e software per l'installazione di SQL Server. Questi requisiti sono disponibili in: Hardware and Software Requirements for Installing SQL Server. Una parte di qualsiasi ciclo di pianificazione dell'aggiornamento consiste nel prendere in considerazione l'aggiornamento dell'hardware e del sistema operativo. L'hardware più recente è più veloce e può ridurre le licenze a causa di un minor numero di processori o a causa dell’acquisizione del database e del server. Questi tipi di modifiche hardware e software influiscono sul tipo di metodo di aggiornamento.
Ambiente corrente: eseguire ricerche nell'ambiente corrente per comprendere i componenti di SQL Server in uso e i client connessi all'ambiente.
Provider client: l'aggiornamento non richiede di aggiornare il provider dei singoli clienti, ma è possibile scegliere di eseguire questa operazione. Se si esegue l'aggiornamento da SQL Server 2014 (12.x) o versione precedente, le funzionalità di SQL Server 2016 (13.x) seguenti richiedono un provider aggiornato per ogni client o per offrire funzionalità aggiuntive:
-
Importante
Stretch Database è deprecato in SQL Server 2022 (16.x) e database SQL di Azure. Questa funzionalità verrà rimossa nelle versioni future del motore di database. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (SQL Server)
Aggiornamento della sicurezza TLS
Componenti di terze parti: determinare la compatibilità dei componenti di terze parti, ad esempio il backup integrato.
Ambiente di destinazione: verificare che l'ambiente di destinazione soddisfi i requisiti hardware e software e che supporti i requisiti del sistema originale. Ad esempio, l'aggiornamento potrebbe comportare l’acquisizione di più istanze di SQL Server in un'unica e nuova istanza di SQL Server o la virtualizzazione dell'ambiente di SQL Server su un cloud privato o pubblico.
Edizione: determinare la versione appropriata di SQL Server e i percorsi di aggiornamento appropriati per l'aggiornamento. Per informazioni dettagliate, vedere Supported Version and Edition Upgrades. Prima di eseguire l'aggiornamento da un'edizione di SQL Server a un'altra, verificare che le funzionalità attualmente in uso siano supportate nell'edizione a cui si desidera eseguire l'aggiornamento.
Nota
Quando si esegue l'aggiornamento a SQL Server da una versione precedente di SQL Server Enterprise edition, scegliere tra edizione Enterprise: licenze basate su core ed edizione Enterprise. Queste due edizioni differiscono solo per le modalità di gestione delle licenze. Per altre informazioni, vedere Compute Capacity Limits by Edition of SQL Server.
Compatibilità con le versioni precedenti: vedere l'articolo sulla compatibilità con le versioni precedenti del motore di database di SQL Server per esaminare i cambiamenti nel comportamento tra SQL Server e la versione di SQL Server dalla quale si sta eseguendo l'aggiornamento. Vedere SQL Server Database Engine Backward Compatibility.
Data Migration Assistant: eseguire Data Migration Assistant per un supporto nell'analisi dei problemi che potrebbero bloccare il processo di aggiornamento o richiedere modifiche degli script esistenti o delle applicazioni a seguito di una modifica importante.
È possibile scaricare Data Migration Assistant qui.
Controllo configurazione sistema: eseguire il Controllo configurazione sistema (SCC, System Configuration Checker) di SQL Server per determinare se il programma di installazione di SQL Server rileva problemi di blocco prima di pianificare l'aggiornamento. Per altre informazioni, vedere Check Parameters for the System Configuration Checker.
Aggiornamento di tabelle ottimizzate per la memoria: quando si aggiorna un'istanza del database SQL Server 2014 (12.x) che contiene le tabelle ottimizzate per la memoria a SQL Server 2016 (13.x) e versioni successive, il processo di aggiornamento richiede più tempo per convertire le tabelle ottimizzate per la memoria nel nuovo formato su disco. Durante questo processo, il database è offline. La quantità di tempo dipende dalle dimensioni delle tabelle ottimizzate per la memoria e dalla velocità del sottosistema di I/O. L'aggiornamento richiede tre dimensioni di operazioni di dati per gli aggiornamenti sul posto e con nuova installazione (il passaggio 1 non è obbligatorio per gli aggiornamenti in sequenza, ma i passaggi 2 e 3 sono obbligatori):
Eseguire il ripristino del database usando il formato su disco precedente (e caricando tutti i dati nelle tabelle ottimizzate per la memoria all'interno della memoria del disco)
Serializzare i dati su disco nel nuovo formato su disco
Eseguire il ripristino del database usando il nuovo formato (e caricando tutti i dati nelle tabelle ottimizzate per la memoria all'interno della memoria del disco)
Inoltre, l'insufficienza di spazio su disco durante questo processo impedisce l'esecuzione del ripristino. Assicurarsi che sia disponibile spazio sufficiente su disco per l'archiviazione del database esistente e ulteriore spazio aggiuntivo corrispondente alla dimensione corrente dei contenitori del filegroup
MEMORY_OPTIMIZED_DATA
del database per eseguire un aggiornamento sul posto o connettere un database SQL Server 2014 (12.x) a un'istanza che esegue SQL Server 2016 (13.x) o versioni successive. Usare la query seguente per determinare lo spazio su disco necessario per il filegroupMEMORY_OPTIMIZED_DATA
e la quantità di spazio su disco necessaria per l'esecuzione dell'aggiornamento:
SELECT CAST(SUM(size) AS FLOAT) * 8 / 1024 / 1024 AS [size in GB] FROM sys.database_files WHERE data_space_id IN ( SELECT data_space_id FROM sys.filegroups WHERE type = N'FX' );
Sviluppare e testare il piano di aggiornamento
L'approccio migliore consiste nel considerare l'aggiornamento come qualsiasi progetto IT. Organizzare un team dedicato all'aggiornamento che disponga di amministrazione del database, rete, estrazione, trasformazione e caricamento (ETL) e altre competenze necessarie per l'aggiornamento. Il team deve:
Scegliere il metodo di aggiornamento: vedere Scegliere un metodo di aggiornamento del motore di database.
Sviluppare un piano di rollback: l'esecuzione di questo piano consentirà di ripristinare l'ambiente originale se è necessario eseguire il rollback.
Determinare i criteri di accettazione: verificare che l'aggiornamento sia riuscito prima di trasferire gli utenti nell'ambiente aggiornato.
Testare il piano di aggiornamento: per testare le prestazioni con il carico di lavoro effettivo, usare l'utilità Riesecuzione distribuita di Microsoft SQL Server. L'utilità può usare più computer per rieseguire dati di traccia, simulando un carico di lavoro di importanza critica. Eseguendo una riproduzione in un server di prova prima e dopo un aggiornamento di SQL Server, è possibile rilevare le differenze di prestazioni e individuare eventuali incompatibilità dell'applicazione con l'aggiornamento. Per altre informazioni, vedere SQL Server Distributed Replay e Opzioni della riga di comando dello strumento di amministrazione (Distributed Replay Utility).