Microsoft distribuie remedierile Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) sau Microsoft SQL Server 2008 sau Microsoft SQL Server 2012 într-un singur fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare versiune nouă conține toate remedierile rapide și toate actualizările de securitate care au fost incluse în actualizarea anterioară SQL Server 2008 R2 Service Pack 1 (SP1) sau SQL Server 2008 sau Microsoft SQL Server 2012.
Simptome
Restaurarea unei baze de date în Microsoft SQL Server 2008 R2 sau în Microsoft SQL Server 2008 sau în Microsoft SQL Server 2012 poate dura mult timp.
Cauză
Această problemă apare deoarece este nevoie de mult timp pentru a construi lista Fișier jurnal virtual (VLF) atunci când există multe fișiere VLFs în baza de date.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2012
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 1 pentru SQL Server 2012. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vizualiza articolul în Baza de cunoștințe Microsoft:
2679368 Pachetul de actualizare cumulativă 1 pentru SQL Server 2012Note 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 remedierea anterioară a SQL Server 2012. Microsoft recomandă 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:
2692828 Compilările SQL Server 2012 care au fost lansate după lansarea SQL Server 2012 Trebuie să aplicați o remediere rapidă SQL Server 2012 la o instalare de SQL Server 2012.
SQL Server 2008 Service Pack 2
Remedierea pentru această problemă a fost lansată pentru prima dată în Actualizarea cumulativă 8 pentru SQL Server 2008 Service Pack 2. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vizualiza articolul în Baza de cunoștințe Microsoft:
2648096 Pachetul de actualizare cumulativă 8 pentru SQL Server 2008 Service Pack 2Note Deoarece compilările sunt cumulative, fiecare lansare nouă de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în ediția anterioară de remediere SQL Server 2008. Microsoft recomandă 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:
2402659 Compilările SQL Server 2008 care au fost lansate după lansarea SQL Server 2008 Service Pack 2 SQL Server 2008 sunt create pentru anumite pachete Service Pack SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 2 la o instalare de SQL Server 2008 Service Pack 2. În mod implicit, orice remediere rapidă furnizată într-un SQL Server pachet Service Pack este inclusă în următorul pachet Service Pack SQL Server.
SQL Server 2008 Service Pack 3
Remedierea pentru această problemă a fost lansată pentru prima dată în Actualizarea cumulativă 3 pentru SQL Server 2008 Service Pack 3. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vizualiza articolul în Baza de cunoștințe Microsoft:
2648098 Pachetul de actualizare cumulativă 3 pentru SQL Server 2008 Service Pack 3Note Deoarece compilările sunt cumulative, fiecare lansare nouă de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în ediția anterioară de remediere a SQL Server 2008. Microsoft recomandă 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:
2629969 Compilările SQL Server 2008 care au fost lansate după lansarea SQL Server 2008 Service Pack 3 pentru Microsoft SQL Server 2008 sunt create pentru anumite pachete Service Pack SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 3 la o instalare de SQL Server 2008 Service Pack 3. În mod implicit, orice remediere rapidă furnizată într-un SQL Server pachet Service Pack este inclusă în următorul pachet Service Pack SQL Server.
Pachetul de actualizare cumulativă 11 pentru SQL Server 2008 R2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 11. 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:
2633145 Pachetul de actualizare cumulativă 11 pentru SQL Server 2008 R2Note Deoarece compilările sunt cumulative, fiecare lansare 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
Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 SP1
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4. Pentru mai multe informații despre obținerea acestui pachet de actualizare cumulativă pentru SQL Server 2008 R2 SP1, faceți clic pe următorul număr de articol pentru a vizualiza articolul în Baza de cunoștințe Microsoft:
2633146 Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 SP1Note Deoarece compilările sunt cumulative, fiecare lansare nouă de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în SQL Server de remediere anterioară 2008 R2 SP1. 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:
2567616 Compilările SQL Server 2008 R2 care au fost lansate după lansarea SQL Server 2008 R2 SP1
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Mai multe informații
Puteți verifica numărul de segmente VLF revizuind fișierul jurnal de erori SQL și găsind numărul secvenței de jurnal (LSN) în fiecare fișier de backup al jurnalului de tranzacții. Primele cifre aflate înaintea simbolului două puncte din LSN corespund numărului de LSN.De exemplu, primul număr din primul mesaj informativ pentru LSN este 1. Cu toate acestea, primul număr din al doilea mesaj informativ pentru LSN este 100001. În acest scenariu, există 100.000 de fișiere VLFs care sunt utilizate între ora primului mesaj informativ și a celui de-al doilea mesaj informativ. Prin urmare, jurnalul de tranzacții fragmentate înregistrate care are multe Files jurnal virtual (VLFs) seamănă cu următoarele:
{S-a făcut backup pentru Jurnal. Bază de date: numelemeu, data(ora creării): 2010/07/08(12:36:46), primul LSN: 1:5068:70, ultimul LSN: 1:5108:1, numărul de dispozitive dump: 1, informații despre dispozitiv: (FIȘIER=1, TIP=DISC: {'C:\folder\logbackup1.trn'}). Acesta este doar un mesaj informativ. Nu este necesară nicio acțiune a utilizatorului.S-a făcut backup jurnalului. Bază de date: numelemeu, data(ora) creării: 2010/07/08(15:36:46), primul LSN: 100001:5108:1, ultimul LSN: 100002:5108:1, numărul de dispozitive dump: 1, informații despre dispozitiv: (FIȘIER=2, TIP=DISC: {'C:\folder\logbackup2.trn'}). Acesta este doar un mesaj informativ. Nu este necesară nicio acțiune a utilizatorului.}
Referințe
Pentru mai multe informații despre numerele de secvență de jurnal (LSN), vizitați următorul site web MSDN:
Informații generale despre numerele secvenței de jurnal
Pentru mai multe informații despre modul în care o structură de fișier jurnal poate afecta timpul de recuperare a bazei de date, vizitați următorul site web MSDN:
Cum poate afecta o structură de fișier jurnal timpul de recuperare a bazei de datePentru mai multe informații despre fișierele VFS jurnal de tranzacții, vizitați următorul site web MSDN:
Soluție de evitare
-
Așteptați ca operațiunea de restaurare sau recuperare să se termineDacă aveți o bază de date nerecuperată care se confruntă cu o performanță lentă atunci când restaurați sau recuperați baza de date, poate fi necesar să așteptați terminarea operațiunii de restaurare sau recuperare. De exemplu, este posibil să vedeți starea offline sau starea de recuperare în SQL Server Management Studio (SSMS) pentru o bază de date nerecuperată. Oprirea SQL Server nu oferă, de obicei, ajutor pentru o recuperare lentă și poate dura mai mult timp pentru a repeta aceeași fază de analiză de recuperare, faza de refacere sau faza de anulare.
-
Evitați restaurarea secvenței de jurnal de tranzacții care conține mii de fișiere VLFsDacă întâmpinați performanța lentă în timp ce restaurați și recuperați o bază de date utilizând un fișier de backup, puteți evita restaurarea secvențelor jurnalului de tranzacții care conțin mii de fișiere VLFs. Pentru a identifica fișierul de backup care are cele mai multe fișiere jurnal virtuale înregistrate, utilizați următoarea instrucțiune pentru a vedea coloanele FirstLSN și LastLSN în fișierele de backup ale jurnalului: RESTAURAȚI HEADERONLY DE PE DISK='C:\folder\file.trn'Puteți decide să evitați restaurarea fișierelor de backup ale jurnalului. Sau puteți utiliza instrucțiunea STOP AT din comenzile RESTORE pentru a evita părțile foarte fragmentate ale jurnalelor de tranzacții. Dacă nu restaurați complet secvențele de jurnal până la cel mai recent punct din timp în timpul unui scenariu de recuperare a erorilor, pierderile de date apar în baza de date SQL Server. Această pierdere de date apare deoarece nu se păstrează toate tranzacțiile. Prin urmare, există o decizie de compromis de afaceri. Puteți restaura complet un jurnal de tranzacții foarte fragmentat. Totuși, această operațiune poate dura mai multe ore. Sau puteți utiliza instrucțiunea STOP AT în recuperare pentru a opri recuperarea înainte de partea foarte fragmentată a jurnalului. Cu toate acestea, tranzacțiile lipsă pe care le omiteți se pierd.Notă Fără a instala această remediere rapidă, nu există de obicei nici un recurs sigur pentru recuperare accelerată după ce reporniți SQL Server. SQL Server trebuie să găsească lista de fișiere VLFs pentru a analiza fișierele jurnal, pentru a reface tranzacțiile finalizate, apoi pentru a anula tranzacțiile incomplete pentru a termina recuperarea pentru a aduce baza de date online în siguranță. Nu puteți omite în siguranță tranzacțiile în timpul recuperării.