Zdieľať teraz:
Obsah skryť

SQL Server databáza v režime obnovy? Získajte 10 overených riešení hneď teraz! Podrobné riešenia od jednoduchej opravy až po pokročilú opravu.

1. porozumenie SQL Server Režim obnovy databázy

1.1 Čo je režim obnovenia v SQL Server

Keď SQL Server databáza zobrazuje stav „V procese obnovy“, to znamená SQL Server vykonáva obnovu po zlyhaní alebo obnovu transakcií, aby sa zabezpečila konzistencia databázy. Tento automatický proces udržiava integritu údajov opätovným prehrávaním potvrdených transakcií a vrátením nepotvrdených.

In SQL Server, databáza obsahuje značku „V režime obnovy“, čo znamená, že sa momentálne nachádza v režime obnovy.

Režim obnovy sa zvyčajne aktivuje po neočakávaných vypnutiach, výpadkoch napájania alebo počas obnovy databázy. Hoci ide o bežný ochranný mechanizmus, problémy vznikajú, keď... SQL Server Obnova databázy trvá nezvyčajne dlho alebo sa zdá byť zaseknutá.

1.2 Tri fázy obnovy databázy

SQL Server zotavenie prebieha v troch odlišných fázach:

1.2.1 Fáza analýzy

SQL Server prehľadáva protokol transakcií od posledného kontrolného bodu, aby identifikoval znečistené stránky a aktívne transakcie. Vytvára tabuľku znečistených stránok (DPT) a tabuľku aktívnych transakcií (ATT) na sledovanie toho, čo je potrebné obnoviť.

1.2.2 Fáza opakovania (prechod dopredu)

Systém prehrá všetky potvrdené transakcie, ktoré neboli zapísané na disk pred zlyhaním. Tým sa zabezpečí, že všetky potvrdené zmeny sa správne použijú v súboroch databázy.

1.2.3 Fáza vrátenia zmien (vrátenie zmien)

Všetky nepotvrdené transakcie sa vrátia späť, aby sa zachovala konzistencia databázy. Po dokončení je databáza k dispozícii pre bežnú prevádzku.

1.3 Bežné príznaky a chybové hlásenia

Keď si SQL Server Ak sa databáza obnovuje, zvyčajne uvidíte:

  • Názov databázy zobrazuje „(V procese obnovy)“ v SQL Server Štúdio manažmentu
  • Zlyhania prihlásenia s hláseniami „databáza sa obnovuje“
  • Záznamy v denníku chýb zobrazujúce percentá priebehu obnovy
  • Stav databázy pri dotaze zobrazuje „RECOVERING“ (OBNOVA)

2. Základné príčiny SQL Server Problémy s režimom obnovenia

2.1 Nedokončené operácie obnovy

Most bežná príčina sa vyskytuje pri obnove z viacerých záložných súborov pomocou NORECOVERY možnosť bez finále S REKONŠTRUKCIOU príkaz. Databáza tak čaká na ďalšie operácie obnovy.

2.2 Problémy so záznamom transakcií

Veľké súbory transakčných protokolov alebo nadmerné množstvo virtuálnych súborov protokolov (VLF) výrazne spomaľujú obnovu. Keď sa MS SQL obnovuje s tisíckami súborov VLF, proces môže trvať hodiny alebo dni.

2.3 Problémy súvisiace so systémom

Poruchy hardvéru, výpadky napájania alebo nedostatok miesta na disku môžu prerušiť bežnú prevádzku databázy a spustiť zdĺhavé procesy obnovy počas...tart.

2.4 Poškodenie databázy

Poškodené súbory databázy bránia úspešnému dokončeniu obnovy, čo spôsobuje, že databáza zostáva natrvalo v režime obnovy.

3. DiagnózaostKroky pred opravou

3.1 Kontrola SQL Server Chyba Záznamy

Pred pokusom o opravu skontrolujte SQL Server denník chýb pre správy o priebehu obnovy. Hľadajte položky zobrazujúce percentá dokončenia a odhadovaný zostávajúci čas.

  1. Otvorený SQL Server Štúdio manažmentu
  2. prejdite na management -> SQL Server Záznamy
  3. Skontrolujte posledné položky pre názov vašej databázy
  4. Hľadajte indikátory fázy zotavenia (fáza 1, 2 alebo 3 z 3)

