Symptômes
Prenons l’exemple du scénario suivant :
-
Vous créez une base de données dans Microsoft SQL Server 2008 R2.
-
Vous mettez à jour le nom logique de la base de données à l’aide de l’instruction ALTER DATABASE.
-
Vous effectuez une sauvegarde complète de la base de données. Remarque Un fichier de sauvegarde de base de données complet est généré une fois la sauvegarde effectuée.
-
Vous essayez de restaurer la base de données à partir du fichier de sauvegarde de base de données.
Dans ce scénario, le message d'erreur suivant s'affiche :
Msg 3234, Niveau 16, État 2, Ligne 1Le fichier logique «<nom de fichier logique>» ne fait pas partie de la base de données «<nom de base de données>». Utilisez RESTORE FILELISTONLY pour répertorier les noms de fichiers logiques.Msg 3013, Level 16, State 1, Line 1RESTORE DATABASE se termine anormalement.
Si vous utilisez l’instruction RESTORE FILELISTONLY pour case activée le fichier de sauvegarde, vous constatez que le nom de fichier logique que vous avez mis à jour est endommagé. Le dernier caractère du nom de fichier logique est tronqué. Par exemple, vous essayez de mettre à jour le nom logique d’une base de données pour DB_modified. Toutefois, elle est incorrectement modifiée en DB_modifie dans le fichier de sauvegarde.Remarque Ce problème ne se produit pas si vous redémarrez le service SQL Server après la mise à jour du nom de fichier logique.
Résolution
Informations sur les mises à jour cumulatives
SQL Server 2008 R2
Le correctif pour ce problème a été publié pour la première fois dans la mise à jour cumulative 6. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :
2489376 Package de mise à jour cumulative 6 pour SQL Server 2008 R2 Remarque Étant donné que les builds sont cumulatives, chaque nouvelle version de correctif contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version la plus récente du correctif qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
981356 Les builds SQL Server 2008 R2 qui ont été publiées après SQL Server 2008 R2 a été publiée
Informations sur le correctif logiciel
Un correctif logiciel pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif logiciel est destiné à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif logiciel uniquement aux systèmes qui rencontrent le problème décrit dans cet article. Ce correctif logiciel peut recevoir des tests supplémentaires. Par conséquent, si vous n’êtes pas gravement affecté par ce problème, nous vous recommandons d’attendre la prochaine mise à jour logicielle qui contient ce correctif logiciel.Si le correctif logiciel est disponible en téléchargement, il existe une section « Téléchargement du correctif logiciel disponible » en haut de cet article de la Base de connaissances. Si cette section n’apparaît pas, contactez le service clientèle et le support technique Microsoft pour obtenir le correctif logiciel. Remarque Si des problèmes supplémentaires se produisent ou si une résolution des problèmes est nécessaire, vous devrez peut-être créer une demande de service distincte. Les coûts de support habituels s’appliquent aux questions et problèmes de support supplémentaires qui ne sont pas éligibles pour ce correctif logiciel spécifique. Pour obtenir la liste complète des numéros de téléphone du service clientèle et du support technique Microsoft ou pour créer une demande de service distincte, visitez le site web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=supportRemarque Le formulaire « Téléchargement du correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c’est qu’un correctif logiciel n’est pas disponible pour cette langue.
Conditions préalables
Pour appliquer ce correctif, Microsoft SQL Server 2008 R2 doit être installé.
Nécessité de redémarrer
Vous n’avez pas besoin de redémarrer l’ordinateur après avoir appliqué ce correctif logiciel.
Informations sur le remplacement de correctif logiciel
Ce correctif logiciel ne remplace aucun autre correctif logiciel.
Informations sur les fichiers
La version anglaise de ce correctif logiciel contient les attributs de fichier (ou les attributs de fichier ultérieurs) répertoriés dans le tableau suivant. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l’heure UTC et l’heure locale, utilisez l’onglet Fuseau horaire dans l’élément Date et heure du Panneau de configuration.
Instance principale de Database Services 32 bits SQL Server 2008 R2
|
Nom du fichier |
Version du fichier |
Taille du fichier |
Date |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
24-Déc-10 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
24-Déc-10 |
0:33 |
x86 |
|
etwcls.mof |
Non applicable |
1116328 |
23-Déc-10 |
3:54 |
Non applicable |
|
instmsdb.sql |
Non applicable |
2241260 |
22-Déc-10 |
20:49 |
Non applicable |
|
mssqlsystemresource.ldf |
Non applicable |
524288 |
22-Déc-10 |
22:52 |
Non applicable |
|
mssqlsystemresource.mdf |
Non applicable |
63569920 |
22-Déc-10 |
22:52 |
Non applicable |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
24-Déc-10 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
24-Déc-10 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
24-Déc-10 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
Non applicable |
2371245 |
23-Déc-10 |
3:53 |
Non applicable |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
24-Déc-10 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
24-Déc-10 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
24-Déc-10 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
24-Déc-10 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
24-Déc-10 |
0:21 |
x86 |
Instance principale de Database Services 64 bits SQL Server 2008 R2
|
Nom du fichier |
Version du fichier |
Taille du fichier |
Date |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
23-Déc-10 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
23-Déc-10 |
23:40 |
x64 |
|
etwcls.mof |
Non applicable |
1116328 |
23-Déc-10 |
3:54 |
Non applicable |
|
instmsdb.sql |
Non applicable |
2241260 |
22-Déc-10 |
20:49 |
Non applicable |
|
mssqlsystemresource.ldf |
Non applicable |
524288 |
22-Déc-10 |
22:52 |
Non applicable |
|
mssqlsystemresource.mdf |
Non applicable |
63569920 |
22-Déc-10 |
22:52 |
Non applicable |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
23-Déc-10 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
23-Déc-10 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
23-Déc-10 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
Non applicable |
2371245 |
23-Déc-10 |
3:53 |
Non applicable |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
23-Déc-10 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
23-Déc-10 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
23-Déc-10 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
23-Déc-10 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
23-Déc-10 |
23:37 |
x64 |
Itanium-architecture SQL Server 2008 R2 Database Services Core Instance
|
Nom du fichier |
Version du fichier |
Taille du fichier |
Date |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
23-Déc-10 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
23-Déc-10 |
23:05 |
ia64 |
|
etwcls.mof |
Non applicable |
1116328 |
23-Déc-10 |
3:54 |
Non applicable |
|
instmsdb.sql |
Non applicable |
2241260 |
22-Déc-10 |
20:49 |
Non applicable |
|
mssqlsystemresource.ldf |
Non applicable |
524288 |
22-Déc-10 |
22:52 |
Non applicable |
|
mssqlsystemresource.mdf |
Non applicable |
63569920 |
22-Déc-10 |
22:52 |
Non applicable |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
23-Déc-10 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
23-Déc-10 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
23-Déc-10 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
Non applicable |
2371245 |
23-Déc-10 |
3:53 |
Non applicable |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
23-Déc-10 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
23-Déc-10 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
23-Déc-10 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
23-Déc-10 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
23-Déc-10 |
22:56 |
ia64 |
État
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Solution de contournement
Pour contourner ce problème, utilisez l’une des deux méthodes suivantes :
-
Une fois le nom de fichier logique modifié, exécutez les instructions suivantes pour redémarrer la base de données :ALTER DATABASE <nom de la base de données> SET OFFLINEALTER DATABASE <nom de base de données> SET ONLINE
-
Lorsque vous modifiez le nom du fichier logique, ajoutez un espace factice dans le nouveau nom logique. Par exemple, si vous souhaitez remplacer le nom logique par DB_modified, utilisez l’instruction suivante pour modifier le nom de fichier logique :ALTER DATABASE <nom de base de données> MODIFY FILE (NAME=N'<nom de base de données>', NEWNAME='DB_modified ') -- Append ' ' à NEWNAMENAME
Références
Pour plus d’informations sur l’instruction Transact-SQL ALTER DATABASE, visitez le site web MSDN (Microsoft Developer Network) suivant :
Informations générales sur l’instruction Transact-SQL ALTER DATABASEPour plus d’informations sur l’instruction Transact-SQL RESTORE FILELISTONLY, visitez le site web MSDN (Microsoft Developer Network) suivant :
Informations générales sur l’instruction Transact-SQL RESTORE FILELISTONLY