Log på med Microsoft
Log på, eller opret en konto.
Hej
Markér en anden konto.
Du har flere konti
Vælg den konto, du vil logge på med.

Microsoft distribuerer Rettelser til Microsoft SQL Server 2005, 2008 og 2008 R2 som én fil, der kan downloades. Da rettelserne er kumulative, indeholder hver ny version alle hotfixes og alle de sikkerhedsrettelser, der var inkluderet i den forrige rettelse til SQL Server 2005, 2008 og 2008 R2.

Symptomer

Overvej følgende scenarie:

  • Du installerer Microsoft SQL Server 2005, Microsoft SQL Server 2008 eller Microsoft SQL Server 2008 R2 på en computer.

  • En eller flere af databaserne er i den fulde eller masselogførte genoprettelsesmodel.

  • Startstørrelsen på en transaktionslogfil for databasen er lille. Transaktionsfilen vokser dog meget.

  • Forøgelsen af automatisk vækst i transaktionslogfilen er konfigureret til en lille størrelse. Forøgelsen af automatisk vækst er f.eks. konfigureret til en megabyte eller til én procent. Eller du kan øge transaktionslogfilen ved hjælp af en lille manuel vækst.

  • Transaktionslogfilen vokser i takt med det lille vækstinterval. Efter et stykke tid er transaktionslogfilen stor.

    Transaktionslogfilen vokser f.eks. fra hundrede megabyte til ti gigabyte. Transaktionslogfilen vokser med et megabyte-interval i hver vækst.

I dette scenarie kan du opleve følgende problemer:

  • Databasegenoprettelsen er langsom, når databasen startes, hvis der er en stor mængde arbejde, der skal genoprettes.

    En transaktion afventer f.eks. at være åben i lang tid. Eller mange transaktioner, der er små, bekræftes ikke, når SQL Server lukkes eller genstartes. I dette tilfælde kan du få en fejl i en lang anslået genoprettelsestid i analysefasen, i fortrydelsesfasen eller i fortrydelsesfasen. Fejlen ligner følgende og logføres i fejllogfilen for SQL Server 2005:

    Analyse af databasen 'mydatabase' (7) er 0% færdig (ca. 1234 sekunder tilbage). Dette er kun en oplysende meddelelse. Der kræves ingen brugerhandling.

  • Databasegenoprettelsen er langsom, når en fuld sikkerhedskopi af databasen og en ekstra transaktionslogsekvens gendannes, hvis databasen er online.

    Bemærk! Hvis du vil gøre databasen online under gendannelsen, skal du bruge syntaksen WITH RECOVERY eller WITH STANDBY = <> syntaks.

  • Gendannelse af databasespejling er langsom på en partnerserver i spejlingsparret.

  • Status for loglæseragenten for transaktionsreplikering er langsom for følgende handlinger:

    • Transaktionsloggen for en udgiverdatabase fortolkes.

    • En kommando føjes til en distributionsdatabase.

    • Transaktionerne replikeres.

  • Langsom ydeevne opstår, når der oprettes et database-øjebliksbillede, hvis mange transaktioner logføres, eller hvis transaktionslogfilerne forbliver aktive i lang tid. Dette problem opstår, fordi snapshottet skal køre genoprettelse, og transaktionslogfilerne skal annulleres.

  • Langsom ydeevne opstår, når du bruger DBCC CHECKDB-syntaksen til at oprette et skjult database-øjebliksbillede, der skal gendanne databasesnapshottet fuldt ud for at køre konsistenskontrollerne.

Årsag

Disse problemer opstår, fordi de virtuelle logfiler (VLFs) i en transaktionslogfil kan medføre langsom ydeevne, når SQL Server scanner gennem disse VLFs under følgende handlinger:

  • Databasegenoprettelse

  • Databasespejling

  • Database-øjebliksbillede

  • Aktiviteter for læseren af databasereplikeringslogfiler

Når en transaktionslogfil til en database dyrkes med små intervaller under ekstreme vækstbetingelser, findes der tusinder til hundredtusinder af VLF'er i et enkelt sæt transaktionslogfiler (.ldf). En stor logvækst i store intervaller opretter dog kun flere VLF'er til sammenligning. Flere kan f.eks. være mindre end 100 VLF'er.

Bemærk!VLF'erne er de divisioner eller segmenter, der bruges internt af SQL Server i transaktionslogfilen.
 

Løsning

Oplysninger om samlet opdatering

SQL Server 2008 R2


Rettelsen til dette problem blev først udgivet i Samlet opdatering 6. 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:

2489376 Samlet opdateringspakke 6 til SQL Server 2008 R2 Bemærk! Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der var inkluderet i 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

SQL Server 2008 Service Pack 1

Rettelsen til dette problem blev først udgivet i Samlet opdatering 12 til SQL Server 2008 Service Pack 1.