Kontrola SQL Server protokoly chýb pre správy o priebehu obnovy.

3.2 Monitorovanie pokroku v zotavovaní

Na sledovanie aktívnych operácií obnovy použite dynamické zobrazenia správy:

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

3.3 Kontrola stavu databázy

Overte aktuálny stav databázy, aby ste pochopili stav obnovy:

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

4. Oprava č. 1: Počkajte na dokončenie prirodzenej obnovy

Niekedy je trpezlivosť najlepším riešením, keď... SQL Server Databáza sa obnovuje. Tento prístup funguje, keď obnova prebieha normálne, ale trvá dlhšie, ako sa očakávalo.

4.1 Kedy byť trpezlivý

Povoliť prirodzené dokončenie, keď:

  • Záznamy chýb ukazujú stabilný pokrok s klesajúcimi odhadmi času
  • Nie sú hlásené žiadne chyby korupcie
  • V databáze nedávno došlo k veľkým transakciám
  • Počet VLF je zvládnuteľný (pod 1 000)

4.2 Monitorovanie pokroku v zotavovaní

Odhady času obnovy v protokoloch chýb sú často nepresné. Zamerajte sa na percentá priebehu, a nie na zostávajúci čas. Veľké databázy s rozsiahlou históriou transakcií môžu na úplnú obnovu vyžadovať niekoľko hodín.

5. Oprava č. 2: Použite OBNOVENIE DATABÁZY S RECOVERY

Táto oprava rieši nedokončené operácie obnovy, pri ktorých bol vynechaný posledný krok obnovy. Použite ju, keď vaša SQL Server db v procese obnovy vznikol v dôsledku procesu obnovy pomocou NORECOVERY.

5.1 Pochopenie príkazu

OBNOVA DATABÁZY S RECOVERY Príkaz dokončí proces obnovy vrátením nepotvrdených transakcií späť a uvedením databázy do online režimu.

5.2 Kroky implementácie

  1. Otvorený SQL Server Štúdio manažmentu
  2. Pripojte sa k svojmu SQL Server inštancie
  3. kliknite Nové > Dotaz s aktuálnym pripojením
    Vytvorte nový dopyt v SQL Server Štúdio manažmentu.
  4. Vykonať: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Počkajte na potvrdenie dokončenia

Upozornenie: Tento príkaz použite iba v prípade, že ste si istí, že nečakajú žiadne ďalšie operácie obnovy.

6. Oprava č. 3: Riešenie problémov so záznamom transakcií

Problémy s protokolmi transakcií sú hlavnou príčinou dlhších časov obnovy. Táto oprava rieši problémy s plnými protokolmi, nadmerným množstvom VLF a priestorom v protokoloch, ktoré udržiavajú SQL Server v zotavovaní.

6.1 Zálohovanie protokolov transakcií

Uvoľnite miesto v protokoloch vytvorením záloh protokolov transakcií:

  1. Otvorený SQL Server Štúdio manažmentu
  2. Kliknite pravým tlačidlom myši na vašu databázu -> Úlohy -> Zálohovať
    Starúloha zálohovania pre SQL Server databáz.
  3. Zmena Typ zálohy na Denník transakcií
    Zmeniť typ zálohy na protokol transakcií
  4. Zadajte cieľ zálohy
  5. kliknite OK vykonať

6.2 Správa virtuálnych súborov protokolov (VLF)

Skontrolujte počet VLF pomocou:

DBCC LOGINFO('YourDatabaseName');

Ak máte viac ako 1 000 VLF, znížte ich počet o:

  1. Zálohovanie protokolu transakcií
  2. Zmenšenie súboru denníka: DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Rozširovanie súboru denníka vo veľkých blokoch (1 GB alebo viac)

6.3 Bezpečné zmenšovanie súborov protokolov

Protokoly zmenšujte iba počas údržbových okien, keď neprebiehajú žiadne aktívne transakcie. Pred zmenšovaním vždy zálohujte databázu.

7. Oprava č. 4: Spustite príkaz DBCC CHECKDB a opravte ho

Poškodenie databázy môže zabrániť úspešnému dokončeniu obnovy. DBCC CHECKDB je vstavaný príkaz, ktorý dokáže identifikovať a opraviť menšie problémy s poškodením, ktoré udržiavajú MS SQL v režime obnovy.

