MSSQLSERVER_3168
Si applica a: SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 3168 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | LDDB_SYSTEMWRONGVER |
Testo del messaggio | Impossibile ripristinare il backup del database di sistema nel dispositivo %ls perché è stato creato da una versione del server (%ls) diversa da quella del server in uso (%ls). |
Spiegazione
Non è possibile ripristinare un backup di un database di sistema (master, modello o msdb) in una compilazione del server diversa dalla build in cui è stato creato il backup in origine.
Nota
L'installazione di un aggiornamento di manutenzione, ad esempio l'aggiornamento cumulativo o il Service Pack o un GDR, modifica il numero di build del server. Le compilazioni del server sono sempre incrementali.
Possibili cause
Lo schema del database per i database di sistema potrebbe essere modificato nelle compilazioni del server. Per assicurarsi che una modifica dello schema non causi incoerenze, l'istruzione RESTORE confronta il numero di build del server del file di backup con il numero di build del server in cui si sta tentando di ripristinare il backup. Se le compilazioni sono diverse, l'istruzione genera un messaggio di errore "3168" e l'operazione di ripristino termina in modo anomalo.
Alcuni scenari in cui questo problema può verificarsi includono quanto segue:
Si tenta di ripristinare un database di sistema nel server A da un backup eseguito nel server B. I server A e B si trovano in build server diverse. Il server A potrebbe ad esempio utilizzare la build della versione originale e il server B potrebbe utilizzare una build del Service Pack 1 (SP1).
Si tenta di ripristinare un database di sistema da un backup eseguito nello stesso server. Tuttavia, il server stava eseguendo una compilazione diversa durante l'esecuzione del processo di backup. Ovvero, il server è stato aggiornato dopo la creazione del backup.
Azione utente
Per ovviare a questo problema, esegui la procedura seguente:
Nota
Per le procedure seguenti, Il server A è il server basato su SQL Server di origine in cui viene eseguito il backup e Il server B è il server basato su SQL Server di destinazione in cui si sta tentando di ripristinare il backup:
Determinare la versione del server B (versione B), usando la query seguente:
SELECT @@VERSION;
Eseguire una query simile alla seguente per determinare la versione di SQL Server in esecuzione quando è stato eseguito il backup di origine (versione A):
RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'
Esaminare i valori delle
SoftwareVersionMajor
colonne ,SoftwareVersionMinor
eSoftwareVersionBuild
per determinare la compilazione del server di origine usato al momento dell'esecuzione del backup. Si supponga, ad esempio, che i valori siano i seguenti:- SoftwareVersionMajor: 15
- SoftwareVersionMinor: 0
- SoftwareVersionBuild: 4236 In questo caso, la versione di SQL Server di origine quando è stato eseguito il backup è 15.0.4236.
Usare le tabelle dell'elenco delle versioni complete di SQL Server o il foglio di calcolo delle compilazioni di Excel per determinare la versione di SQL Server a cui corrisponde la compilazione. Ad esempio, 15.0.4236 esegue il mapping a SQL Server 2019 CU16+GDR (versione A).
Usare una delle seguenti opzioni:
Se la versione A è maggiore della versione B, usare le informazioni contenute nella cronologia degli aggiornamenti e delle versioni più recenti per SQL Server per aggiornare Il server B alla stessa build della versione A.
Se la versione A è minore della versione B, rimuovere temporaneamente gli aggiornamenti successivi attenendosi alla procedura seguente:
In Pannello di controllo selezionare Programmi > e funzionalità e quindi selezionare Visualizza aggiornamenti installati.
Individuare la voce corrispondente a ognuno dei pacchetti di aggiornamento successivi che corrispondono alla versione B.
Tenere premuto (o fare clic con il pulsante destro del mouse) sulla voce e quindi scegliere Disinstalla.
Dopo aver verificato che la versione B sia uguale alla versione A, ripetere l'operazione di ripristino del database master nel server B.
(Scelta consigliata) Aggiornare il server B alla versione più recente disponibile e quindi eseguire un nuovo backup dei database di sistema.
Vedi anche
Limitazioni per il ripristino di database di sistema (SQL Server)