Bemærk! Da builds er kumulative, indeholder hver ny rettelse alle 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:

970365 De SQL Server 2008-builds, der blev udgivet, efter at SQL Server 2008 Service Pack 1 blev udgivet, microsoft SQL Server 2008-hotfixes, oprettes til bestemte SQL Server servicepakker. Du skal anvende et SQL Server 2008 Service Pack 1-hotfix på en installation af SQL Server 2008 Service Pack 1. Som standard medtages ethvert hotfix, der leveres i en SQL Server servicepakke, i den næste SQL Server servicepakke.

SQL Server 2008 Service Pack 2


Rettelsen til dette problem blev først udgivet i Samlet opdatering 2 til SQL Server 2008 Service Pack 2.

Bemærk! Da builds er kumulative, indeholder hver ny rettelse alle 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 2005 Service Pack 3

Rettelsen til dette problem blev først udgivet i Samlet opdatering 13 til SQL Server 2005 Service Pack 3.

Bemærk! Da builds er kumulative, indeholder hver ny rettelse alle hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige rettelse til SQL Server 2005. 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:

960598 De SQL Server 2005-builds, der blev udgivet, efter at SQL Server 2005 Service Pack 3 blev udgivet, microsoft SQL Server 2005-hotfixes, oprettes til bestemte SQL Server servicepakker. Du skal anvende et SQL Server 2005 Service Pack 3-hotfix på en installation af SQL Server 2005 Service Pack 3. Som standard medtages ethvert hotfix, der leveres i en SQL Server servicepakke, i den næste SQL Server servicepakke.
 

SQL Server 2005 Service Pack 4

Rettelsen til dette problem blev først udgivet i Samlet opdatering 1 til SQL Server 2005 Service Pack 4.

Bemærk! Da builds er kumulative, indeholder hver ny rettelse alle hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige rettelse til SQL Server 2005. Microsoft anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix.

Du skal anvende et SQL Server 2005 Service Pack 4-hotfix på en installation af SQL Server 2005 Service Pack 4. Som standard medtages ethvert hotfix, der leveres i en SQL Server servicepakke, i den næste SQL Server servicepakke.

Status

Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Løsning

Installér dette hotfix, og genstart SQL Server kan muligvis forbedre genoprettelsesydeevnen. Ydeevnen kan f.eks. forbedres i forbindelse med følgende handlinger, når du har installeret dette hotfix og genstartet SQL Server:

  • Databasegenoprettelse

  • Databasespejling

  • Database-øjebliksbillede

  • Aktiviteter for læseren af databasereplikeringslogfiler


Hvis du ikke kan installere dette hotfix, kan du udføre følgende løsninger for at afhjælpe et eksisterende problem og forhindre en fremtidig forekomst.

Afhjælpe et eksisterende problem

  • Vent på, at gendannelses- eller genoprettelseshandlingen er fuldført

    Hvis 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 lindring 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 VLFs

    Hvis du oplever langsom 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. Hvis du vil 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 logfilens sikkerhedskopifiler:
    GENDAN HEADERONLY FROM DISK='C:\folder\file.trn'

    Du kan beslutte at undgå at gendanne logfilerne for sikkerhedskopiering. 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 er nødt til at finde listen over VLFs 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.

