MSSQLSERVER_3168
S'applique à : SQL Server
Détails
Attribut | Valeur |
---|---|
Nom du produit | SQL Server |
ID de l’événement | 3168 |
Source de l’événement | MSSQLSERVER |
Composant | SQLEngine |
Nom symbolique | LDDB_SYSTEMWRONGVER |
Texte du message | Impossible de restaurer la sauvegarde de la base de données système de l'unité %ls car elle a été créée par une autre version de serveur (%ls) que celle-ci (%ls). |
Explication
Vous ne pouvez pas restaurer une sauvegarde d’une base de données système (maître, modèle ou msdb) sur une build de serveur qui diffère de la build sur laquelle la sauvegarde a été créée à l’origine.
Remarque
L’installation d’une mise à jour de maintenance telle que la mise à jour cumulative ou le Service Pack ou un GDR modifie le numéro de build du serveur. Les builds de serveur sont toujours incrémentielles.
Causes possibles
Le schéma de base de données pour les bases de données système peut être modifié entre les builds du serveur. Pour vous assurer qu’une modification de schéma ne provoque pas d’incohérences, l’instruction RESTORE compare le numéro de build du serveur du fichier de sauvegarde au numéro de build du serveur sur lequel vous essayez de restaurer la sauvegarde. Si les builds sont différentes, l’instruction émet un message d’erreur « 3168 » et l’opération de restauration se termine anormalement.
Voici quelques scénarios dans lesquels ce problème peut se produire :
Vous essayez de restaurer une base de données système sur le serveur A à partir d’une sauvegarde effectuée sur le serveur B. Les serveurs A et B se trouvent sur des builds de serveur différentes. Par exemple, le serveur A peut se situer sur la version d'origine et le serveur B sur une version de Service Pack 1 (SP1).
Vous essayez de restaurer une base de données système à partir d’une sauvegarde effectuée sur le même serveur. Toutefois, le serveur exécutait une build différente lors de l’exécution du processus de sauvegarde. Autrement dit, le serveur a été mis à niveau depuis la création de la sauvegarde.
Action utilisateur
Pour résoudre ce problème, procédez comme suit :
Remarque
Pour les procédures suivantes, le serveur A est le serveur SQL Server source sur lequel la sauvegarde est effectuée, et le serveur B est le serveur SQL Server de destination sur lequel vous essayez de restaurer votre sauvegarde :
Déterminez la version du serveur B (version B), à l’aide de la requête suivante :
SELECT @@VERSION;
Exécutez une requête semblable à ce qui suit pour déterminer la version de SQL Server qui s’exécutait lors de la sauvegarde source (version A) :
RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'
Passez en revue les valeurs ,
SoftwareVersionMajor
SoftwareVersionMinor
etSoftwareVersionBuild
les colonnes pour déterminer la build du serveur source utilisé lors de la sauvegarde. Par exemple, supposons que les valeurs soient les suivantes :- SoftwareVersionMajor : 15
- SoftwareVersionMinor : 0
- SoftwareVersionBuild : 4236 Dans ce cas, la version source de SQL Server lorsque la sauvegarde a été effectuée est 15.0.4236.
Utilisez les tableaux de liste de versions complètes SQL Server ou la feuille de calcul Excel génère une feuille de calcul pour déterminer la version de SQL Server à laquelle correspond la build. Par exemple, 15.0.4236 est mappé à SQL Server 2019 CU16+GDR (version A).
Utilisez l’une des options suivantes :
Si la version A est supérieure à la version B, utilisez les informations contenues dans les dernières mises à jour et l’historique des versions de SQL Server pour mettre à niveau le serveur B vers la même build que la version A.
Si la version A est inférieure à la version B, supprimez temporairement les mises à jour ultérieures en procédant comme suit :
Dans Panneau de configuration, sélectionnez Programmes > et fonctionnalités, puis Affichez les mises à jour installées.
Recherchez l’entrée qui correspond à chacun des packages de mise à jour ultérieurs correspondant à la version B.
Appuyez longuement (ou cliquez avec le bouton droit) sur l’entrée, puis sélectionnez Désinstaller.
Après avoir vérifié que la version B est identique à la version A, réessayez l’opération de restauration de la base de données master sur le serveur B.
(Recommandé) Mettez à jour le serveur B vers la dernière version disponible, puis effectuez une nouvelle sauvegarde de vos bases de données système.
Voir aussi
Limitations relatives à la restauration des bases de données système (SQL Server)
Restaurer la base de données master (Transact-SQL)
Le moyen le plus simple de reconstruire la base de données master