Indholdsfortegnelse skjule

SQL Server Database i gendannelsestilstand? Få 10 dokumenterede løsninger nu! Trinvise løsninger fra nem løsning til avanceret reparation.

1. forståelse SQL Server Databasegendannelsestilstand

1.1 Hvad er gendannelsestilstand i SQL Server

Når en SQL Server databasen viser status "I genoprettelse", betyder det SQL Server udfører gendannelse efter nedbrud eller transaktioner for at sikre databasekonsistens. Denne automatiske proces opretholder dataintegriteten ved at afspille committede transaktioner og rulle ikke-committede transaktioner tilbage.

In SQL Server, indeholder en database tagget "In Recovery", hvilket betyder, at den i øjeblikket er i recovery-tilstand.

Gendannelsestilstand opstår typisk efter uventede nedlukninger, strømafbrydelser eller under databasegendannelser. Selvom dette er en normal beskyttelsesmekanisme, opstår der problemer, når SQL Server databasen under gendannelse tager usædvanlig lang tid eller ser ud til at være siddende fast.

1.2 De tre faser af databasegendannelse

SQL Server Genopretningen følger tre forskellige faser:

1.2.1 Analysefase

SQL Server Scanner transaktionsloggen fra det sidste kontrolpunkt for at identificere snavsede sider og aktive transaktioner. Den opretter en tabel over snavsede sider (DPT) og en tabel over aktive transaktioner (ATT) for at spore, hvad der skal gendannes.

1.2.2 Gentag-fase (Roll Forward)

Systemet afspiller alle committede transaktioner, der ikke blev skrevet til disken før nedbruddet. Dette sikrer, at alle committede ændringer anvendes korrekt på databasefilerne.

1.2.3 Fortrydelsesfase (Rollback)

Alle ikke-committede transaktioner rulles tilbage for at opretholde databasekonsistens. Når det er færdigt, bliver databasen tilgængelig til normal drift.

1.3 Almindelige symptomer og fejlmeddelelser

Når din SQL Server db er i gendannelse, vil du typisk se:

  • Databasenavn viser “(Under gendannelse)” i SQL Server ledelsesstudie
  • Loginfejl med meddelelsen "databasen gendannes"
  • Fejllogposter, der viser procentdelen af ​​gendannelsesstatus
  • Databasetilstand viser "GENDANNELSE" ved forespørgsel

2. Grundlæggende årsager til SQL Server Problemer med gendannelsestilstand

2.1 Ufuldstændige gendannelseshandlinger

Most almindelig årsag opstår ved gendannelse fra flere sikkerhedskopier af filer ved hjælp af NORGEVINDELSE mulighed uden en endelig MED GENDANNELSE kommando. Dette efterlader databasen ventende på yderligere gendannelseshandlinger.

2.2 Problemer med transaktionsloggen

Store transaktionslogfiler eller et for stort antal virtuelle logfiler (VLF'er) forsinker gendannelsen betydeligt. Når MS SQL er i gendannelse med tusindvis af VLF'er, kan processen tage timer eller dage at fuldføre.

2.3 Systemrelaterede problemer

Hardwarefejl, strømafbrydelser eller utilstrækkelig diskplads kan afbryde normale databaseoperationer og udløse langvarige gendannelsesprocesser under genoprettelse.tart.

2.4 Databasekorruption

Beskadigede databasefiler forhindrer en vellykket gendannelsesproces, hvilket efterlader databasen fast i gendannelsestilstand på ubestemt tid.

3. DiagnoseostTrin før reparation

3.1 Kontrol SQL Server Fejllogs

Før du forsøger at reparere, skal du undersøge SQL Server Fejllog for meddelelser om gendannelsesstatus. Se efter poster, der viser fuldførelsesprocenter og estimeret resterende tid.

  1. Åbne SQL Server ledelsesstudie
  2. Naviger til Management -> SQL Server Logs
  3. Gennemgå de seneste poster for dit databasenavn
  4. Se efter indikatorer for genopretningsfasen (Fase 1, 2 eller 3 af 3)

Kontrol SQL Server Fejllogge for meddelelser om genoprettelsesstatus.

3.2 Overvågning af genopretningsfremskridt

Brug dynamiske styringsvisninger til at spore aktive genoprettelsesoperationer:

SELECT session_id, command, blocking_session_id, wait_type, wait_time, wait_resource
FROM sys.dm_exec_requests
WHERE command = 'DB STARTUP';

3.3 Kontrol af databasestatus

Bekræft den aktuelle databasetilstand for at forstå genoprettelsesstatussen:

SELECT name, state_desc
FROM sys.databases
WHERE name = 'YourDatabaseName';

4. Løsning nr. 1: Vent på fuldførelse af naturlig genopretning

Nogle gange er tålmodighed den bedste løsning, når du SQL Server Databasen er under genoprettelse. Denne fremgangsmåde fungerer, når genoprettelsen skrider frem normalt, men tager længere tid end forventet.

4.1 Hvornår skal man være tålmodig

Tillad naturlig færdiggørelse når:

  • Fejllogge viser stabil fremgang med faldende tidsestimater
  • Der er ikke rapporteret om korruptionsfejl
  • Databasen oplevede for nylig store transaktioner
  • VLF-antallet er håndterbart (under 1,000)

4.2 Overvågning af genopretningsfremskridt

Estimater for gendannelsestid i fejllogfiler er ofte unøjagtige. Fokuser på statusprocenter snarere end resterende tid. Store databaser med omfattende transaktionshistorikker kan kræve flere timer for fuldstændig gendannelse.

5. Løsning nr. 2: Brug GENDANNELSESDATABASE MED GENDANNELSE

Denne rettelse løser ufuldstændige gendannelseshandlinger, hvor det sidste gendannelsestrin blev udeladt. Brug denne, når du SQL Server db i gendannelsen var et resultat af en gendannelsesproces ved hjælp af NORECOVERY.

5.1 Forståelse af kommandoen

GENDANN DATABASE MED GENDANNELSE Kommandoen fuldfører gendannelsesprocessen ved at rulle ikke-committede transaktioner tilbage og bringe databasen online.

5.2 Implementeringstrin

  1. Åbne SQL Server ledelsesstudie
  2. Opret forbindelse til din SQL Server instans
  3. Klik Ny > Forespørgsel med aktuel forbindelse
    Opret en ny forespørgsel i SQL Server ManagementStudio.
  4. Udfør: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Vent på bekræftelse af færdiggørelse

Advarsel: Brug kun denne kommando, hvis du er sikker på, at der ikke er yderligere gendannelseshandlinger i gang.

6. Løsning nr. 3: Løs problemer med transaktionsloggen

Problemer med transaktionsloggen er en af ​​de hyppigste årsager til forlængede gendannelsestider. Denne løsning adresserer fulde logfiler, for mange VLF'er og problemer med logplads, der holder SQL Server i opsving.

6.1 Sikkerhedskopiering af transaktionslogfiler

Frigør logplads ved at oprette sikkerhedskopier af transaktionsloggen:

  1. Åbne SQL Server ledelsesstudie
  2. Højreklik på din database -> Opgaver -> Back Up
    Staren sikkerhedskopieringsopgave for en SQL Server databasen.
  3. Skift Sikkerhedskopieringstype til Transaktionslog
    Skift backuptype til transaktionslog
  4. Angiv backupdestination
  5. Klik OK at udføre

6.2 Administration af virtuelle logfiler (VLF'er)

Tjek VLF-antallet med:

DBCC LOGINFO('YourDatabaseName');

Hvis du har over 1,000 VLF'er, skal du reducere dem med:

  1. Sikkerhedskopiering af transaktionsloggen
  2. Formindsker logfilen: DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Udvidelse af logfilen i store bidder (1 GB eller mere)

6.3 Sikker krympning af logfiler

Krymp kun logfiler i vedligeholdelsesvinduer, når der ikke kører aktive transaktioner. Sikkerhedskopier altid databasen, før du krymper handlinger.

7. Rettelse nr. 4: Kør DBCC CHECKDB og reparer

Databasekorruption kan forhindre vellykket gendannelse. DBCC CHECKDB er en indbygget kommando, der kan identificere og reparere mindre korruptionsproblemer, der holder MS SQL i gendannelsestilstand.

7.1 Kontrol for databasekorruption

Starmed standardmetoden til at verificere databaseintegritet. Prøv DBCC CHECKDB direkte først:

  1. Udfør: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Gennemgå resultater for konsistensfejl
  3. Dokumentér eventuelle korruptionsmeddelelser

Hvis DBCC CHECKDB fejler Med fejl som "Databasen gendannes. Venter, indtil gendannelsen er færdig", betyder det, at databasen aktivt er i gendannelsestilstand og blokerer adgang. I dette tilfælde skal du fortsætte til afsnit 7.3 for at bruge NØDtilstand.

7.2 Reparationsmuligheder for tilgængelige databaser

Hvis DBCC CHECKDB kørte korrekt og fandt beskadigelse, skal du bruge disse reparationstrin:

  1. Indstil databasen til enkeltbrugertilstand: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Forsøg sikker reparation: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. Hvis det ikke lykkes, brug: DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Tilbage til flerbruger: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Brug af nødtilstand, når databasen ikke er tilgængelig

Nødtilstand er kun påkrævet, når databasen sidder fast i gendannelsestilstand og afviser normale DBCC CHECKDB-forsøg. Den markerer databasen som READ_ONLY og deaktiverer logføring. Brug denne fremgangsmåde, når standardadgang mislykkes:

  1. Indstil nødtilstand: ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Indstil enkeltbruger: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Kør integritetstjek: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Hvis der findes korruption, skal du først køre en sikker reparation: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. Hvis det mislykkes, brug reparation med datatab:  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Indstil flerbruger: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Sæt online: ALTER DATABASE [YourDatabaseName] SET ONLINE;

Vigtig: NØDtilstand omgår normale gendannelsesprocesser og bør kun bruges, når databasen er fuldstændig utilgængelig. Prøv altid standard DBCC CHECKDB-metoden først, før du eskalerer til NØDtilstand.

Du kan finde en mere omfattende guide til brug af DBCC CHECKDB.

8. Løsning #5: Gendan fra sikkerhedskopi

Når andre metoder fejler, eller dataintegriteten er tvivlsom, er gendannelse fra en ren sikkerhedskopi ofte den bedste løsningost pålidelig løsning til at løse SQL Server database i gendannelsesproblemer.

8.1 Hvornår skal man vælge gendannelse af sikkerhedskopier

Overvej gendannelse af backup, når:

  • Gendannelsen har kørt i over 24 timer uden fremskridt
  • Korruptionsfejl forhindrer vellykket reparation
  • Du har nylige, verificerede sikkerhedskopier tilgængelige
  • Datatab siden sidste backup er acceptabelt

8.2 Trinvis restaureringsproces

  1. Åbne SQL Server ledelsesstudie
  2. Højreklik Databaser -> Gendan database
    Staren opgave om at gendanne databasen i SQL Server ledelsesstudie
  3. Type Enhed under Kilde
  4. Klik Tilføj og browse til din backupfil
  5. Vælg sikkerhedskopien, og klik på OK
  6. Vælg Overskriv den eksisterende database hvis det er nødvendigt
  7. Klik OK til start-restaurering

Gendan databasen i SQL Server.

8.3 Gendannelse på tidspunktet

For at minimere datatab skal du bruge transaktionslogbackups til at gendanne til et bestemt tidspunkt. Sørg for, at du har en ubrudt kæde af logbackups fra din fulde backup til det ønskede gendannelsespunkt.

8.4 Reference

Du kan få mere information fra vores omfattende guide til sikkerhedskopiering og gendannelse SQL Server databaser.

9. Rettelse nr. 6: Deaktiver egenskaben AUTOMATISK LUKNING

Databaseegenskaben AUTO CLOSE kan forårsage gentagne gendannelsescyklusser, hvilket får det til at se ud som om din SQL Server db er konstant i gendannelse. Deaktivering af denne egenskab løser problemet.

9.1 Forståelse af problemer med AUTOMATISK LUKNING

Når AUTOMATISK LUKNING er aktiveret, SQL Server lukker databasen efter den sidste forbindelse afsluttes, og åbner den derefter igen for nye forbindelser. Denne gentagne åbning udløser gendannelsesprocesser hver gang.

9.2 Deaktivering af AUTOMATISK LUKNING

  1. Åbne SQL Server ledelsesstudie
  2. Højreklik på din database -> Ejendomme
  3. Type Indstillinger fra venstre panel
  4. sæt Automatisk lukning til False
  5. Klik OK at anvende ændringer

Deaktiver egenskaben Automatisk lukning for en SQL Server database i SQL Server ManagementStudio.

Alternativt kan du bruge T-SQL:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Rettelse #7: Løsningtart SQL Server Service

ServicereservetarDet kan løse fastlåste gendannelsesprocesser, men bør bruges forsigtigt, da det vil løsetargendannelse fra starten. Denne løsning virker, når SQL Server i bedring virker fuldstændig frossen.

10.1 Når service er genoptagettart Hjælper

Restartjenesten når:

  • Gendannelsesprocessen er gået i stå i flere timer
  • Fejllogge viser ingen nye poster
  • Andre databaser fungerer normalt
  • Du har råd til længere nedetid

10.2 Sikkerhedsresistenstart Procedurer

  1. Åbne SQL Server konfigurationsmanager Eksternt link
  2. Naviger til SQL Server Det vi er gode til
  3. Find SQL Server eksempel du vil genoprettetart, og højreklik derefter SQL Server (Instansnavn)
  4. Type Restart
  5. Vent på, at tjenesten er helt genoprettettart
  6. Overvåg fejllogge for at se status for gendannelse

Restart SQL Server service i SQL Server Konfigurationsadministrator.

Bemærk: Restarting vil forårsage, at genopretningen begynder fra start, hvilket potentielt forlænger den samlede restitutionstid.

11. Rettelse #8: Reparer databasen ved at afmontere og genmontere

I ekstreme tilfælde skal du afmontere og gentilknytte databasen:

  1. Afmonter database: EXEC sp_detach_db 'YourDatabaseName';
  2. Vedhæft kun MDF-filen: CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Dette genopbygger en ny transaktionslog

Advarsel: Denne metode kan resultere i datatab. Brug kun, når andre muligheder er udtømte.

12. Rettelse nr. 9: Håndtering af problemer med databasespejling

Konfigurationer af databasespejling kan forårsage unikke gendannelsesproblemer. Denne rettelse adresserer spejlingsspecifikke problemer, der holder databaser i gendannelsestilstand.

12.1 Spejlingsspecifikke gendannelsesproblemer

Spejlede databaser kan sidde fast under gendannelse på grund af problemer med partnerforbindelser eller slutpunkter. Både hoved- og spejldatabaser kan vise gendannelsesstatus.

12.2 Spejlingsgendannelsesløsninger

Restarspejlingsendepunktet:

  1. Find slutpunktsnavn: SELECT * FROM sys.endpoints WHERE type = 4;
  2. Stop-endepunkt: ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Start-slutpunkt: ALTER ENDPOINT [EndpointName] STATE = STARTED;

Hvis slutpunktsrestarHvis det mislykkes, bryd spejlingspartnerskabet:

  1. Udfør: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Løb: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Omkonfigurer spejling, når databasen er online

13. Løsning #10: Brug professionelle gendannelsesværktøjer

Tredjepartsgendannelsesværktøjer leverer avancerede reparationsfunktioner, når de er indbygget SQL Server metoder fejler. Disse værktøjer kan ofte gendanne data fra alvorligt beskadigede databaser.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery har en høj genvindingsrate, sammen med omfattende muligheder.

Nedenfor er trinene til at bruge det:

  1. Stop med SQL Server Service.
  2. Lav en kopi af databasefilerne i gendannelsestilstand, inklusive både den primære MDF-fil og de sekundære NDF-filer.
  3. Start SQL Server Service.
  4. Start DataNumen SQL Recovery.
  5. Vælg kopien i stedet for den originale fil som kilde til den database, der skal gendannes.
  6. Klik på “Star"t Gendannelse" og følg instruktionerne for at gendanne databasen.
  7. Efter gendannelsesprocessen vises en ny gendannelsesdatabase i SQL Server som indeholder alle de gendannede data.

Brug DataNumen SQL Recovery at reparere en enkelt beskadiget SQL Server MDF fil.

13.2 Hvornår skal man overveje tredjepartsværktøjer

Brug professionelle værktøjer når:

  • Indbyggede reparationsmuligheder fejler eller rapporterer omfattende beskadigelse
  • Der er ingen tilgængelige nylige sikkerhedskopier
  • Kritiske data skal gendannes trods korruption
  • Standardgendannelsesmetoder resulterer i betydeligt datatab

14. Bedste praksis for forebyggelse

14.1 Regelmæssige vedligeholdelsesopgaver

Implementer disse fremgangsmåder for at forhindre SQL Server problemer med databasegendannelse:

  • Planlæg regelmæssige fulde og logmæssige sikkerhedskopier: Vedligehold komplette backupkæder
  • Overvåg VLF-tællinger: Hold VLF'er under 100 for optimal ydeevne
  • Størrelse på planlogfil: Forudindstil størrelsen på træstammer for at undgå overdreven selvvækst
  • Kør almindelig DBCC CHECKDB: Opdag korruption tidligt

14.2 Overvågning og alarmering

Opsæt proaktiv overvågning:

  1. Konfigurer advarsler for ændringer i databasetilstand
  2. Overvåg diskplads på logfildrev
  3. Spor langvarige transaktioner
  4. Advarsel om for høje VLF-tællinger

14.3 Hardware og infrastruktur

Sikre pålidelig infrastruktur:

15. Fejlfinding af komplekse scenarier

15.1 Flere databaseproblemer

Når flere databaser sidder fast i gendannelse:

  1. Tjek for systemomfattende problemer (diskplads, hukommelse)
  2. Prioriter kritiske databaser til gendannelse
  3. Overvej hardwareproblemer, der påvirker hele instansen
  4. Gennemgå de seneste systemændringer eller opdateringer

15.2 Overvejelser vedrørende store databaser

For databaser over 1 TB:

  • Forvent længere restitutionstider (muligvis dage)
  • Sørg for tilstrækkelig hukommelsesallokering
  • Overvej indstillinger for parallel behandling
  • Overvåg tempdb-plads under gendannelse

15.3 Hvornår skal man kontakte Microsoft Support

Kontakt Microsoft Support for:

  • Kritiske produktionssystemer uden backupmuligheder
  • mistænkt SQL Server softwarebugs
  • Virksomhedsmiljøer, der kræver garanteret gendannelse
  • Komplekse Always On- eller klyngedannelsesscenarier

16. Ofte stillede spørgsmål

Q: Hvor længe skal SQL Server Hvad tager det normalt at gendanne en database?

A: Gendannelsestiden afhænger af databasens størrelse, transaktionsvolumen og hardwarens ydeevne. Små databaser gendannes typisk på få minutter, mens store databaser med omfattende transaktionslogfiler kan tage flere timer. De tidsestimater, der vises i fejllogfiler, er ofte unøjagtige, så fokuser i stedet på statusprocenter.

Q: Kan jeg stoppe SQL Server under gendannelse uden at miste data?

A: Stopper SQL Server under restitution er generelt sikkert, men vil genoprettestargendannelsesprocessen fra starten, når tjenesten genoprettestarts. Dette forlænger den samlede gendannelsestid, men forårsager ikke yderligere datatab ud over, hvad der skete under den oprindelige hændelse.

Q: Hvad er forskellen på "Under genoprettelse" og "Afventer genoprettelse"?

A: "I bedring" betyder SQL Server udfører aktivt gendannelseshandlinger. "Gendannelse afventer" angiver, at gendannelsesprocessen mislykkedes.tart, normalt på grund af manglende filer, utilstrækkelige tilladelser eller problemer med diskplads, der skal løses, før gendannelsen kan fortsætte.

Du kan finde mere detaljerede oplysninger om "Inddrivelse afventer" i vores omfattende vejledning.

Q: Vil jeg miste data, hvis jeg bruger REPAIR_ALLOW_DATA_LOSS?

A: Ja, REPAIR_ALLOW_DATA_LOSS kan fjerne beskadigede data for at gendanne databasekonsistensen. Prøv altid REPAIR_REBUILD først, hvilket løser strukturelle problemer uden datatab. Brug kun REPAIR_ALLOW_DATA_LOSS som en sidste udvej, når du ikke har andre gendannelsesmuligheder.

Q: Kan jeg få adgang til andre databaser, mens én database er under gendannelse?

A: Ja, andre databaser på samme SQL Server instansen forbliver tilgængelig under gendannelse. Kun den database, der er under gendannelse, er utilgængelig. Gendannelseshandlinger kan dog påvirke serverens samlede ydeevne.

Q: Hvad forårsager, at en database sidder fast i gendannelsestilstand?

A: Almindelige årsager inkluderer ufuldstændige gendannelsesoperationer ved hjælp af NORECOVERY, for mange virtuelle logfiler (VLF'er), store ikke-committede transaktioner, databasekorruption, utilstrækkelig diskplads og hardwareproblemer. Databaser, der er aktiveret til AUTO CLOSE, kan også virke konstant i gendannelsestilstand.

Q: Hvordan ved jeg, om helbredelsen gør fremskridt eller går i stå?

A: Skærm SQL Server Fejllogge for meddelelser om genoprettelsesstatus, der viser fuldførelsesprocenter. Brug sys.dm_exec_requests til at kontrollere for aktive DB STARTUP-kommandoer. Hvis procentdelene stiger over tid, skrider gendannelsen frem. Hvis der ikke er nye logposter i flere timer, kan det være tegn på, at processen er gået i stå.

Q: Er det sikkert at genoptagetart SQL Server service under genoptræning?

A: RestarDet er sikkert, men bør bruges med forsigtighed. Det viltargendannelse fra starten, hvilket potentielt fordobler gendannelsestiden. Kun restarhvis gendannelsen ser ud til at være helt fastfrosset uden fremskridt i mange timer, eller hvis du har mistanke om, at processen virkelig er gået i stå.

Q: Hvad er forskellen mellem AUTOMATISK LUKNING og gendannelsestilstand?

A: AUTO CLOSE lukker automatisk databaser, når der ikke er nogen forbindelser, og genåbner dem derefter for nye forbindelser. Denne gentagne åbning udløser korte gendannelsesprocesser hver gang, hvilket får det til at se ud som om databasen konstant er under gendannelse. Deaktivering af AUTO CLOSE løser dette problem.

Q: Kan sikkerhedskopier af transaktionslogge hjælpe under gendannelse?

A: Sikkerhedskopier af transaktionslogge kan frigøre logplads, hvis logdrevet er fuldt, hvilket potentielt kan give mulighed for at genoprettelsen kan fortsætte. Du kan dog ikke sikkerhedskopiere loggen for en database, der i øjeblikket er i genoprettelsestilstand. Logsikkerhedskopier er mere nyttige til forebyggelse og post-vedligeholdelse af genopretning.

Q: Hvornår skal jeg kontakte Microsoft Support?

A: Kontakt Microsoft Support for kritiske produktionssystemer, hvor indbyggede gendannelsesmetoder fejler, når du har mistanke om SQL Server softwarefejl, til komplekse Always On- eller klyngedannelsesscenarier, eller når virksomhedsmiljøer kræver garanteret datagendannelse med minimal nedetid.

Q: Hvordan kan jeg forhindre databaser i at sidde fast under gendannelse?

A: Implementer regelmæssige fulde og logmæssige sikkerhedskopier, overvåg og administrer VLF-antal, sørg for tilstrækkelig diskplads, brug korrekte nedlukningsprocedurer, oprethold hardwarepålidelighed, deaktiver AUTO CLOSE på produktionsdatabaser, og kør regelmæssige DBCC CHECKDB-operationer for at opdage korruption tidligt.

Q: Hvad er VLF'er, og hvorfor påvirker de helbredelsen?

A: Virtuelle logfiler (VLF'er) er interne segmenter i transaktionslogfiler. For mange VLF'er (over 1,000) forsinker gendannelsen betydeligt, fordi SQL Server skal behandle hver enkelt individuelt. Korrekt logfilstørrelse og vækstindstillinger hjælper med at opretholde optimale VLF-tællinger.

Q: Kan jeg gendanne fra en sikkerhedskopi, mens en database er under gendannelse?

A: Du kan ikke gendanne over en database, der i øjeblikket er i gendannelsestilstand. Du skal enten vente på, at gendannelsen er fuldført, stoppe SQL Server tjeneste eller gendan til et andet databasenavn. I hastesituationer kan du overveje at gendanne til et nyt databasenavn og derefter omdøbe det, når gendannelsesproblemerne er løst.

17. Konklusion og næste trin

17.1 Oversigt over nøgleløsninger

Når din SQL Server databasen er under gendannelse, starmed disse tilgange i rækkefølge:

  1. Tjek fejllogge og overvåg status
  2. Vent på naturlig afslutning, hvis fremskridtet er stabilt
  3. Brug GENDANNELSE MED GENDANNELSE til ufuldstændige gendannelser
  4. Løs problemer med transaktionsloggen
  5. Kør DBCC CHECKDB eller professionelle værktøjer til at forhindre korruption
  6. Overvej gendannelse af backup i alvorlige tilfælde

Most SQL Server db i genoprettelsessituationer løses inden for få timer ved hjælp af disse gennemprøvede metoder. Tøv ikke med at bruge avancerede teknikker eller professionelle værktøjer i komplekse scenarier.

17.2 Yderligere ressourcer

For yderligere assistance:

Regelmæssig vedligeholdelse og overvågning forhindrer most Problemer med gendannelse. Implementer de forebyggelsesmetoder, der er beskrevet i denne vejledning, for at minimere fremtidige forekomster af MS SQL i gendannelsesproblemer.


Om forfatteren

Yuan Sheng er en senior databaseadministrator (DBA) med over 10 års erfaring inden for SQL Server miljøer og virksomhedsdatabaseadministration. Han har med succes løst hundredvis af databasegendannelsesscenarier på tværs af finansielle tjenester, sundhedsvæsenet og produktionsorganisationer.

Yuan har specialiseret sig i SQL Server databasegendannelse, løsninger til høj tilgængelighed og ydeevneoptimering. Hans omfattende praktiske erfaring omfatter administration af databaser på flere terabyte, implementering af Always On Availability Groups og udvikling af automatiserede backup- og gendannelsesstrategier til missionskritiske forretningssystemer.

Gennem sin tekniske ekspertise og praktiske tilgang fokuserer Yuan på at skabe omfattende vejledninger, der hjælper databaseadministratorer og IT-professionelle med at løse komplekse SQL Server udfordringer effektivt. Han holder sig opdateret med det nyeste SQL Server udgivelser og Microsofts udviklende databaseteknologier, og tester regelmæssigt gendannelsesscenarier for at sikre, at hans anbefalinger afspejler bedste praksis i den virkelige verden.

Har spørgsmål vedr SQL Server gendannelse eller brug for yderligere vejledning i fejlfinding af databaser? Yuan er velkommen feedback og forslag for at forbedre disse tekniske ressourcer.