Sisällysluettelo piiloutua

SQL Server Tietokanta palautustilassa? Hanki 10 todistettua korjausta nyt! Vaiheittaiset ratkaisut helposta korjauksesta edistyneeseen korjaukseen.

1. Ymmärtäminen SQL Server Tietokannan palautustila

1.1 Mikä on palautustila SQL Server

Kun SQL Server tietokannan tilana on ”Toipumassa”, se tarkoittaa SQL Server suorittaa kaatumisen tai tapahtumien palautusta varmistaakseen tietokannan yhtenäisyyden. Tämä automaattinen prosessi ylläpitää tietojen eheyttä toistamalla vahvistettuja tapahtumia ja palauttamalla vahvistamattomia tapahtumia.

In SQL Server, tietokannassa on "In Recovery" -tunniste, mikä tarkoittaa, että se on tällä hetkellä palautustilassa.

Palautustila aktivoituu tyypillisesti odottamattomien sammumisten, sähkökatkosten tai tietokannan palautusten jälkeen. Vaikka tämä on normaali suojausmekanismi, ongelmia ilmenee, kun SQL Server Tietokannan palauttaminen kestää epätavallisen kauan tai näyttää jumissa.

1.2 Tietokannan palauttamisen kolme vaihetta

SQL Server toipuminen tapahtuu kolmessa eri vaiheessa:

1.2.1 Analyysivaihe

SQL Server skannaa tapahtumalokin viimeisimmästä tarkastuspisteestä tunnistaakseen likaiset sivut ja aktiiviset tapahtumat. Se luo likaisten sivujen taulukon (DPT) ja aktiivisten tapahtumien taulukon (ATT) seuratakseen, mitkä tapahtumat on palautettava.

1.2.2 Uudelleentoistovaihe (Roll Forward)

Järjestelmä toistaa kaikki committed-tapahtumat, joita ei kirjoitettu levylle ennen kaatumista. Tämä varmistaa, että kaikki committed-muutokset otetaan käyttöön oikein tietokantatiedostoissa.

1.2.3 Peruutusvaihe (palautus)

Kaikki vahvistamattomat tapahtumat peruutetaan tietokannan yhtenäisyyden säilyttämiseksi. Kun tämä on valmis, tietokanta on käytettävissä normaaliin käyttöön.

1.3 Yleisiä oireita ja virheilmoituksia

Kun SQL Server db on palautumistilassa, näet yleensä seuraavan:

  • Tietokannan nimi, jossa näkyy teksti ”(In Recovery)” SQL Server Hallintostudio
  • Kirjautumisvirheet ja "tietokantaa palautetaan" -viestit
  • Virhelokimerkinnät, jotka näyttävät palautumisen edistymisprosentit
  • Tietokannan tila, jossa näkyy teksti ”PALAUTETAAN” kyselyn yhteydessä

2. Perimmäiset syyt SQL Server Palautustilan ongelmat

2.1 Keskeneräiset palautustoiminnot

Yleisin syy ilmenee, kun palautetaan useista varmuuskopiotiedostoista käyttämällä NOPEUS vaihtoehto ilman loppuratkaisua TOIPUMISEN KANSSA komento. Tämä jättää tietokannan odottamaan lisäpalautustoimintoja.

2.2 Tapahtumalokin ongelmat

Suuret tapahtumalokitiedostot tai liian suuret virtuaalilokitiedostot (VLF) hidastavat palautumista merkittävästi. Kun MS SQL:ssä on tuhansia VLF-tiedostoja, prosessi voi kestää tunteja tai päiviä.

2.3 Järjestelmään liittyvät ongelmat

Laitteistoviat, sähkökatkokset tai riittämätön levytila ​​voivat keskeyttää tietokannan normaalin toiminnan ja käynnistää pitkiä palautusprosesseja uudelleenkäynnistyksen aikana.

2.4 Tietokannan vioittuminen

Vioittuneet tietokantatiedostot estävät palautuksen onnistuneen suorittamisen, jolloin tietokanta jää loputtomiin palautustilaan.

3. Diagnostiikkavaiheet ennen korjaamista

