Vous ne pouvez pas restaurer système de base de données sauvegardes vers une autre version de SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 264474 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Vous ne peut pas restaurer une sauvegarde de base d'un système données ( maître , modèle ou msdb ) sur une version de serveur qui est différente de la version sur laquelle la sauvegarde a été initialement effectuée. Une tentative pour effectuer une telle restauration provoque la message d'erreur suivantes se produise :
Serveur: Msg 3168, Niveau 16, État 1, ligne 1
Impossible de restaurer la sauvegarde de la base de données système sur le périphérique d:\temp\master.bak car il a été créé par une autre version du serveur (134217904) que ce serveur (134217920).
Serveur: Msg 3013, Niveau 16, État 1, ligne 1
RESTORE la base de données se termine anormalement.

Cause

Il est possible que le schéma de base de données pour les bases de données du système a changé entre les versions de serveur. Afin de vous assurer que ce changement de schéma n'entraîne pas toutes les incohérences, un des première contrôles qui exécute la commande RESTORE est une comparaison entre le numéro de version serveur sur le fichier de sauvegarde et le numéro de version du serveur sur lequel l'utilisateur tente d'exécuter la restauration. Si les deux versions sont différentes, la message d'erreur se produit et l'opération de restauration s'arrête de façon anormale.

note L'installation d'un service pack ou un correctif logiciel créer modifications le numéro de version du serveur et serveur versions sont toujours incrémentielles.

Voici quelques scénarios dans lesquels ce problème peut se produire :
  • Un utilisateur tente de restaurer une base de données système sur un serveur à partir d'une sauvegarde effectuée sur le serveur serveurs B. A et B sont sur les versions serveur différent. Par exemple, serveur A peut-être sur une version RTM et serveur B peut se trouver sur un service pack 1 (SP1) version.
  • Un utilisateur tente de restaurer une base de données système à partir d'une sauvegarde effectuée sur le même serveur. Toutefois, le serveur a été exécuter une version différente lorsque la sauvegarde s'est produite. C'est-à-dire que le serveur a été mis à niveau depuis la sauvegarde a été effectuée.

Contournement

Le processus de restauration dans une telle situation est assez impliqués et utilisé qu'en dernier ressort.

La première étape lors pour contourner ce problème consiste à déterminer la version actuelle du serveur et le serveur SQL Server créer sur lequel la sauvegarde a été effectuée.

Microsoft SQL Server 2000 et Microsoft SQL Server 2005 fournissent deux méthodes suivantes pour déterminer la version de SQL Server en cours :
  • méthode 1
    SELECT @@version
    ce code renvoie texte semblable à:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • méthode 2
    SELECT SERVERPROPERTY('ProductVersion')
    ce code renvoie texte semblable à:
    8.00.192
    (1 row(s) affected)
Le but de cet article, ce numéro de version est référencé en tant que le "SQL Server Build" dans le reste de cet article.

Vous pouvez déterminer la version sur laquelle la sauvegarde à l'aide la commande suivante sur le fichier de sauvegarde :
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
dans la sortie qui est générée, les trois (3) colonnes suivantes fournir les informations de version de serveur :
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
pour les besoins de cet article, ce numéro de version est référencé en tant que la « sauvegarde Build" pour le reste de cet article.

Dans l'exemple, la "SQL Server Build" est 8.00.192, tandis que la « sauvegarde Build" est 8.00.176. Car les deux versions sont différentes, l'opération de restauration n'est pas permise et message d'erreur 3168 se produit.

Le processus de restauration pour contourner ce problème varie selon la base de données système de l'utilisateur est essayez de restaurer. Comme une mesure de précaution, Microsoft vous recommande que vous effectuer une sauvegarde de bases de tous les vos données existantes (bases de système et utilisateur données) avant de procéder à une de ces étapes.