7.1 Kontrola poškodenia databázy

Starso štandardným prístupom na overenie integrity databázy. Najprv vyskúšajte priamo príkaz DBCC CHECKDB:

  1. Vykonať: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Kontrola výsledkov z hľadiska chýb konzistencie
  3. Zdokumentujte všetky správy o korupcii

Ak DBCC CHECKDB zlyhá s chybami typu „Databáza sa obnovuje. Čaká sa na dokončenie obnovy“ to znamená, že databáza je aktívne v režime obnovy a blokuje prístup. V takom prípade prejdite na časť 7.3 a použite NÚDZOVÝ režim.

7.2 Možnosti opravy pre prístupné databázy

Ak sa príkaz DBCC CHECKDB úspešne spustil a zistilo sa poškodenie, použite tieto kroky na opravu:

  1. Nastavenie databázy do režimu pre jedného používateľa: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Pokus o bezpečnú opravu: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. Ak sa nepodarí, použite: DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Späť k viacerým používateľom: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Používanie núdzového režimu, keď je databáza nedostupná

Núdzový režim je potrebný iba vtedy, keď je databáza zaseknutá v režime obnovy a odmieta bežné pokusy o príkaz DBCC CHECKDB. Označí databázu ako READ_ONLY a zakáže protokolovanie. Tento prístup použite, keď štandardný prístup zlyhá:

  1. Nastavenie núdzového režimu: ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Nastaviť pre jedného používateľa: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Spustiť kontrolu integrity: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Ak sa zistí poškodenie, najprv spustite bezpečnú opravu: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. Ak zlyhá, použite opravu so stratou údajov:  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Nastavenie pre viacerých používateľov: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Nastaviť online: ALTER DATABASE [YourDatabaseName] SET ONLINE;

dôležité: NÚDZOVÝ režim obchádza bežné procesy obnovy a mal by sa používať iba vtedy, keď je databáza úplne neprístupná. Pred prechodom do NÚDZOVÉHO režimu vždy vyskúšajte štandardný prístup DBCC CHECKDB.

Nájdete komplexnejší návod, ako používať DBCC CHECKDB.

8. Oprava č. 5: Obnovenie zo zálohy

Keď iné metódy zlyhajú alebo je integrita údajov otázna, obnovenie z čistej zálohy je často tou správnou voľbou.ost spoľahlivé riešenie na vyriešenie SQL Server problémy s obnovou databázy.

8.1 Kedy zvoliť obnovenie zo zálohy

Zvážte obnovenie zálohy, keď:

  • Obnova prebieha už viac ako 24 hodín bez pokroku
  • Chyby poškodenia bránia úspešnej oprave
  • Máte k dispozícii nedávne, overené zálohy
  • Strata údajov od poslednej zálohy je prijateľná

8.2 Postup obnovy krok za krokom

  1. Otvorený SQL Server Štúdio manažmentu
  2. Kliknite pravým tlačidlom myši Databáza -> Obnoviť databázu
    Starúloha obnovenia databázy v SQL Server Štúdio manažmentu
  3. vybrať zariadení v časti Zdroj
  4. kliknite pridať a prejdite do záložného súboru
  5. Vyberte zálohu a kliknite na OK
  6. Vybrať Prepísať existujúcu databázu V prípade potreby
  7. kliknite OK na start reštaurovanie

Obnoviť databázu v SQL Server.

8.3 Obnova v určitom časovom bode

Pre minimálnu stratu údajov použite zálohy protokolov transakcií na obnovenie do konkrétneho časového bodu. Uistite sa, že máte neprerušený reťazec záloh protokolov od úplnej zálohy až po požadovaný bod obnovenia.

8.4 Odkaz

Viac informácií sa môžete dozvedieť od našich komplexný návod, ako zálohovať a obnovovať SQL Server databázy.

9. Oprava č. 6: Zakážte vlastnosť AUTOMATICKÉHO ZATVÁRANIA

Vlastnosť databázy AUTO CLOSE môže spôsobiť opakované cykly obnovy, čo môže vyzerať, akoby vaša SQL Server Databáza db je neustále v režime obnovy. Zakázaním tejto vlastnosti sa problém vyrieši.