Forhindre en fremtidig forekomst

  • Indstille automatisk forøgelse af databasen til en passende størrelse

    Hvis størrelsen på autovækstintervallet er for lille, vil der være mange virtuelle logfiler (VLFs), og du kan opleve langsom ydeevne i SQL Server. Hvis størrelsen af automatisk forøgelse er for stor, kan forespørgsler, der får transaktionslogfilerne til at vokse automatisk, muligvis vente i lang tid på at afslutte en vækst. Derfor kan der opstå timeoutfejl i SQL Server. Du kan løse disse problemer ved at angive størrelsen af automatisk forøgelse for databasen til en passende størrelse.

  • Fjern det store antal VLF'er, og brug en manuel vækst

    Hvis mangeVLF'er er i transaktionsloggen, skal du reducere størrelsen på transaktionsloggen og få den til at stige før spidsbelastning for at imødekomme efterspørgslen ved hjælp af en manuel vækst. Transaktionsloggen stiger f.eks. tilbage til en rimelig gennemsnitsstørrelse i en stor forøgelse eller i en enkelt manuel vækst. Derfor når størrelsen af transaktionsloggen en spidsbelastningskapacitet, og sikkerhedskopieringsfilerne til logfiler planlægges hyppigt og periodisk. Desuden kan transaktionsloggen være afkortet, og VLF'erne for transaktionsloggen kan genbruges i en cyklus.

  • Sådan formindskes og øges transaktionsloggen manuelt

    Hvis du vil rette en logfil, der har for mange VLF'er, skal du følge disse trin for at formindske logfilen og øge den igen manuelt:

    1. Hvis databasen er i en fuld eller masselogført genoprettelsesmodel, skal du sikkerhedskopiere transaktionsloggen for at tillade, at de aktive VLFs afkortes og genbruges. BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'
      Du kan finde flere oplysninger om, hvordan du sikkerhedskopier transaktionslogfilen ved hjælp af SSMS, på følgende MSDN-websted (Microsoft Developer Network):

      Sådan sikkerhedskopieres transaktionslogfilen ved hjælp af SSMSDu kan finde flere oplysninger om, hvordan du sikkerhedskopier transaktionslogfilen ved hjælp af Transact-SQL-sætninger, på følgende MSDN-websted:

      Sådan sikkerhedskopieres transaktionslogfilen ved hjælp af Transact-SQL-sætninger

    2. Kør et af følgende sætninger for at bestemme det logiske navn på transaktionslogfilen.
      Erklæring 1
      exec sp_helpfile Erklæring 2
      vælg * fra sys.sysfiles Hvis du vil reducere størrelsen på transaktionslogfilen til den ønskede størrelse, skal du bruge følgende kode:DBCC SHRINKFILE(transactionlogicalfilename, TRUNCATEONLY)

    3. Du kan øge størrelsen på transaktionslogfilen til en passende størrelse. Vi anbefaler, at du lader størrelsen på transaktionslogfilen vokse til den maksimale almindelige størrelse. Derfor undgås autogrow-forøgelsen. Hvis du vil angive størrelsen på transaktionsloggen, skal du bruge siden Databaseegenskaber i SSMS eller bruge følgende syntaks for ALTER DATABASE:MODIFY FILE ( NAME = transactionlogicalfilenae, SIZE=newtotalsize MB)
      Du kan finde flere oplysninger om, hvordan du øger størrelsen på en database i SSMS, på følgende MSDN-websted:

      Sådan øger du størrelsen på en database i SSMSDu kan finde flere oplysninger om syntaksen for ALTER DATABASE MODIFY FILE på følgende MSDN-websted:

      Generelle oplysninger om syntaksen ALTER DATABASE MODIFY FILE

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 logfiler (VLFs), 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.}

Følgende tabel indeholder flere oplysninger om de produkter eller værktøjer, der automatisk søger efter den betingelse, der er beskrevet i afsnittet "Symptomer" i din forekomst af SQL Server og i de versioner af SQL Server, som reglen evalueres i forhold til.
 

Regelsoftware

Regeltitel

Beskrivelse af regel

Produktversioner, som reglen evalueres i forhold til

System Center Advisor

SQL Server med transaktionsreplikering, kan ydeevnen for loglæseragenten blive påvirket på grund af størrelsen af transaktionsloggen eller antallet af VLF

I denne SQL Server-instans registrerede rådgiveren tilstedeværelsestransaktionsreplikering med antallet af VLFs eller TLOG-størrelse betydeligt større. Ydeevnen for loglæseragenten påvirkes negativt af størrelsen af transaktionsloggen eller antallet af VLF. Reducer størrelsen på transaktionsloggen og antallet af VLF for at forbedre ydeevnen for Log Reader Agent.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



 

Referencer

Du kan finde flere oplysninger om den fysiske arkitektur i transaktionsloggen på følgende MSDN-websted:

Generelle oplysninger om den fysiske arkitektur i transaktionsloggen

Du kan finde flere oplysninger om logsekvensnumre (LSN) på følgende MSDN-websted:

Generelle oplysninger om logsekvensnumre

Du kan finde flere oplysninger om fejlen 1413, når databasespejling starter, på følgende MSDN-websted:

Generelle oplysninger om fejlen 1413, når databasespejling starter

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:

Generelle oplysninger om transaktionslogfilen

Du kan finde flere oplysninger om, hvordan du opretter et database-øjebliksbillede, på følgende MSDN-websted:

Sådan opretter du et database-øjebliksbilledeFlere oplysninger om den trinvise serviceringsmodel for SQL Server finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

935897 Der findes en trinvis serviceringsmodel fra SQL Server-teamet til at levere hotfixes til rapporterede problemer Du kan få flere oplysninger om navngivningsskemaet for SQL Server opdateringer ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

822499Nyt navngivningsskema for Microsoft SQL Server softwareopdateringspakker Du kan få flere oplysninger om softwareopdateringsterminologi ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

824684 Beskrivelse af den standardterminologi, der bruges om Microsoft-softwareopdateringer.

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af sproget?
Hvad påvirkede din oplevelse?
Når du trykker på Send, bliver din feedback brugt til at forbedre Microsoft-produkter og -tjenester. Din it-administrator kan indsamle disse data. Erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

×