Microsoft distribuerer Rettelser til Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) eller Microsoft SQL Server 2008 eller Microsoft SQL Server 2012 i én fil, der kan downloades. Da rettelserne er kumulative, indeholder hver ny version alle hotfixes og alle de sikkerhedsopdateringer, der var inkluderet i den forrige SQL Server 2008 R2 Service Pack 1 (SP1) eller SQL Server 2008- eller Microsoft SQL Server 2012-opdateringsversionen.
Symptomer
Det kan tage lang tid at gendanne en database i Microsoft SQL Server 2008 R2 eller Microsoft SQL Server 2008 eller Microsoft SQL Server 2012.
Årsag
Dette problem opstår, fordi det tager lang tid at oprette listen over virtuelle logfiler (VLF), når der er mange VLF'er i databasen.
Løsning
Oplysninger om samlet opdatering
SQL Server 2012
Rettelsen til dette problem blev først udgivet i Samlet opdatering 1 til SQL Server 2012. Du kan få flere oplysninger om denne samlede opdateringspakke ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2679368 Samlet opdateringspakke 1 til SQL Server 2012Note Da builds er kumulative, indeholder hver ny rettelse alle hotfixes og alle de sikkerhedsrettelser, der fulgte med den tidligere rettelse til SQL Server 2012. Microsoft anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2692828 De SQL Server 2012-builds, der blev udgivet efter SQL Server 2012 blev udgivet. Du skal anvende et hotfix fra SQL Server 2012 på en installation af SQL Server 2012.
SQL Server 2008 Service Pack 2
Rettelsen til dette problem blev først udgivet i Samlet opdatering 8 til SQL Server 2008 Service Pack 2. Du kan få flere oplysninger om denne samlede opdateringspakke ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2648096 Samlet opdateringspakke 8 til SQL Server 2008 Service Pack 2Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige rettelse til SQL Server 2008. Microsoft anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2402659 De SQL Server 2008-builds, der blev udgivet efter SQL Server 2008 Service Pack 2 blev udgivet microsoft SQL Server 2008-hotfixes, oprettes til specifikke SQL Server servicepakker. Du skal anvende et SQL Server 2008 Service Pack 2-hotfix på en installation af SQL Server 2008 Service Pack 2. Som standard medtages ethvert hotfix, der leveres i en SQL Server servicepakke, i den næste SQL Server servicepakke.
SQL Server 2008 Service Pack 3
Rettelsen til dette problem blev først udgivet i Samlet opdatering 3 til SQL Server 2008 Service Pack 3. Du kan få flere oplysninger om denne samlede opdateringspakke ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2648098 Samlet opdateringspakke 3 til SQL Server 2008 Service Pack 3Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den tidligere rettelse til SQL Server 2008. Microsoft anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2629969 De SQL Server 2008-builds, der blev udgivet, efter at SQL Server 2008 Service Pack 3 blev udgivet, microsoft SQL Server 2008-hotfixes, oprettes til bestemte SQL Server servicepakker. Du skal anvende et SQL Server 2008 Service Pack 3-hotfix på en installation af SQL Server 2008 Service Pack 3. Som standard medtages ethvert hotfix, der leveres i en SQL Server servicepakke, i den næste SQL Server servicepakke.
Samlet opdateringspakke 11 til SQL Server 2008 R2
Rettelsen til dette problem blev først udgivet i Samlet opdatering 11. Du kan finde flere oplysninger om, hvordan du får denne samlede opdateringspakke til SQL Server 2008 R2, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2633145 Samlet opdateringspakke 11 til SQL Server 2008 R2Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige rettelse til SQL Server 2008 R2. Vi anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
981356 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 blev udgivet
Samlet opdateringspakke 4 til SQL Server 2008 R2 SP1
Rettelsen til dette problem blev først udgivet i Samlet opdatering 4. Du kan finde flere oplysninger om, hvordan du får denne samlede opdateringspakke til SQL Server 2008 R2 SP1, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2633146 Samlet opdateringspakke 4 til SQL Server 2008 R2 SP1Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige rettelse til SQL Server 2008 R2 SP1. Vi anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2567616 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 SP1 blev udgivet
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Flere oplysninger
Du kan kontrollere antallet af VLF-segmenter ved at gennemse SQL-fejllogfilen og derefter finde logfilens sekvensnummer (LSN) i hver sikkerhedskopifil til transaktionslogfiler. De første cifre før kolonsymbolet i LSN'erne svarer til LSN'ens nummer.Det første tal i den første oplysende meddelelse for LSN er f.eks. 1. Men det første tal i den anden oplysende meddelelse for LSN'en er 100001. I dette scenarie er der 100.000 VLF'er, der bruges mellem tidspunktet for den første oplysende meddelelse og den anden oplysende meddelelse. Derfor ligner den logførte fragmenterede transaktionslog, der har mange virtuelle Files (VLF'er), følgende:
{Log blev sikkerhedskopieret. Database: mydbname, oprettelsesdato(klokkeslæt): 2010/07/08(12:36:46), første LSN: 1:5068:70, sidste LSN: 1:5108:1, antal dumpenheder: 1, enhedsoplysninger: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling.Log blev sikkerhedskopieret. Database: mydbname, oprettelsesdato(klokkeslæt): 2010/07/08(15:36:46), første LSN: 100001:5108:1, sidste LSN: 100002:5108:1, antal dumpenheder: 1, enhedsoplysninger: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling.}
Referencer
Du kan finde flere oplysninger om logsekvensnumre (LSN) på følgende MSDN-websted:
Generelle oplysninger om logsekvensnumre
Du kan finde flere oplysninger om, hvordan en logfilstruktur kan påvirke genoprettelsestiden for databaser, på følgende MSDN-websted:
Sådan kan en logfilstruktur påvirke databasens genoprettelsestid Du kan finde flere oplysninger om VLF'er i transaktionsloggen på følgende MSDN-websted:
Løsning
-
Vent på, at gendannelses- eller genoprettelseshandlingen fuldføresHvis du har en ikke-gendannet database, der oplever langsom ydeevne, når du gendanner eller gendanner databasen, skal du muligvis vente på, at gendannelses- eller genoprettelseshandlingen fuldføres. Du kan f.eks. se offlinestatus eller gendannelsesstatus i SQL Server Management Studio (SSMS) for en ikke-gendannet database. Stop af SQL Server giver normalt ingen lettelse for en langsom genoprettelse, og det kan tage længere tid at gentage den samme genoprettelsesanalysefase, annullere fortryd-fase eller fortryde fase.
-
Undgå at gendanne transaktionslogsekvensen, der indeholder tusindvis af VLFsHvis du oplever den langsomme ydeevne, mens du gendanner og gendanner en database ved hjælp af en sikkerhedskopifil, kan du undgå at gendanne de transaktionslogsekvenser, der indeholder tusindvis af VLFs. For at identificere den sikkerhedskopifil, der har flest registrerede virtuelle logfiler, skal du bruge følgende sætning for at få vist Kolonnerne FirstLSN og LastLSN i logfilerne med sikkerhedskopier: GENDAN HEADERONLY FROM DISK='C:\folder\file.trn'Du kan beslutte at undgå at gendanne logfilerne med sikkerhedskopier. Eller du kan bruge sætningen STOP AT i GENDAN-kommandoerne for at undgå de meget fragmenterede dele af transaktionslogfilerne. Hvis du ikke gendanner logsekvenserne helt op til det seneste tidspunkt under et scenarie med fejlgenoprettelse, forekommer datatab i databasen SQL Server. Dette datatab opstår, fordi ikke alle transaktioner gemmes. Derfor er der en forretningsafvejning beslutning. Du kan gendanne en meget fragmenteret transaktionslog helt. Denne handling kan dog tage mange timer. Eller du kan bruge STOP AT-sætningen i genoprettelsen til at stoppe genoprettelsen før den meget fragmenterede del af logfilen. Manglende transaktioner, som du udelader, går dog tabt.Bemærk! Uden at installere dette hotfix er der normalt ingen sikker mulighed for fremskyndet genoprettelse, når du genstarter SQL Server. SQL Server skal finde listen over VLF'er for at analysere logfilerne, for at annullerede transaktioner og derefter fortryde ufuldstændige transaktioner for at afslutte genoprettelsen for at bringe databasen sikkert online. Du kan ikke trygt springe transaktioner over under genoprettelse.