9.1 Pochopenie problémov s automatickým zatváraním

Keď je zapnuté AUTOMATICKÉ ZATVÁRANIE, SQL Server zatvorí databázu po ukončení posledného pripojenia a potom ju znova otvorí pre nové pripojenia. Toto opakované otvorenie zakaždým spustí procesy obnovy.

9.2 Zakázanie automatického zatvorenia

  1. Otvorený SQL Server Štúdio manažmentu
  2. Kliknite pravým tlačidlom myši na vašu databázu -> vlastnosti
  3. vybrať možnosti z ľavého panela
  4. Sada Automatické zatvorenie na Falošný
  5. kliknite OK použiť zmeny

Zakázať vlastnosť automatického zatvárania pre SQL Server databáza v SQL Server Štúdio manažmentu.

Prípadne použite T-SQL:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Oprava č. 7: Restart SQL Server Služba sa

Servisné rez.tarMôže vyriešiť zaseknuté procesy obnovy, ale mal by sa používať opatrne, pretože to spôsobítarobnovenie od začiatku. Táto oprava funguje, keď SQL Server v režime zotavenia sa zdá byť úplne zamrznutý.

10.1 Pri servisnom obnovovanítarPomáha

Restarslužbu, keď:

  • Pokrok v obnove sa zastavil na niekoľko hodín
  • Záznamy chýb nezobrazujú žiadne nové položky
  • Ostatné databázy fungujú normálne
  • Môžete si dovoliť predĺžené prestoje

10.2 Bezpečné obnovenietart Postupy

  1. Otvorený SQL Server Správca konfigurácie Externý odkaz
  2. prejdite na SQL Server Služby
  3. Nájsť SQL Server inštanciu, ktorú chcete restart, potom kliknite pravým tlačidlom myši SQL Server (Názov inštancie)
  4. vybrať Restart
  5. Počkajte na úplné obnovenie službytart
  6. Monitorovanie protokolov chýb pre priebeh obnovy

Restart SQL Server služba v SQL Server ConfigurationManager.

Poznámka: Restarspôsobí začiatok obnovy od start, čo potenciálne predĺži celkový čas zotavenia.

11. Oprava č. 8: Oprava databázy odpojením a opätovným pripojením

V extrémnych prípadoch odpojte a znova pripojte databázu:

  1. Odpojiť databázu: EXEC sp_detach_db 'YourDatabaseName';
  2. Priložte iba súbor MDF: CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Toto znovu vytvorí nový protokol transakcií

Upozornenie: Táto metóda môže viesť k strate údajov. Používajte ju iba vtedy, keď sú všetky ostatné možnosti vyčerpané.

12. Oprava č. 9: Riešenie problémov so zrkadlením databázy

Konfigurácie zrkadlenia databázy môžu spôsobiť jedinečné problémy s obnovou. Táto oprava rieši problémy špecifické pre zrkadlenie, ktoré udržiavajú databázy v stave obnovenia.

12.1 Problémy s obnovou špecifické pre zrkadlenie

Zrkadlové databázy sa môžu zaseknúť v procese obnovy kvôli problémom s pripojením partnera alebo problémom s koncovými bodmi. Stav obnovy môžu zobrazovať hlavné aj zrkadlové databázy.

12.2 Riešenia pre obnovu zrkadlením

Restart koncový bod zrkadlenia:

  1. Nájsť názov koncového bodu: SELECT * FROM sys.endpoints WHERE type = 4;
  2. Zastavte koncový bod: ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Starkoncový bod t: ALTER ENDPOINT [EndpointName] STATE = STARTED;

Ak koncový bod restarAk t zlyhá, prerušte zrkadlové partnerstvo:

  1. Vykonať: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. spustiť: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Znova nakonfigurujte zrkadlenie po prepojení databázy s internetom

13. Oprava č. 10: Používajte profesionálne nástroje na obnovu

Nástroje na obnovu od tretích strán poskytujú po zabudovaní pokročilé možnosti opravy SQL Server metódy zlyhávajú. Tieto nástroje často dokážu obnoviť dáta z vážne poškodených databáz.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery má vysokú mieru zotavenia spolu s komplexnými možnosťami.