3.1 Tarkastus SQL Server Virhelokit

Ennen korjausten yrittämistä tarkista SQL Server virheloki palautumisen edistymisviesteille. Etsi merkintöjä, jotka näyttävät valmistumisprosentit ja arvioidun jäljellä olevan ajan.

  1. avoin SQL Server Hallintostudio
  2. Navigoida johonkin videonhallinta -> SQL Server Lokit
  3. Tarkista tietokannan nimeen liittyvät viimeisimmät merkinnät
  4. Etsi palautumisvaiheen indikaattoreita (vaihe 1, 2 tai 3/3)

Tarkistaminen SQL Server palautumisen edistymisviestien virhelokit.

3.2 Toipumisen edistymisen seuranta

Käytä dynaamisia hallintanäkymiä aktiivisten palautustoimintojen seuraamiseen:

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

3.3 Tietokannan tilan tarkistaminen

Tarkista tietokannan nykyinen tila ymmärtääksesi palautustilan:

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

4. Korjaus nro 1: Odota luonnollisen toipumisen päättymistä

Joskus kärsivällisyys on paras ratkaisu, kun SQL Server tietokanta on palautumistilassa. Tämä lähestymistapa toimii, kun palautus etenee normaalisti, mutta kestää odotettua kauemmin.

4.1 Milloin olla kärsivällinen

Salli luonnollinen valmistuminen, kun:

  • Virhelokit osoittavat tasaista edistymistä ja lyheneviä aika-arvioita
  • Korruptiovirheitä ei ole raportoitu
  • Tietokannassa on äskettäin tapahtunut suuria tapahtumia
  • VLF-määrä on hallittavissa (alle 1 000)

4.2 Toipumisen edistymisen seuranta

Virhelokeissa olevat palautumisajan arviot ovat usein epätarkkoja. Keskity edistymisprosentteihin jäljellä olevan ajan sijaan. Suuret tietokannat, joilla on laaja tapahtumahistoria, saattavat vaatia useita tunteja täydelliseen palautumiseen.

5. Korjaus nro 2: Käytä PALAUTA TIETOKANTA SISÄLTÄÄ -TOIMINTOA

Tämä korjaus ratkaisee epätäydelliset palautustoiminnot, joissa viimeinen palautusvaihe jätettiin pois. Käytä tätä, kun SQL Server db palautuksessa on seurausta NORECOVERY-komennolla tehdystä palautusprosessista.

5.1 Komennon ymmärtäminen

TIETOKANTAN PALAUTUS PALAUTUS-TOIMINNOILLA Komento viimeistelee palautusprosessin peruuttamalla vahvistamattomat tapahtumat ja tuomalla tietokannan verkkoon.

5.2 Käyttöönoton vaiheet

  1. avoin SQL Server Hallintostudio
  2. Yhdistä SQL Server esimerkki
  3. Napauta Uusi > Kysely nykyisellä yhteydellä
    Luo uusi kysely kohdassa SQL Server ManagementStudio.
  4. Suorittaa: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Odota valmistumisvahvistusta

Varoitus: Käytä tätä komentoa vain, jos olet varma, ettei odottavia palautustoimintoja ole.

6. Korjaus nro 3: Ratkaise tapahtumalokin ongelmat

Tapahtumalokin ongelmat ovat pitkittyneiden palautumisaikojen johtava syy. Tämä korjaus korjaa täysien lokien, liiallisten VLF-arvojen ja lokitilaongelmien ongelmat, jotka pitävät SQL Server elpymisessä.

6.1 Tapahtumalokien varmuuskopiointi

Vapauta lokitilaa luomalla tapahtumalokien varmuuskopioita:

  1. avoin SQL Server Hallintostudio
  2. Napsauta tietokantaa hiiren kakkospainikkeella -> Tehtävät -> Takaisin ylös
    Aloita varmuuskopiointitehtävä SQL Server tietokanta.
  3. Muutos Varmuuskopiotyyppi että Tapahtumaloki
    Vaihda varmuuskopiointityyppi tapahtumalokiksi
  4. Määritä varmuuskopiointikohde
  5. Napauta OK toteuttaa

6.2 Virtuaalisten lokitiedostojen (VLF) hallinta

Tarkista VLF-luku seuraavasti:

DBCC LOGINFO('YourDatabaseName');

Jos sinulla on yli 1 000 VLF:ää, vähennä niitä seuraavasti:

  1. Tapahtumalokin varmuuskopiointi
  2. Lokitiedoston pienentäminen: DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Lokitiedoston kasvattaminen suurina paloina (1 Gt tai enemmän)

6.3 Lokitiedostojen turvallinen kutistaminen

Kutista lokeja vain ylläpitoikkunoiden aikana, kun aktiivisia tapahtumia ei ole käynnissä. Varmuuskopioi tietokanta aina ennen kutistustoimintoja.

7. Korjaus nro 4: Suorita DBCC CHECKDB ja korjaa se

Tietokannan vioittuminen voi estää onnistuneen palautuksen. DBCC CHECKDB on sisäänrakennettu komento, joka voi tunnistaa ja korjata pieniä vioittumisongelmia, jotka pitävät MS SQL:n palautustilassa.

7.1 Tietokannan vioittumisen tarkistaminen

Aloita tietokannan eheyden tarkistamiseksi vakiomenetelmällä. Kokeile ensin suoraan DBCC CHECKDB:tä:

  1. Suorittaa: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Tarkista tulokset johdonmukaisuusvirheiden varalta
  3. Dokumentoi mahdolliset korruptiota koskevat viestit

Jos DBCC CHECKDB epäonnistuu Virheilmoituksilla, kuten ”Tietokantaa palautetaan. Odotetaan palautuksen valmistumista”, tietokanta on aktiivisesti palautustilassa ja estää pääsyn siihen. Siirry tässä tapauksessa osioon 7.3 käyttääksesi HÄTÄTILAA.

7.2 Esteettömän tietokannan korjausvaihtoehdot

Jos DBCC CHECKDB suoritettiin onnistuneesti ja löysi vioittumista, käytä näitä korjausohjeita:

  1. Aseta tietokanta yhden käyttäjän tilaan: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Yritä turvallista korjausta: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. Jos epäonnistut, käytä: DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Palaa usean käyttäjän tilaan: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Hätätilan käyttö, kun tietokantaan ei pääse käsiksi

Hätätilaa tarvitaan vain, kun tietokanta on jumissa palautustilassa ja hylkää normaalit DBCC CHECKDB -yritykset. Se merkitsee tietokannan VAIN LUKU -tilaan ja poistaa lokinkirjauksen käytöstä. Käytä tätä lähestymistapaa, kun normaali käyttö epäonnistuu:

  1. Aseta hätätila: ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Aseta yhdeksi käyttäjäksi: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Suorita eheystarkistus: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Jos vioittumista löytyy, suorita ensin turvallinen korjaus: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. Jos epäonnistui, käytä korjausta tietojen menetyksellä:  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Aseta usean käyttäjän oikeudet: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Aseta verkossa: ALTER DATABASE [YourDatabaseName] SET ONLINE;

Tärkeää: HÄTÄtila ohittaa normaalit palautusprosessit ja sitä tulisi käyttää vain, kun tietokantaan ei pääse lainkaan käsiksi. Kokeile aina ensin DBCC CHECKDB -vakiomenetelmää ennen kuin siirryt HÄTÄtilaan.

Löydät kattavampi opas DBCC CHECKDB:n käyttöön.

8. Korjaus #5: Palauta varmuuskopiosta

Kun muut menetelmät epäonnistuvat tai tietojen eheys on kyseenalainen, palauttaminen puhtaasta varmuuskopiosta on usein luotettavin ratkaisu ongelman ratkaisemiseksi. SQL Server tietokanta palautusongelmissa.

8.1 Milloin varmuuskopioiden palautus kannattaa valita

Harkitse varmuuskopioiden palauttamista, kun:

  • Palautus on ollut käynnissä yli 24 tuntia ilman edistystä
  • Korruptiovirheet estävät onnistuneen korjauksen
  • Sinulla on saatavilla tuoreita, vahvistettuja varmuuskopioita
  • Tietojen menetys viimeisimmän varmuuskopioinnin jälkeen on hyväksyttävää

8.2 Vaiheittainen palautusprosessi

  1. avoin SQL Server Hallintostudio
  2. Napsauta hiiren kakkospainikkeella Tietokannat -> Palauta tietokanta
    Aloita tietokannan palautustehtävä kohdassa SQL Server Hallintostudio
  3. valita Laite kohdassa Lähde
  4. Napauta Lisää ja selaa varmuuskopiotiedostoosi
  5. Valitse varmuuskopio ja napsauta OK
  6. Valita Korvaa olemassa oleva tietokanta tarvittaessa
  7. Napauta OK aloittaa restaurointi

Palauta tietokanta kohdassa SQL Server.

8.3 Palautuminen tietyllä aikapisteellä

Tietojen menetyksen minimoimiseksi käytä tapahtumalokin varmuuskopioita palauttaaksesi tiedot tiettyyn ajankohtaan. Varmista, että sinulla on katkeamaton lokivarmuuskopioiden ketju täydestä varmuuskopiosta haluttuun palautuspisteeseen.

8.4 Viite

Voit saada lisätietoja verkkosivuiltamme kattava opas varmuuskopiointiin ja palautukseen SQL Server tietokannat.

9. Korjaus nro 6: Poista AUTOMAATTINEN SULKEMISOminaisuus käytöstä

AUTO CLOSE -tietokannan ominaisuus voi aiheuttaa toistuvia palautusjaksoja, jolloin näyttää siltä, ​​että SQL Server tietokanta on jatkuvasti palautumistilassa. Tämän ominaisuuden poistaminen käytöstä ratkaisee ongelman.

9.1 AUTOMAATTISEN SULKEMISEN ongelmien ymmärtäminen

Kun AUTOMAATTINEN SULKEUTUMINEN on käytössä, SQL Server sulkee tietokannan viimeisen yhteyden päättymisen jälkeen ja avaa sen sitten uudelleen uusia yhteyksiä varten. Tämä toistuva avaaminen käynnistää palautusprosessit joka kerta.

9.2 AUTOMAATTISEN SULKEMISEN poistaminen käytöstä

  1. avoin SQL Server Hallintostudio
  2. Napsauta tietokantaa hiiren kakkospainikkeella -> Kiinteistöt
  3. valita Vaihtoehdot vasemmasta paneelista
  4. Asettaa Automaattinen sulkeminen että Väärä
  5. Napauta OK ottaa muutokset käyttöön

Poista automaattinen sulkeminen käytöstä kohteelle SQL Server tietokannassa SQL Server ManagementStudio.

Vaihtoehtoisesti voit käyttää T-SQL:ää:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Korjaus nro 7: Käynnistä uudelleen SQL Server Palvelu

Palvelun uudelleenkäynnistys voi ratkaista jumiutuneet palautusprosessit, mutta sitä tulee käyttää varoen, koska se käynnistää palautuksen alusta. Tämä korjaus toimii, kun SQL Server toipumassa näyttää täysin jäätyneeltä.

10.1 Milloin palvelun uudelleenkäynnistys auttaa

Käynnistä palvelu uudelleen, kun:

  • Toipuminen on pysähtynyt useiksi tunneiksi
  • Virhelokeissa ei näy uusia merkintöjä
  • Muut tietokannat toimivat normaalisti
  • Sinulla on varaa pidempiin seisokkeihin

10.2 Turvallisen uudelleenkäynnistyksen menettelytavat

  1. avoin SQL Server Configuration Manager External Link
  2. Navigoida johonkin SQL Server Palvelut
  3. Etsi SQL Server uudelleenkäynnistettävän instanssin ja napsauta sitten hiiren kakkospainikkeella SQL Server (Esiintymän nimi)
  4. valita Käynnistä uudelleen
  5. Odota, että palvelu käynnistyy kokonaan uudelleen
  6. Seuraa virhelokien palautumisen edistymistä

Käynnistä SQL Server palvelu SQL Server Configuration Manager.

Huomautus: Uudelleenkäynnistys saa palautumisen alkamaan alusta, mikä voi pidentää kokonaispalautumisaikaa.

11. Korjaus nro 8: Korjaa tietokanta irrottamalla ja liittämällä se uudelleen

Äärimmäisissä tapauksissa irrota tietokanta ja liitä se uudelleen:

  1. Irrota tietokanta: EXEC sp_detach_db 'YourDatabaseName';
  2. Liitä mukaan vain MDF-tiedosto: CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Tämä luo uuden tapahtumalokin

Varoitus: Tämä menetelmä voi johtaa tietojen menetykseen. Käytä tätä vain, kun muut vaihtoehdot on käytetty loppuun.

12. Korjaus #9: Tietokannan peilauksen ongelmien käsittely

Tietokannan peilauksen asetukset voivat aiheuttaa ainutlaatuisia palautusongelmia. Tämä korjaus korjaa peilaukseen liittyviä ongelmia, jotka pitävät tietokannat palautustilassa.

12.1 Peilaukseen liittyvät palautusongelmat

Peilattujen tietokantojen palautus voi jumiutua kumppaniyhteysongelmien tai päätepisteongelmien vuoksi. Sekä pää- että peilitietokannat voivat näyttää palautustilan.

12.2 Peilauksen palautusratkaisut

Käynnistä peilauspäätepiste uudelleen:

  1. Etsi päätepisteen nimi: SELECT * FROM sys.endpoints WHERE type = 4;
  2. Pysäytyspiste: ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Aloituspiste: ALTER ENDPOINT [EndpointName] STATE = STARTED;

Jos päätepisteen uudelleenkäynnistys epäonnistuu, katkaise peilauskumppanuus:

  1. Suorittaa: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Juosta: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Peilauksen uudelleenmäärittäminen, kun tietokanta on online-tilassa

13. Korjaus #10: Käytä ammattimaisia ​​palautustyökaluja

Kolmannen osapuolen palautustyökalut tarjoavat edistyneitä korjausominaisuuksia, kun ne ovat sisäänrakennettuja SQL Server menetelmät epäonnistuvat. Nämä työkalut voivat usein palauttaa tietoja vakavasti vioittuneista tietokannoista.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery on korkea takaisinperintäprosentti ja tarjoaa kattavat vaihtoehdot.

Alla on vaiheet sen käyttämiseksi:

  1. Pysäytä SQL Server Palvelun.
  2. Tee kopiot tietokannan tiedostoista palautustilassa, mukaan lukien sekä ensisijainen MDF-tiedosto että toissijaiset NDF-tiedostot.
  3. Aloita SQL Server Palvelun.
  4. Aloita DataNumen SQL Recovery.
  5. Valitse palautettavan tietokannan lähteeksi kopio alkuperäisen tiedoston sijaan.
  6. Napsauta ”Aloita palautus” ja palauta tietokanta noudattamalla ohjeita.
  7. Palautusprosessin jälkeen uusi palautustietokanta ilmestyy SQL Server joka sisältää kaikki palautetut tiedot.

Käyttää DataNumen SQL Recovery korjata yksi vioittunut SQL Server MDF-tiedosto.

13.2 Milloin kannattaa harkita kolmannen osapuolen työkaluja

Käytä ammattimaisia ​​työkaluja, kun:

  • Sisäänrakennetut korjausvaihtoehdot epäonnistuvat tai raportoivat laajamittaista vioittumista
  • Ei viimeaikaisia ​​varmuuskopioita saatavilla
  • Kriittiset tiedot on palautettava korruptiosta huolimatta
  • Tavalliset palautusmenetelmät johtavat merkittävään tietojen menetykseen

14. Ennaltaehkäisyn parhaat käytännöt

14.1 Säännölliset huoltotehtävät

Käytä näitä käytäntöjä estääksesi SQL Server tietokannan palautusongelmat:

  • Aikatauluta säännölliset täydelliset ja lokivarmuuskopiot: Ylläpidä täydellisiä varmuuskopioketjuja
  • VLF-lukujen näyttö: Pidä VLF-arvot alle 100:ssa optimaalisen suorituskyvyn saavuttamiseksi
  • Lokitiedoston koon määritys: Esimitoita tukit liiallisen itsekasvun välttämiseksi
  • Suorita tavallinen DBCC CHECKDB: Havaitse korruptio varhain

