Simptome
Luați în considerare următorul scenariu:
-
Creați o bază de date în Microsoft SQL Server 2008 R2.
-
Actualizați numele logic al bazei de date utilizând instrucțiunea ALTER DATABASE.
-
Efectuați o copie backup completă a bazei de date. Notă Un fișier de backup complet al bazei de date este generat după efectuarea copierii backup.
-
Încercați să restaurați baza de date din fișierul de backup al bazei de date.
În acest scenariu, primiți următorul mesaj de eroare:
Msg 3234, Nivel 16, Stare 2, Fișier logic linia 1'<nume logic de fișier>' nu face parte din baza de date '<numele bazei de date>'. Utilizați RESTORE FILELISTONLY pentru a lista numele logice de fișiere.Msg 3013, Nivel 16, Starea 1, Linia 1RESTAURARE BAZA DE DATE se termină anormal.
Dacă utilizați instrucțiunea RESTORE FILELISTONLY pentru a verifica fișierul backup, descoperiți că numele logic de fișier pe care l-ați actualizat este deteriorat. Ultimul caracter al numelui de fișier logic este trunchiat. De exemplu, încercați să actualizați numele logic al unei baze de date pentru a DB_modified. Cu toate acestea, este modificat incorect în DB_modifie în fișierul de backup.Notă Această problemă nu apare dacă reporniți serviciul SQL Server după actualizarea numelui logic de fișier.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2008 R2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 6. Pentru mai multe informații despre cum să obțineți acest pachet de actualizare cumulativă pentru SQL Server 2008 R2, faceți clic pe următorul număr de articol pentru a vizualiza articolul în Baza de cunoștințe Microsoft:
2489376 Pachetul de actualizare cumulativă 6 pentru SQL Server 2008 R2 Notă Deoarece compilările sunt cumulative, fiecare ediție nouă de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea de remediere anterioară a SQL Server 2008 R2. Vă recomandăm să luați în considerare aplicarea celei mai recente remedieri care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
981356 Compilările SQL Server 2008 R2 care au fost lansate după lansarea SQL Server 2008 R2
Informații despre remedierea rapidă
O remediere rapidă acceptată este disponibilă de la Microsoft. Totuși, această remediere rapidă este destinată să corecteze doar problema descrisă în acest articol. Aplicați această remediere rapidă doar la sistemele care se confruntă cu problema descrisă în acest articol. Este posibil ca această remediere rapidă să primească testări suplimentare. Prin urmare, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următoarea actualizare de software care conține această remediere rapidă.Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcarea remedierii rapide este disponibilă" în partea de sus a acestui articol din Baza de cunoștințe. Dacă această secțiune nu apare, contactați Serviciul pentru clienți și asistența Microsoft pentru a obține remedierea rapidă. Notă Dacă apar probleme suplimentare sau dacă este necesară o depanare, poate fi necesar să creați o solicitare de serviciu separată. Costurile uzuale de asistență se vor aplica la întrebări și probleme suplimentare de asistență care nu se califică pentru această remediere rapidă specifică. Pentru o listă completă a numerelor de telefon ale Serviciului pentru clienți și asistență Microsoft sau pentru a crea o solicitare de serviciu separată, vizitați următorul site web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcarea remedierii rapide este disponibilă" afișează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba, cauza este că nu este disponibilă o remediere rapidă pentru limba respectivă.
Cerinţe preliminare
Pentru a aplica această remediere rapidă, trebuie să aveți Microsoft SQL Server 2008 R2 instalat.
Cerință repornire
Nu trebuie să reporniți computerul după ce aplicați această remediere rapidă.
Informații despre înlocuirea remedierii rapide
Această remediere rapidă nu înlocuiește nicio altă remediere rapidă.
Informații despre fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fișier (sau atributele de fișier mai recente) care sunt listate în tabelul următor. Datele și orele pentru aceste fișiere sunt listate în Timp universal (UTC). Când vizualizați informațiile despre fișier, acestea sunt convertite la ora locală. Pentru a găsi diferența dintre UTC și ora locală, utilizați fila Fus orar din elementul Dată și oră din Panou de control.
Instanță nucleu servicii de baze de date pe 32 de biți SQL Server 2008 R2
|
Numele fișierului |
Versiunea fișierului |
Dimensiunea fișierului |
Data |
Ora |
Platformă |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
24-Dec-10 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
24-Dec-10 |
0:33 |
x86 |
|
etwcls.mof |
Nu se aplică |
1116328 |
23-dec-10 |
3:54 |
Nu se aplică |
|
instmsdb.sql |
Nu se aplică |
2241260 |
22 dec-10 |
20:49 |
Nu se aplică |
|
mssqlsystemresource.ldf |
Nu se aplică |
524288 |
22 dec-10 |
22:52 |
Nu se aplică |
|
mssqlsystemresource.mdf |
Nu se aplică |
63569920 |
22 dec-10 |
22:52 |
Nu se aplică |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
24-Dec-10 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
24-Dec-10 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
24-Dec-10 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
Nu se aplică |
2371245 |
23-dec-10 |
3:53 |
Nu se aplică |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
24-Dec-10 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
24-Dec-10 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
24-Dec-10 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
24-Dec-10 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
24-Dec-10 |
0:21 |
x86 |
Instanță nucleu servicii de baze de date pe 64 de biți SQL Server 2008 R2
|
Numele fișierului |
Versiunea fișierului |
Dimensiunea fișierului |
Data |
Ora |
Platformă |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
23-dec-10 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
23-dec-10 |
23:40 |
x64 |
|
etwcls.mof |
Nu se aplică |
1116328 |
23-dec-10 |
3:54 |
Nu se aplică |
|
instmsdb.sql |
Nu se aplică |
2241260 |
22 dec-10 |
20:49 |
Nu se aplică |
|
mssqlsystemresource.ldf |
Nu se aplică |
524288 |
22 dec-10 |
22:52 |
Nu se aplică |
|
mssqlsystemresource.mdf |
Nu se aplică |
63569920 |
22 dec-10 |
22:52 |
Nu se aplică |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
23-dec-10 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
23-dec-10 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
23-dec-10 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
Nu se aplică |
2371245 |
23-dec-10 |
3:53 |
Nu se aplică |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
23-dec-10 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
23-dec-10 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
23-dec-10 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
23-dec-10 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
23-dec-10 |
23:37 |
x64 |
Itanium-architecture SQL Server 2008 R2 Database Services Core Instance
|
Numele fișierului |
Versiunea fișierului |
Dimensiunea fișierului |
Data |
Ora |
Platformă |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
23-dec-10 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
23-dec-10 |
23:05 |
ia64 |
|
etwcls.mof |
Nu se aplică |
1116328 |
23-dec-10 |
3:54 |
Nu se aplică |
|
instmsdb.sql |
Nu se aplică |
2241260 |
22 dec-10 |
20:49 |
Nu se aplică |
|
mssqlsystemresource.ldf |
Nu se aplică |
524288 |
22 dec-10 |
22:52 |
Nu se aplică |
|
mssqlsystemresource.mdf |
Nu se aplică |
63569920 |
22 dec-10 |
22:52 |
Nu se aplică |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
23-dec-10 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
23-dec-10 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
23-dec-10 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
Nu se aplică |
2371245 |
23-dec-10 |
3:53 |
Nu se aplică |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
23-dec-10 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
23-dec-10 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
23-dec-10 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
23-dec-10 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
23-dec-10 |
22:56 |
ia64 |
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Soluție de evitare
Pentru a rezolva această problemă, utilizați una dintre următoarele două metode:
-
După ce se modifică numele de fișier logic, rulați următoarele instrucțiuni pentru a reporni baza de date:ALTER DATABASE <numele bazei de date> SET OFFLINEALTER DATABASE <numele bazei de date> SET ONLINE
-
Atunci când modificați numele logic de fișier, adăugați un caracter spațiu inactiv în noul nume logic. De exemplu, dacă doriți să modificați numele logic în DB_modified, utilizați următoarea instrucțiune pentru a modifica numele logic de fișier:ALTER DATABASE <numele bazei de date> MODIFY FILE (NAME=N'<nume bază de date>', NEWNAME='DB_modified ') -- Adăugare ' la NEWNAME
Referințe
Pentru mai multe informații despre instrucțiunea ALTER DATABASE Transact-SQL, vizitați următorul site web Microsoft Developer Network (MSDN):
Informații generale despre instrucțiunea ALTER DATABASE Transact-SQLPentru mai multe informații despre instrucțiunea RESTORE FILELISTONLY Transact-SQL, vizitați următorul site web Microsoft Developer Network (MSDN):
Informații generale despre instrucțiunea RESTORE FILELISTONLY Transact-SQL