Nižšie sú uvedené kroky na jeho použitie:

  1. Zastavte SQL Server Service.
  2. V režime obnovy vytvorte kópiu súborov databázy vrátane primárneho súboru MDF aj sekundárnych súborov NDF.
  3. Start SQL Server Service.
  4. Start DataNumen SQL Recovery.
  5. Ako zdroj databázy, ktorú chcete obnoviť, vyberte kópiu namiesto pôvodného súboru.
  6. Kliknite na „Star„Obnova“ a postupujte podľa pokynov na obnovenie databázy.
  7. Po dokončení procesu obnovy sa zobrazí nová databáza obnovy. SQL Server ktorý obsahuje všetky obnovené údaje.

Použitie DataNumen SQL Recovery opraviť jeden poškodený SQL Server MDF súbor.

13.2 Kedy zvážiť nástroje tretích strán

Používajte profesionálne nástroje, keď:

  • Vstavané možnosti opravy zlyhajú alebo hlásia rozsiahle poškodenie
  • Nie sú k dispozícii žiadne nedávne zálohy
  • Kritické údaje musia byť obnovené napriek poškodeniu
  • Štandardné metódy obnovy vedú k významnej strate údajov

14. Najlepšie postupy prevencie

14.1 Úlohy pravidelnej údržby

Implementujte tieto postupy, aby ste predišli SQL Server problémy s obnovou databázy:

  • Naplánujte si pravidelné úplné zálohy a zálohy protokolov: Udržiavať kompletné zálohovacie reťazce
  • Monitorovanie počtu VLF: Pre optimálny výkon udržujte VLF pod 100
  • Veľkosť súboru denníka plánu: Predbežné nastavenie veľkosti guľatiny, aby sa predišlo nadmernému samorastu
  • Spustite bežný príkaz DBCC CHECKDB: Včasné odhalenie korupcie

14.2 Monitorovanie a varovanie

Nastavte proaktívne monitorovanie:

  1. Konfigurácia upozornení na zmeny stavu databázy
  2. Monitorovanie miesta na disku na jednotkách so súbormi denníka
  3. Sledovanie dlhodobo prebiehajúcich transakcií
  4. Upozornenie na nadmerný počet VLF

14.3 Hardvér a infraštruktúra

Zabezpečte spoľahlivú infraštruktúru:

15. Riešenie problémov v zložitých scenároch

15.1 Problémy s viacerými databázami

Keď sa viacero databáz zasekne v procese obnovy:

  1. Skontrolujte problémy v celom systéme (miesto na disku, pamäť)
  2. Uprednostnite kritické databázy pre obnovu
  3. Zvážte hardvérové ​​problémy ovplyvňujúce celú inštanciu
  4. Skontrolujte nedávne zmeny alebo aktualizácie systému

15.2 Úvahy o veľkých databázach

Pre databázy nad 1 TB:

  • Očakávajte dlhší čas na zotavenie (potenciálne dni)
  • Zabezpečte dostatočné pridelenie pamäte
  • Zvážte nastavenia paralelného spracovania
  • Monitorovanie priestoru dočasnej databázy počas obnovy

15.3 Kedy kontaktovať podporu spoločnosti Microsoft

Kontaktujte podporu spoločnosti Microsoft pre:

  • Kritické produkčné systémy bez možností zálohovania
  • podozrenie SQL Server softvérové ​​chyby
  • Podnikové prostredia vyžadujúce garantovanú obnovu
  • Komplexné scenáre Always On alebo klastrovania

16. Časté otázky

Otázka: Ako dlho by malo SQL Server Ako zvyčajne trvá obnova databázy?

A: Čas obnovy závisí od veľkosti databázy, objemu transakcií a výkonu hardvéru. Malé databázy sa zvyčajne obnovia v priebehu niekoľkých minút, zatiaľ čo veľké databázy s rozsiahlymi transakčnými protokolmi môžu trvať niekoľko hodín. Odhady času zobrazené v protokoloch chýb sú často nepresné, preto sa radšej zamerajte na percentá pokroku.

Otázka: Môžem prestať? SQL Server počas obnovy bez straty údajov?

A: Zastavenie SQL Server počas zotavovania je vo všeobecnosti bezpečné, ale bude sa opakovaťtarproces obnovy od začiatku, keď je služba restarts. Toto predlžuje celkový čas obnovy, ale nespôsobuje ďalšiu stratu údajov nad rámec tej, ku ktorej došlo počas pôvodného incidentu.