Si la tentative de restauration se trouve dans la base de données principale , vous pouvez utiliser la procédure suivante pour tenter une restauration réussie :
  1. Détacher les bases de données utilisateur toutes les qui existent sur le système en utilisant la procédure stockée le sp_detach_db . Pour plus d'informations sur le détachement de bases de données utilisateur, reportez-vous à la rubrique « association et bases de Detaching données » dans en ligne de SQL Server 2000. Si vous utilisez SQL Server 2005, consultez le « Detaching et attacher une base de données » rubrique dans la documentation en ligne de SQL Server 2005 de. Comme une vérification externe, la requête suivante renvoie une liste de toutes les bases de données utilisateur sur le système :
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Sauvegarder les bases de données msdb et de modèle sur le système à l'aide des commandes suivantes :
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Si le "sauvegarde Build" est supérieur à la « SQL Server Build", installer tous les packs service nécessaire ou correctif logiciel crée pour restaurer le logiciel serveur vers l'avant pour la « sauvegarde créer « qui a été déterminé précédemment. Puis, passez à étape 6.
  4. Supprimer SQL Server 2000 ou SQL Server 2005. Pour plus d'informations sur la suppression de SQL Server 2000, reportez-vous à la rubrique « Comment faire pour supprimer SQL Server 2000 » dans en ligne de SQL Server 2000.
  5. Réinstallez SQL Server 2000 ou SQL Server 2005 et tout le nécessaire service packs correctif builds ou pour restaurer le logiciel serveur vers l'avant pour la « sauvegarde créer « qui a été déterminé précédemment.
  6. Démarrer le serveur en mode d'utilisateur unique et restaurer la base de données master en utilisant le fichier de sauvegarde pour cette version. Pour savoir comment restaurer la base de données maître , reportez-vous à la rubrique de base de données « restaurer le maître de à partir d'une sauvegarde en cours » dans en ligne de SQL Server 2000. Si vous utilisez SQL Server 2005, reportez-vous à la rubrique « Restauration de la base de données principale documentation en ligne de SQL Server 2005 de.
  7. Après avoir correctement restauré la base de données principale , vous devez arrêter et redémarrer le service SQL Server.
  8. Si le "sauvegarde Build" est supérieur à la « SQL Server Build", passez à étape 10.
  9. Réappliquez les service packs ou correctif logiciel crée nécessaires pour restaurer le logiciel serveur vers l'avant vers la « version SQL Server ».
  10. Restaurer les bases de données msdb et le modèle à partir de la sauvegarde créé à l'étape 2. Si vous utilisez SQL Server 2005, reportez-vous à la rubrique « Restauration des bases de données de modèle et msdb documentation en ligne de SQL Server 2005 de.
  11. Rattacher toutes les bases de données utilisateur en utilisant la procédure stockée le sp_attach_db . Pour plus d'informations sur la façon de rattacher la base de données, reportez-vous à la rubrique « association et bases de Detaching données » dans en ligne de SQL Server 2000.
Les modifications apportées à la base de données master après exécution de la sauvegarde du masque sont maintenant perdu et devez manuellement réapplique.
Si vous essayez de l'opération de restauration sur le modèle ou de la base de données msdb , vous pouvez utiliser les étapes suivantes pour contourner ce problème. Pour illustrer cette procédure avec un exemple, cet article fait référence à du serveur d'origine sur lequel une de ces bases de données, dites msdb , doit être restauré en tant que serveur a. Cette procédure implique l'installation SQL Server sur un autre serveur B pour éviter la message d'erreur 3168. L'hypothèse est bien sûr, que vous avez uniquement une sauvegarde valide à partir d'une version antérieure pour le msdb sur le serveur a.
  1. Installez SQL Server 2000 sur serveur B (avec les mêmes paramètres de classement en tant que serveur A) et les service packs ou versions du correctif nécessaires pour obtenir le logiciel serveur pour la « sauvegarde créer ».
  2. Après que SQL Server 2000 a été installé, démarrez le service SQL Server et essayez restaurer la base de données msdb à partir le fichier de sauvegarde. La fonctionne la restauration si le serveur de génération et la version sur laquelle la sauvegarde a été effectuée sont identiques.
  3. Si le "sauvegarde Build" est supérieur à la "en cours Build", passez à étape 5.
  4. Après une restauration réussie, mise à niveau SQL Server 2000 sur le serveur B en appliquant les service packs ou correctifs crée nécessaires pour restaurer le logiciel serveur avant le "en cours Build".
  5. Une fois la mise à niveau terminée, effectuez une sauvegarde de la base de données msdb . Maintenant vous ne pouvez restaurer à partir de cette sauvegarde sur le serveur A, compte tenu que la version du serveur sur lequel la sauvegarde a été effectuée et le "en cours Build" sont identique.
La même procédure fonctionne de la base de données modèle ainsi. Là encore, les modifications apportées à ces bases de données depuis la sauvegarde a été effectuée sont perdues et doivent manuellement réapplique.

Plus d'informations

Il est toujours recommandé d'avoir une stratégie de sauvegarde en cours et efficace. Cette restriction est encore un autre exemple de pourquoi une bonne stratégie de sauvegarde est importante. Lumière de cette restriction, vous devez effectuer une sauvegarde de vos bases de données système dès que la mise à niveau votre serveur lorsque vous installez un service pack ou une version de correctif logiciel.

Propriétés

Numéro d'article: 264474 - Dernière mise à jour: jeudi 22 février 2007 - Version: 6.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Mots-clés : 
kbmt kbbackup kbprb KB264474 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 264474
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com