14.2 Seuranta ja hälytys

Määritä ennakoiva seuranta:

  1. Tietokannan tilanmuutosten hälytysten määrittäminen
  2. Lokitiedostoasemien levytilan valvonta
  3. Pitkäaikaisten tapahtumien seuranta
  4. Varoitus liiallisesta VLF-määrästä

14.3 Laitteisto ja infrastruktuuri

Varmista luotettava infrastruktuuri:

15. Monimutkaisten skenaarioiden vianmääritys

15.1 Useita tietokantaongelmia

Kun useita tietokantoja on jumissa palautusvaiheessa:

  1. Tarkista koko järjestelmän laajuiset ongelmat (levytila, muisti)
  2. Priorisoi kriittiset tietokannat palautusta varten
  3. Harkitse koko instanssia koskevia laitteisto-ongelmia
  4. Tarkista viimeisimmät järjestelmämuutokset tai päivitykset

15.2 Suurten tietokantojen huomioon ottamista

Yli 1 Tt:n tietokantoja varten:

  • Varaudu pidempään toipumisaikaan (mahdollisesti päiviin)
  • Varmista riittävä muistin allokointi
  • Harkitse rinnakkaiskäsittelyasetuksia
  • Tempdb-tilan valvonta palautuksen aikana

15.3 Milloin ottaa yhteyttä Microsoftin tukeen

Ota yhteyttä Microsoftin tukeen, jos tarvitset:

  • Kriittiset tuotantojärjestelmät ilman varavaihtoehtoja
  • epäillään SQL Server ohjelmistovirheet
  • Taattua palautumista vaativat yritysympäristöt
  • Monimutkaiset Always On- tai klusterointiskenaariot

16. UKK

K: Kuinka kauan pitäisi SQL Server Kuinka tietokannan palauttaminen yleensä kestää?

A: Palautumisaika riippuu tietokannan koosta, tapahtumien määrästä ja laitteiston suorituskyvystä. Pienet tietokannat palautuvat tyypillisesti minuuteissa, kun taas suuret tietokannat, joissa on laajat tapahtumalokit, voivat kestää useita tunteja. Virhelokeissa näkyvät aika-arviot ovat usein epätarkkoja, joten keskity sen sijaan edistymisprosentteihin.

K: Voinko lopettaa SQL Server palautuksen aikana menettämättä tietoja?

A: Pysähtyminen SQL Server palautuksen aikana on yleensä turvallista, mutta palautusprosessi käynnistyy uudelleen alusta, kun palvelu käynnistyy uudelleen. Tämä pidentää kokonaispalautumisaikaa, mutta ei aiheuta enempää datahäviöitä kuin alkuperäisen tapahtuman aikana tapahtui.

K: Mitä eroa on "Toipumassa" ja "Toipuminen odottaa" -tileillä?

A: ”Toipumassa” tarkoittaa SQL Server suorittaa aktiivisesti palautustoimintoja. ”Palautus odottaa” tarkoittaa, että palautusprosessin käynnistyminen epäonnistui, yleensä puuttuvien tiedostojen, riittämättömien käyttöoikeuksien tai levytilaongelmien vuoksi, jotka on ratkaistava ennen palautuksen jatkamista.

Tarkempia tietoja "Perintä vireillä" -kohdasta löydät osoitteesta kattava opas.

K: Menetänkö tietoja, jos käytän REPAIR_ALLOW_DATA_LOSS-metodia?

V: Kyllä, REPAIR_ALLOW_DATA_LOSS saattaa poistaa vioittuneet tiedot ja palauttaa tietokannan yhtenäisyyden. Kokeile aina ensin REPAIR_REBUILD-komentoa, joka korjaa rakenteellisia ongelmia menettämättä tietoja. Käytä REPAIR_ALLOW_DATA_LOSS-komentoa vain viimeisenä keinona, kun sinulla ei ole muita palautusvaihtoehtoja.