Otázka: Aký je rozdiel medzi stavmi „V procese zotavovania“ a „Čaká sa na zotavenie“?

A: „V procese zotavovania“ znamená SQL Server aktívne vykonáva operácie obnovy. „Čaká sa na obnovu“ znamená, že proces obnovy zlyhal.tart, zvyčajne kvôli chýbajúcim súborom, nedostatočným oprávneniam alebo problémom s miestom na disku, ktoré je potrebné vyriešiť pred pokračovaním obnovy.

Podrobnejšie informácie o „Čakajúcej na vymáhanie“ nájdete v našej komplexný sprievodca.

Otázka: Stratím dáta, ak použijem REPAIR_ALLOW_DATA_LOSS?

A: Áno, REPAIR_ALLOW_DATA_LOSS môže odstrániť poškodené dáta, aby sa obnovila konzistencia databázy. Vždy najskôr vyskúšajte REPAIR_REBUILD, ktorý opraví štrukturálne problémy bez straty dát. REPAIR_ALLOW_DATA_LOSS používajte iba ako poslednú možnosť, keď nemáte žiadne iné možnosti obnovy.

Otázka: Môžem pristupovať k iným databázam, kým sa jedna databáza obnovuje?

A: Áno, iné databázy na tej istej SQL Server inštancie zostanú počas obnovy prístupné. Nedostupná je iba databáza, ktorá sa práve obnovuje. Operácie obnovy však môžu ovplyvniť celkový výkon servera.

Otázka: Čo spôsobuje, že sa databáza zasekne v režime obnovy?

A: Medzi bežné príčiny patria neúplné operácie obnovy pomocou NORECOVERY, nadmerné množstvo virtuálnych protokolových súborov (VLF), veľké nepotvrdené transakcie, poškodenie databázy, nedostatok miesta na disku a problémy s hardvérom. Databázy s povolenou funkciou AUTOMATICKÉHO ZATVÁRANIA sa môžu tiež zdať neustále prepínať do režimu obnovy.

Otázka: Ako zistím, či proces zotavovania napreduje alebo sa zasekol?

A: Monitor SQL Server denníky chýb pre správy o priebehu obnovy zobrazujúce percentá dokončenia. Na kontrolu aktívnych databáz použite súbor sys.dm_exec_requests.TARPríkazy TUP. Ak sa percentá časom zvyšujú, proces obnovy pokračuje. Žiadne nové záznamy v protokole po dobu niekoľkých hodín môžu naznačovať zaseknutý proces.

Otázka: Je bezpečné restart SQL Server služba počas zotavovania?

A: RestarJe to bezpečné, ale malo by sa používať opatrne. Bude to...tarzotavenie od začiatku, čo môže potenciálne zdvojnásobiť čas zotavenia. Iba restarak sa zdá, že proces obnovy úplne zamrznutý a neprebieha niekoľko hodín, alebo ak máte podozrenie, že je skutočne zaseknutý.

Otázka: Aký je rozdiel medzi AUTOMATICKÝM ZATVÁRANÍM a režimom obnovy?

A: Funkcia AUTOMATICKÉHO ZATVÁRANIA automaticky zatvorí databázy, keď neexistujú žiadne pripojenia, a potom ich znova otvorí pre nové pripojenia. Toto opakované otváranie zakaždým spustí krátke procesy obnovy, vďaka čomu sa zdá, že databáza sa neustále obnovuje. Zakázanie funkcie AUTOMATICKÉHO ZATVÁRANIA tento problém vyrieši.

Otázka: Môžu zálohy protokolov transakcií pomôcť počas obnovy?

A: Zálohy protokolov transakcií môžu uvoľniť miesto v protokoloch, ak je jednotka protokolov plná, čo môže umožniť pokračovanie obnovy. Nemôžete však zálohovať protokol databázy, ktorá je momentálne v režime obnovy. Zálohy protokolov sú užitočnejšie na prevenciu a...ost-údržba za účelom zotavenia.

Otázka: Kedy by som mal kontaktovať podporu spoločnosti Microsoft?

