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.
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.
- avoin SQL Server Hallintostudio
- Navigoida johonkin videonhallinta -> SQL Server Lokit
- Tarkista tietokannan nimeen liittyvät viimeisimmät merkinnät
- Etsi palautumisvaiheen indikaattoreita (vaihe 1, 2 tai 3/3)
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
- avoin SQL Server Hallintostudio
- Yhdistä SQL Server esimerkki
- Napauta Uusi > Kysely nykyisellä yhteydellä
- Suorittaa:
RESTORE DATABASE [YourDatabaseName] WITH RECOVERY; - 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:
- avoin SQL Server Hallintostudio
- Napsauta tietokantaa hiiren kakkospainikkeella -> Tehtävät -> Takaisin ylös
- Muutos Varmuuskopiotyyppi että Tapahtumaloki
- Määritä varmuuskopiointikohde
- 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:
- Tapahtumalokin varmuuskopiointi
- Lokitiedoston pienentäminen:
DBCC SHRINKFILE(LogFileName, TRUNCATEONLY); - 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ä:
- Suorittaa:
DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS; - Tarkista tulokset johdonmukaisuusvirheiden varalta
- 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:
- Aseta tietokanta yhden käyttäjän tilaan:
ALTER DATABASE [YourDatabaseName] SET SINGLE_USER; - Yritä turvallista korjausta:
DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD); - Jos epäonnistut, käytä:
DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS); - 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:
- Aseta hätätila:
ALTER DATABASE [YourDatabaseName] SET EMERGENCY; - Aseta yhdeksi käyttäjäksi:
ALTER DATABASE [YourDatabaseName] SET SINGLE_USER; - Suorita eheystarkistus:
DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS; - Jos vioittumista löytyy, suorita ensin turvallinen korjaus:
DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD); - Jos epäonnistui, käytä korjausta tietojen menetyksellä:
DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS); - Aseta usean käyttäjän oikeudet:
ALTER DATABASE [YourDatabaseName] SET MULTI_USER; - 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
- avoin SQL Server Hallintostudio
- Napsauta hiiren kakkospainikkeella Tietokannat -> Palauta tietokanta
- valita Laite kohdassa Lähde
- Napauta Lisää ja selaa varmuuskopiotiedostoosi
- Valitse varmuuskopio ja napsauta OK
- Valita Korvaa olemassa oleva tietokanta tarvittaessa
- Napauta OK aloittaa restaurointi
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ä
- avoin SQL Server Hallintostudio
- Napsauta tietokantaa hiiren kakkospainikkeella -> Kiinteistöt
- valita Vaihtoehdot vasemmasta paneelista
- Asettaa Automaattinen sulkeminen että Väärä
- Napauta OK ottaa muutokset käyttöön
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
- avoin SQL Server Configuration Manager
- Navigoida johonkin SQL Server Palvelut
- Etsi SQL Server uudelleenkäynnistettävän instanssin ja napsauta sitten hiiren kakkospainikkeella SQL Server (Esiintymän nimi)
- valita Käynnistä uudelleen
- Odota, että palvelu käynnistyy kokonaan uudelleen
- Seuraa virhelokien palautumisen edistymistä
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:
- Irrota tietokanta:
EXEC sp_detach_db 'YourDatabaseName'; - Liitä mukaan vain MDF-tiedosto:
CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG; - 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:
- Etsi päätepisteen nimi:
SELECT * FROM sys.endpoints WHERE type = 4; - Pysäytyspiste:
ALTER ENDPOINT [EndpointName] STATE = STOPPED; - Aloituspiste:
ALTER ENDPOINT [EndpointName] STATE = STARTED;
Jos päätepisteen uudelleenkäynnistys epäonnistuu, katkaise peilauskumppanuus:
- Suorittaa:
ALTER DATABASE [DatabaseName] SET PARTNER OFF; - Juosta:
RESTORE DATABASE [DatabaseName] WITH RECOVERY; - 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:
- Pysäytä SQL Server Palvelun.
- Tee kopiot tietokannan tiedostoista palautustilassa, mukaan lukien sekä ensisijainen MDF-tiedosto että toissijaiset NDF-tiedostot.
- Aloita SQL Server Palvelun.
- Aloita DataNumen SQL Recovery.
- Valitse palautettavan tietokannan lähteeksi kopio alkuperäisen tiedoston sijaan.
- Napsauta ”Aloita palautus” ja palauta tietokanta noudattamalla ohjeita.
- Palautusprosessin jälkeen uusi palautustietokanta ilmestyy SQL Server joka sisältää kaikki palautetut tiedot.
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:
- Tietokannan tilanmuutosten hälytysten määrittäminen
- Lokitiedostoasemien levytilan valvonta
- Pitkäaikaisten tapahtumien seuranta
- Varoitus liiallisesta VLF-määrästä
14.3 Laitteisto ja infrastruktuuri
Varmista luotettava infrastruktuuri:
- Käytä tapahtumalokeille nopeaa tallennustilaa (mieluiten SSD-levyjä)
- Toteuta redundantit virtalähteet
- Erota data- ja lokitiedostot eri asemille
- Harkita korkean käytettävyyden ratkaisut pitää Aina käytettävissä olevat ryhmät
15. Monimutkaisten skenaarioiden vianmääritys
15.1 Useita tietokantaongelmia
Kun useita tietokantoja on jumissa palautusvaiheessa:
- Tarkista koko järjestelmän laajuiset ongelmat (levytila, muisti)
- Priorisoi kriittiset tietokannat palautusta varten
- Harkitse koko instanssia koskevia laitteisto-ongelmia
- 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ä:
- Tarkista virhelokit ja seuraa edistymistä
- Odota luonnollista valmistumista, jos edistyminen on tasaista
- Käytä PALAUTUS WITH RECOVERY -toimintoa epätäydellisiin palautuksiin.
- Korjaa tapahtumalokin ongelmat
- Suorita DBCC CHECKDB tai ammattimaisia työkaluja vioittumisen varalta
- 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:
- Microsoft SQL Server Dokumentaatio
- SQL Server Yhteisöfoorumit
- Tietokannan hallintablogit ja tekniset resurssit
- Ammattimaiset tietokannan palautuspalvelut
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.