K: Voinko käyttää muita tietokantoja, kun yhtä tietokantaa palautetaan?

A: Kyllä, muut tietokannat samalla sivustolla SQL Server instanssi pysyy käytettävissä palautuksen aikana. Vain palautettava tietokanta ei ole käytettävissä. Palautustoiminnot voivat kuitenkin vaikuttaa palvelimen kokonaissuorituskykyyn.

K: Mikä aiheuttaa tietokannan jumiutumisen palautustilaan?

A: Yleisiä syitä ovat epätäydelliset palautustoiminnot NORECOVERY-toimintoa käyttäen, liiallinen virtuaalilokitiedostojen (VLF) määrä, suuret vahvistamattomat tapahtumat, tietokannan vioittuminen, riittämätön levytila ​​ja laitteisto-ongelmat. AUTOMAATTISTA SULKEMISTA käyttävät tietokannat saattavat myös näyttää jatkuvasti palautustilaan siirtyvän.

K: Mistä tiedän, edistyykö toipuminen vai onko se jumissa?

A: Näyttö SQL Server Palautuksen edistymisviestien virhelokit, jotka näyttävät valmistumisprosentit. Tarkista aktiiviset tietokannan käynnistyskomennot sys.dm_exec_requests-komennon avulla. Jos prosenttiosuudet kasvavat ajan myötä, palautus edistyy. Uusien lokimerkintöjen puuttuminen useisiin tunteihin voi viitata prosessin jumiutumiseen.

K: Onko turvallista käynnistää uudelleen SQL Server palvelu toipumisen aikana?

A: Uudelleenkäynnistys on turvallista, mutta sitä tulee käyttää varoen. Se käynnistää palautumisen alusta, mikä voi kaksinkertaistaa palautumisajan. Käynnistä palautus uudelleen vain, jos palautus näyttää täysin jumiutuneen eikä edistystä ole tapahtunut moneen tuntiin tai jos epäilet, että prosessi on todella jumissa.

K: Mitä eroa on AUTOMAATTISELLA SULKEMISELLA ja palautustilalla?

A: AUTOMAATTINEN SULKEMISTO sulkee tietokannat automaattisesti, kun yhteyksiä ei ole, ja avaa ne sitten uudelleen uusia yhteyksiä varten. Tämä toistuva avaaminen käynnistää lyhyitä palautusprosesseja joka kerta, jolloin tietokannan näyttäisi olevan jatkuvassa palautumisessa. AUTOMAATTISEN SULKEMISEN poistaminen käytöstä ratkaisee tämän ongelman.

K: Voivatko tapahtumalokin varmuuskopiot auttaa palautuksen aikana?

A: Tapahtumalokin varmuuskopiot voivat vapauttaa lokitilaa, jos lokiasema on täynnä, jolloin palautus voi mahdollisesti jatkua. Et kuitenkaan voi varmuuskopioida tietokannan lokia, joka on parhaillaan palautustilassa. Lokivarmuuskopiot ovat hyödyllisempiä ennaltaehkäisevään toimintaan ja palautuksen jälkeiseen ylläpitoon.

K: Milloin minun pitäisi ottaa yhteyttä Microsoftin tukeen?

A: Ota yhteyttä Microsoftin tukeen kriittisten tuotantojärjestelmien osalta, joissa sisäänrakennetut palautusmenetelmät epäonnistuvat, kun epäilet SQL Server ohjelmistovirheiden sattuessa, monimutkaisissa Always On- tai klusterointitilanteissa tai silloin, kun yritysympäristöt vaativat taattua tietojen palautusta minimaalisella käyttökatkoksella.

K: Miten voin estää tietokantojen jumiutumisen palautusvaiheessa?

A: Ota säännölliset täydelliset ja lokivarmuuskopiot, valvo ja hallinnoi VLF-määriä, varmista riittävä levytila, käytä asianmukaisia ​​sammutusmenetelmiä, ylläpidä laitteiston luotettavuutta, poista AUTO CLOSE käytöstä tuotantotietokannoissa ja suorita säännöllisiä DBCC CHECKDB -toimintoja vioittumisen havaitsemiseksi varhaisessa vaiheessa.