A: V prípade kritických produkčných systémov, v ktorých zlyhajú vstavané metódy obnovy, kontaktujte podporu spoločnosti Microsoft, ak máte podozrenie SQL Server softvérové ​​chyby, pre komplexné scenáre Always On alebo klastrovania, alebo keď podnikové prostredia vyžadujú zaručenú obnovu dát s minimálnym prestojom.

Otázka: Ako môžem zabrániť zaseknutiu databáz počas obnovy?

A: Implementujte pravidelné úplné zálohy a zálohy protokolov, monitorujte a spravujte počty VLF, zabezpečte dostatočný priestor na disku, používajte správne postupy vypínania, udržiavajte spoľahlivosť hardvéru, vypnite funkciu AUTO CLOSE v produkčných databázach a spúšťajte pravidelné operácie DBCC CHECKDB na včasné zistenie poškodenia.

Otázka: Čo sú VLF a prečo ovplyvňujú zotavenie?

A: Virtuálne súbory protokolov (VLF) sú interné segmenty v rámci súborov protokolov transakcií. Príliš veľa súborov VLF (viac ako 1 000) výrazne spomaľuje obnovu, pretože SQL Server musí spracovať každý jednotlivo. Správne nastavenia veľkosti a rastu súborov denníka pomáhajú udržiavať optimálny počet VLF.

Otázka: Môžem obnoviť zo zálohy, keď sa databáza obnovuje?

A: Obnoviť databázu, ktorá je momentálne v režime obnovy, nie je možné. Musíte buď počkať na dokončenie obnovy, alebo zastaviť SQL Server službu alebo obnoviť databázu s iným názvom. V naliehavých situáciách zvážte obnovenie databázy s novým názvom a jej premenovanie po vyriešení problémov s obnovou.

17. Záver a ďalšie kroky

17.1 Zhrnutie kľúčových riešení

Keď si SQL Server databáza sa obnovuje, stars týmito prístupmi v tomto poradí:

  1. Skontrolujte protokoly chýb a sledujte priebeh
  2. Ak je pokrok stabilný, počkajte na prirodzené dokončenie
  3. Pre neúplné obnovenie použite možnosť OBNOVIŤ S OBNOVENÍM
  4. Riešenie problémov so záznamom transakcií
  5. Spustite DBCC CHECKDB alebo profesionálne nástroje na odstránenie poškodenia
  6. V závažných prípadoch zvážte obnovenie zo zálohy

Most SQL Server Problémy s databázou v situáciách obnovy sa vyriešia v priebehu niekoľkých hodín pomocou týchto overených metód. V zložitých scenároch neváhajte použiť pokročilé techniky alebo profesionálne nástroje.

17.2 Ďalšie zdroje

Pre ďalšiu pomoc:

Pravidelná údržba a monitorovanie zabraňujú most problémy s obnovou. Implementujte preventívne postupy uvedené v tejto príručke, aby ste minimalizovali budúci výskyt problémov s MS SQL pri obnove.


O autorovi

Yuan Sheng je seniorný správca databáz (DBA) s viac ako 10-ročnými skúsenosťami v SQL Server prostredia a správa podnikových databáz. Úspešne vyriešil stovky scenárov obnovy databáz vo finančných službách, zdravotníctve a výrobných organizáciách.

Yuan sa špecializuje na SQL Server obnova databáz, riešenia vysokej dostupnosti a optimalizácia výkonu. Jeho rozsiahle praktické skúsenosti zahŕňajú správu databáz s veľkosťou viac terabajtov, implementáciu skupín dostupnosti Always On a vývoj automatizovaných stratégií zálohovania a obnovy pre kritické obchodné systémy.

Vďaka svojim technickým znalostiam a praktickému prístupu sa Yuan zameriava na vytváranie komplexných príručiek, ktoré pomáhajú správcom databáz a IT profesionálom riešiť zložité SQL Server efektívne zvláda výzvy. Udržiava si prehľad o najnovších SQL Server vydania a vyvíjajúce sa databázové technológie spoločnosti Microsoft, pričom pravidelne testuje scenáre obnovy, aby sa zabezpečilo, že jeho odporúčania odrážajú osvedčené postupy z reálneho sveta.

Máte otázky o SQL Server obnovenie alebo potrebujete ďalšie pokyny na riešenie problémov s databázou? Yuan víta spätnú väzbu a návrhy na zlepšenie týchto technických zdrojov.

Zdieľať teraz: