Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie erstellen eine Datenbank in Microsoft SQL Server 2008 R2.
-
Sie aktualisieren den logischen Namen der Datenbank mithilfe der ALTER DATABASE-Anweisung.
-
Sie führen eine vollständige Sicherung der Datenbank durch. Hinweis Eine vollständige Datenbanksicherungsdatei wird generiert, nachdem die Sicherung ausgeführt wurde.
-
Sie versuchen, die Datenbank aus der Datenbanksicherungsdatei wiederherzustellen.
In diesem Szenario wird die folgende Fehlermeldung angezeigt:
Msg 3234, Ebene 16, Status 2, Zeile 1Logische Datei "<logischer Dateiname>" ist nicht Teil der Datenbank '<Datenbankname>'. Verwenden Sie RESTORE FILELISTONLY, um die logischen Dateinamen aufzulisten.Msg 3013, Level 16, State 1, Line 1RESTORE DATABASE wird nicht ordnungsgemäß beendet.
Wenn Sie die RESTORE FILELISTONLY-Anweisung verwenden, um die Sicherungsdatei zu überprüfen, stellen Sie fest, dass der logische Dateiname, den Sie aktualisiert haben, beschädigt ist. Das letzte Zeichen des logischen Dateinamens wird abgeschnitten. Beispielsweise versuchen Sie, den logischen Namen für eine Datenbank zu aktualisieren, um DB_modified. Es wird jedoch fälschlicherweise in DB_modifie in der Sicherungsdatei geändert.Hinweis Dieses Problem tritt nicht auf, wenn Sie den SQL Server Dienst neu starten, nachdem der logische Dateiname aktualisiert wurde.
Lösung
Informationen zum kumulativen Update
SQL Server 2008 R2
Die Behebung dieses Problems wurde erstmals im kumulativen Update 6 veröffentlicht. Weitere Informationen zum Abrufen dieses kumulativen Updatepakets für SQL Server 2008 R2 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2489376 Kumulatives Updatepaket 6 für SQL Server 2008 R2 Hinweis Da die Builds kumulativ sind, enthält jedes neue Release alle Hotfixes und alle Sicherheitsfixes, die im vorherigen SQL Server 2008 R2-Fixrelease enthalten waren. Es wird empfohlen, dass Sie das neueste Updaterelease anwenden, das diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
981356 Die SQL Server 2008 R2-Builds, die veröffentlicht wurden, nachdem SQL Server 2008 R2 veröffentlicht wurde
Informationen zum Hotfix
Ein unterstützter Hotfix ist von Microsoft verfügbar. Dieser Hotfix soll jedoch nur das in diesem Artikel beschriebene Problem beheben. Wenden Sie diesen Hotfix nur auf Systeme an, bei denen das in diesem Artikel beschriebene Problem auftritt. Dieser Hotfix erhält möglicherweise zusätzliche Tests. Wenn Sie von diesem Problem nicht stark betroffen sind, empfiehlt es sich daher, auf das nächste Softwareupdate zu warten, das diesen Hotfix enthält.Wenn der Hotfix zum Download verfügbar ist, finden Sie oben in diesem Knowledge Base-Artikel den Abschnitt "Hotfixdownload verfügbar". Wenn dieser Abschnitt nicht angezeigt wird, wenden Sie sich an den Microsoft-Kundendienst und -Support, um den Hotfix zu erhalten. Hinweis Wenn zusätzliche Probleme auftreten oder eine Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die üblichen Supportkosten gelten für zusätzliche Supportfragen und -probleme, die nicht für diesen spezifischen Hotfix geeignet sind. Eine vollständige Liste der Telefonnummern für Den Microsoft-Kundendienst und -Support oder zum Erstellen einer separaten Serviceanfrage finden Sie auf der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=supportHinweis Im Formular "Hotfixdownload verfügbar" werden die Sprachen angezeigt, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, liegt dies daran, dass für diese Sprache kein Hotfix verfügbar ist.
Voraussetzungen
Um diesen Hotfix anwenden zu können, muss Microsoft SQL Server 2008 R2 installiert sein.
Neustartanforderung
Sie müssen den Computer nicht neu starten, nachdem Sie diesen Hotfix angewendet haben.
Ersetzte Hotfixes
Dieser Hotfix ersetzt keinen anderen Hotfix.
Dateiinformationen
Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Datums- und Uhrzeitangaben für diese Dateien sind in der "Universal Time Coordinated" (UTC) angegeben. Wenn Sie die Dateiinformationen anzeigen, werden diese Angaben in die Ortszeit umgewandelt. Den Unterschied zwischen UTC- und Ortszeit können Sie in der Systemsteuerung unter Datum und Uhrzeit mithilfe der Angaben auf der Registerkarte Zeitzone ermitteln.
32-Bit-SQL Server 2008 R2 Database Services Core Instance
|
File name |
Dateiversion |
Dateigröße |
Datum |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
24-Dez-10 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
24-Dez-10 |
0:33 |
x86 |
|
etwcls.mof |
Nicht zutreffend |
1116328 |
23-Dez-10 |
3:54 |
Nicht zutreffend |
|
instmsdb.sql |
Nicht zutreffend |
2241260 |
22-Dez-10 |
20:49 |
Nicht zutreffend |
|
mssqlsystemresource.ldf |
Nicht zutreffend |
524288 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
mssqlsystemresource.mdf |
Nicht zutreffend |
63569920 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
24-Dez-10 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
24-Dez-10 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
24-Dez-10 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
Nicht zutreffend |
2371245 |
23-Dez-10 |
3:53 |
Nicht zutreffend |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
24-Dez-10 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
24-Dez-10 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
24-Dez-10 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
24-Dez-10 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
24-Dez-10 |
0:21 |
x86 |
64-Bit-SQL Server 2008 R2 Database Services Core Instance
|
File name |
Dateiversion |
Dateigröße |
Datum |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
23-Dez-10 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
23-Dez-10 |
23:40 |
x64 |
|
etwcls.mof |
Nicht zutreffend |
1116328 |
23-Dez-10 |
3:54 |
Nicht zutreffend |
|
instmsdb.sql |
Nicht zutreffend |
2241260 |
22-Dez-10 |
20:49 |
Nicht zutreffend |
|
mssqlsystemresource.ldf |
Nicht zutreffend |
524288 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
mssqlsystemresource.mdf |
Nicht zutreffend |
63569920 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
23-Dez-10 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
23-Dez-10 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
23-Dez-10 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
Nicht zutreffend |
2371245 |
23-Dez-10 |
3:53 |
Nicht zutreffend |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
23-Dez-10 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
23-Dez-10 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
23-Dez-10 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
23-Dez-10 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
23-Dez-10 |
23:37 |
x64 |
Itanium-architektur SQL Server 2008 R2 Database Services Core Instance
|
File name |
Dateiversion |
Dateigröße |
Datum |
Time |
Platform |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
23-Dez-10 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
23-Dez-10 |
23:05 |
ia64 |
|
etwcls.mof |
Nicht zutreffend |
1116328 |
23-Dez-10 |
3:54 |
Nicht zutreffend |
|
instmsdb.sql |
Nicht zutreffend |
2241260 |
22-Dez-10 |
20:49 |
Nicht zutreffend |
|
mssqlsystemresource.ldf |
Nicht zutreffend |
524288 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
mssqlsystemresource.mdf |
Nicht zutreffend |
63569920 |
22-Dez-10 |
22:52 |
Nicht zutreffend |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
23-Dez-10 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
23-Dez-10 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
23-Dez-10 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
Nicht zutreffend |
2371245 |
23-Dez-10 |
3:53 |
Nicht zutreffend |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
23-Dez-10 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
23-Dez-10 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
23-Dez-10 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
23-Dez-10 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
23-Dez-10 |
22:56 |
ia64 |
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Problemumgehung
Um dieses Problem zu umgehen, verwenden Sie eine der folgenden beiden Methoden:
-
Nachdem der logische Dateiname geändert wurde, führen Sie die folgenden Anweisungen aus, um die Datenbank neu zu starten: ALTER DATABASE <Datenbankname> SET OFFLINEALTER DATABASE <Datenbankname> SET ONLINE
-
Wenn Sie den logischen Dateinamen ändern, fügen Sie ein Dummy-Leerzeichen in den neuen logischen Namen an. Wenn Sie beispielsweise den logischen Namen in DB_modified ändern möchten, verwenden Sie die folgende Anweisung, um den logischen Dateinamen zu ändern: ALTER DATABASE <Datenbankname> MODIFY FILE (NAME=N'<Datenbankname>', NEWNAME='DB_modified ') -- An NEWNAME an NEWNAME anfügen
Informationsquellen
Weitere Informationen zur Alter DATABASE Transact-SQL-Anweisung finden Sie auf der folgenden Website des Microsoft Developer Network (MSDN):
Allgemeine Informationen zur Alter DATABASE Transact-SQL-AnweisungWeitere Informationen zur Transact-SQL-Anweisung RESTORE FILELISTONLY finden Sie auf der folgenden Website des Microsoft Developer Network (MSDN):
Allgemeine Informationen zur Transact-SQL-Anweisung RESTORE FILELISTONLY