K: Mitä ovat VLF:t ja miksi ne vaikuttavat palautumiseen?

A: Virtuaalilokitiedostot (VLF) ovat tapahtumalokitiedostojen sisäisiä segmenttejä. Liian monet VLF:t (yli 1 000) hidastavat palautumista merkittävästi, koska SQL Server on käsiteltävä jokainen erikseen. Lokitiedostojen oikeat koko- ja kasvuasetukset auttavat ylläpitämään optimaalisia VLF-määriä.

K: Voinko palauttaa varmuuskopiosta, kun tietokantaa palautetaan?

A: Et voi palauttaa tietoja tietokannan päälle, joka on parhaillaan palautustilassa. Sinun on joko odotettava palautuksen valmistumista tai pysäytettävä palautus. SQL Server palvelua tai palauta se toiseen tietokannan nimeen. Kiireellisissä tilanteissa harkitse palauttamista uuteen tietokannan nimeen ja sen uudelleennimeämistä, kun palautusongelmat on ratkaistu.

17. Johtopäätös ja seuraavat vaiheet

17.1 Yhteenveto keskeisistä ratkaisuista

Kun SQL Server tietokanta on palautumassa, aloita näillä lähestymistavoilla tässä järjestyksessä:

  1. Tarkista virhelokit ja seuraa edistymistä
  2. Odota luonnollista valmistumista, jos edistyminen on tasaista
  3. Käytä PALAUTUS WITH RECOVERY -toimintoa epätäydellisiin palautuksiin.
  4. Korjaa tapahtumalokin ongelmat
  5. Suorita DBCC CHECKDB tai ammattimaisia ​​työkaluja vioittumisen varalta
  6. Harkitse varmuuskopioiden palauttamista vakavissa tapauksissa

bridge SQL Server db:n palautustilanteet ratkeavat tunneissa näiden todistettujen menetelmien avulla. Monimutkaisissa tilanteissa älä epäröi käyttää edistyneitä tekniikoita tai ammattilaisten työkaluja.

17.2 Lisäresurssit

Lisäapua:

Säännöllinen ylläpito ja valvonta estävät useimmat palautumisongelmat. Toteuta tässä oppaassa esitetyt ennaltaehkäisevät käytännöt minimoidaksesi MS SQL:n palautusongelmien esiintymisen tulevaisuudessa.


kirjailijasta

Yuan Sheng on kokenut tietokannan ylläpitäjä (DBA), jolla on yli 10 vuoden kokemus alalta SQL Server ympäristöissä ja yritystietokantojen hallinnassa. Hän on onnistuneesti ratkaissut satoja tietokantojen palautustilanteita rahoituspalveluissa, terveydenhuollossa ja valmistusorganisaatioissa.

Yuan on erikoistunut SQL Server tietokannan palautus, korkean käytettävyyden ratkaisut ja suorituskyvyn optimointi. Hänen laajaan käytännön kokemukseensa kuuluu usean teratavun tietokantojen hallinta, Always On Availability Groupsin käyttöönotto sekä automatisoitujen varmuuskopiointi- ja palautusstrategioiden kehittäminen kriittisille liiketoimintajärjestelmille.

Teknisen asiantuntemuksensa ja käytännönläheisen lähestymistapansa avulla Yuan keskittyy luomaan kattavia oppaita, jotka auttavat tietokannan ylläpitäjiä ja IT-ammattilaisia ​​ratkaisemaan monimutkaisia ​​ongelmia. SQL Server haastaa tehokkaasti. Hän pysyy ajan tasalla uusimmista SQL Server julkaisuja ja Microsoftin kehittyviä tietokantateknologioita, testaten säännöllisesti palautusskenaarioita varmistaakseen, että hänen suosituksensa vastaavat todellisia parhaita käytäntöjä.

Onko sinulla kysyttävää SQL Server palautus tai tarvitsetko lisäohjeita tietokannan vianmääritykseen? Yuan toivottaa sinut tervetulleeksi palautetta ja ehdotuksia näiden teknisten resurssien parantamiseksi.