Symptomy
Rozpatrzmy następujący scenariusz:
-
Tworzysz bazę danych w programie Microsoft SQL Server 2008 R2.
-
Logiczną nazwę bazy danych można zaktualizować za pomocą instrukcji ALTER DATABASE.
-
Wykonasz pełną kopię zapasową bazy danych. Uwaga Po wykonaniu kopii zapasowej zostanie wygenerowany pełny plik kopii zapasowej bazy danych.
-
Próbujesz przywrócić bazę danych z pliku kopii zapasowej bazy danych.
W tym scenariuszu jest wyświetlany następujący komunikat o błędzie:
Msg 3234, Poziom 16, Województwo 2, Wiersz 1Plik logiczny '<nazwa pliku logicznego>' nie jest częścią bazy danych "<nazwa bazy danych>". Użyj funkcji PRZYWRÓĆ FILELISTONLY, aby wyświetlić listę logicznych nazw plików.Msg 3013, Level 16, State 1, Line 1RESTORE DATABASE is terminating abnormally.
Jeśli użyjesz instrukcji RESTORE FILELISTONLY do sprawdzenia pliku kopii zapasowej, okaże się, że zaktualizowana nazwa pliku logicznego jest uszkodzona. Ostatni znak nazwy pliku logicznego zostanie obcięty. Na przykład próbujesz zaktualizować nazwę logiczną bazy danych, aby DB_modified. Jednak jest on nieprawidłowo zmieniony na DB_modifie w pliku kopii zapasowej.Uwaga Ten problem nie występuje po ponownym uruchomieniu usługi SQL Server po zaktualizowaniu nazwy pliku logicznego.
Rozwiązanie
Informacje o aktualizacji zbiorczej
SQL Server 2008 R2
Poprawka rozwiązła ten problem została opublikowana po raz pierwszy w aktualizacji zbiorczej 6. Aby uzyskać więcej informacji na temat uzyskiwania tego pakietu aktualizacji zbiorczej dla SQL Server 2008 R2, kliknij następujący numer artykułu, aby wyświetlić ten artykuł w bazie wiedzy Microsoft Knowledge Base:
2489376 Pakiet aktualizacji zbiorczej 6 dla SQL Server 2008 R2 Uwaga Ponieważ kompilacje są skumulowane, każda nowa wersja poprawki zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
981356 Kompilacje SQL Server 2008 R2 wydane po SQL Server 2008 R2 zostały wydane
Informacje dotyczące poprawek
Obsługiwana poprawka jest dostępna od firmy Microsoft. Jednak ta poprawka ma na celu naprawienie tylko problemu opisanego w tym artykule. Zastosuj tę poprawkę tylko do systemów, w których występuje problem opisany w tym artykule. Ta poprawka może wymagać dodatkowych testów. Dlatego jeśli ten problem cię nie dotyczy poważnie, zalecamy zaczekanie na kolejną aktualizację oprogramowania zawierającą tę poprawkę.Jeśli poprawka jest dostępna do pobrania, u góry tego artykułu z bazy wiedzy znajduje się sekcja "Dostępne do pobrania poprawki". Jeśli ta sekcja nie jest wyświetlana, skontaktuj się z działem obsługi klienta firmy Microsoft i pomocą techniczną w celu uzyskania poprawki. Uwaga Jeśli wystąpią dodatkowe problemy lub jest wymagane jakiekolwiek rozwiązywanie problemów, może być konieczne utworzenie osobnego żądania usługi. Typowe koszty pomocy technicznej będą miały zastosowanie do dodatkowych pytań dotyczących pomocy technicznej i problemów, które nie kwalifikują się do danej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta i pomocy technicznej firmy Microsoft lub utworzyć oddzielne żądanie obsługi, odwiedź następującą witrynę internetową firmy Microsoft:
http://support.microsoft.com/contactus/?ws=supportUwaga W formularzu "Dostępne do pobrania poprawki" są wyświetlane języki, dla których jest dostępna poprawka. Jeśli nie widzisz swojego języka, oznacza to, że poprawka nie jest dostępna dla tego języka.
Wymagania wstępne
Aby zastosować tę poprawkę, musisz mieć zainstalowany program Microsoft SQL Server 2008 R2.
Wymaganie ponownego uruchomienia
Po zastosowaniu tej poprawki nie trzeba ponownie uruchamiać komputera.
Informacje dotyczące zastępowania poprawek
Ta poprawka nie zastępuje żadnej innej poprawki.
Informacje dotyczące pliku
Angielska wersja tej poprawki zawiera atrybuty plików (lub nowsze atrybuty plików) wymienione w poniższej tabeli. Daty i godziny dla tych plików są wymienione w uniwersalnym czasie koordynowanym (UTC). Informacje o pliku są konwertowane na czas lokalny. Aby znaleźć różnicę między czasem UTC a czasem lokalnym, użyj karty Strefa czasowa w elemencie Data i godzina w Panel sterowania.
32-bitowy SQL Server 2008 R2 Database Services Core Instance
|
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Czas |
Platforma |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
24-Gru-10 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
24-Gru-10 |
0:33 |
x86 |
|
etwcls.mof |
Nie dotyczy |
1116328 |
23-Gru-10 |
3:54 |
Nie dotyczy |
|
instmsdb.sql |
Nie dotyczy |
2241260 |
22-Gru-10 |
20:49 |
Nie dotyczy |
|
mssqlsystemresource.ldf |
Nie dotyczy |
524288 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
Mssqlsystemresource.mdf |
Nie dotyczy |
63569920 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
24-Gru-10 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
24-Gru-10 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
24-Gru-10 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
Nie dotyczy |
2371245 |
23-Gru-10 |
3:53 |
Nie dotyczy |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
24-Gru-10 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
24-Gru-10 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
24-Gru-10 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
24-Gru-10 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
24-Gru-10 |
0:21 |
x86 |
64-bitowy SQL Server 2008 R2 Database Services Core Instance
|
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Czas |
Platforma |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
23-Gru-10 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
23-Gru-10 |
23:40 |
x64 |
|
etwcls.mof |
Nie dotyczy |
1116328 |
23-Gru-10 |
3:54 |
Nie dotyczy |
|
instmsdb.sql |
Nie dotyczy |
2241260 |
22-Gru-10 |
20:49 |
Nie dotyczy |
|
mssqlsystemresource.ldf |
Nie dotyczy |
524288 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
Mssqlsystemresource.mdf |
Nie dotyczy |
63569920 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
23-Gru-10 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
23-Gru-10 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
23-Gru-10 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
Nie dotyczy |
2371245 |
23-Gru-10 |
3:53 |
Nie dotyczy |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
23-Gru-10 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
23-Gru-10 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
23-Gru-10 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
23-Gru-10 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
23-Gru-10 |
23:37 |
x64 |
Architektura itanium SQL Server 2008 R2 Database Services Core Instance
|
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Czas |
Platforma |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
23-Gru-10 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
23-Gru-10 |
23:05 |
ia64 |
|
etwcls.mof |
Nie dotyczy |
1116328 |
23-Gru-10 |
3:54 |
Nie dotyczy |
|
instmsdb.sql |
Nie dotyczy |
2241260 |
22-Gru-10 |
20:49 |
Nie dotyczy |
|
mssqlsystemresource.ldf |
Nie dotyczy |
524288 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
Mssqlsystemresource.mdf |
Nie dotyczy |
63569920 |
22-Gru-10 |
22:52 |
Nie dotyczy |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
23-Gru-10 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
23-Gru-10 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
23-Gru-10 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
Nie dotyczy |
2371245 |
23-Gru-10 |
3:53 |
Nie dotyczy |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
23-Gru-10 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
23-Gru-10 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
23-Gru-10 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
23-Gru-10 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
23-Gru-10 |
22:56 |
ia64 |
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Obejście
Aby obejść ten problem, użyj jednej z dwóch następujących metod:
-
Po zmodyfikowaniu logicznej nazwy pliku uruchom następujące instrukcje, aby ponownie uruchomić bazę danych:ALTER DATABASE <nazwę bazy danych> USTAW OFFLINEALTER DATABASE <nazwę bazy danych> USTAW ONLINE
-
Po zmodyfikowaniu nazwy pliku logicznego w nowej, logicznej nazwie dołącz znak spacji manekina. Jeśli na przykład chcesz zmienić nazwę logiczną na DB_modified, zmodyfikuj nazwę pliku logicznego za pomocą poniższej instrukcji:ALTER DATABASE <nazwę bazy danych> MODIFY FILE (NAME=N'<nazwa bazy danych>', NEWNAME='DB_modified ') -- Dołącz ' do NEWNAME
Informacje
Aby uzyskać więcej informacji na temat instrukcji ALTER DATABASE Transact-SQL, odwiedź następującą witrynę internetową Microsoft Developer Network (MSDN):
Ogólne informacje o instrukcji ALTER DATABASE Transact-SQLAby uzyskać więcej informacji na temat instrukcji RESTORE FILELISTONLY Transact-SQL, odwiedź następującą witrynę internetową Microsoft Developer Network (MSDN):
Ogólne informacje na temat instrukcji RESTORE FILELISTONLY Transact-SQL