Podijeli sada:
Pregled sadržaja sakriti

SQL Server baza podataka u načinu oporavka? Nabavite 10 provjerenih rješenja odmah! Rješenja korak po korak, od jednostavnog popravka do naprednog popravka.

1. Razumijevanje SQL Server Način oporavka baze podataka

1.1 Što je način oporavka u SQL Server

Kada SQL Server baza podataka prikazuje status "U oporavku", to znači SQL Server izvodi oporavak od pada sustava ili oporavak transakcija kako bi se osigurala konzistentnost baze podataka. Ovaj automatski proces održava integritet podataka ponovnim izvođenjem potvrđenih transakcija i vraćanjem nepotvrđenih.

In SQL Server, baza podataka sadrži oznaku "U oporavku", što znači da je trenutno u načinu oporavka.

Način oporavka obično se javlja nakon neočekivanih gašenja, nestanka struje ili tijekom vraćanja baze podataka. Iako je ovo normalan zaštitni mehanizam, problemi nastaju kada SQL Server Oporavak baze podataka traje neuobičajeno dugo ili izgleda zaglavljeno.

1.2 Tri faze oporavka baze podataka

SQL Server oporavak se odvija u tri različite faze:

1.2.1 Faza analize

SQL Server skenira dnevnik transakcija od posljednje kontrolne točke kako bi identificirao prljave stranice i aktivne transakcije. Izrađuje tablicu prljavih stranica (DPT) i tablicu aktivnih transakcija (ATT) za praćenje onoga što treba oporaviti.

1.2.2 Faza ponavljanja (Premotavanje naprijed)

Sustav ponovno reproducira sve potvrđene transakcije koje nisu zapisane na disk prije pada sustava. To osigurava da se sve potvrđene promjene ispravno primjenjuju na datoteke baze podataka.

1.2.3 Faza poništavanja (vraćanje)

Sve nepotvrđene transakcije se poništavaju kako bi se održala konzistentnost baze podataka. Nakon dovršetka, baza podataka postaje dostupna za normalan rad.

1.3 Uobičajeni simptomi i poruke o pogreškama

Kad vaše SQL Server Ako se baza podataka oporavlja, obično ćete vidjeti:

  • Naziv baze podataka koji prikazuje "(U oporavku)" u SQL Server Studio za upravljanje
  • Neuspješna prijava s porukama „baza podataka se oporavlja“
  • Unosi u zapisnik pogrešaka koji prikazuju postotke napretka oporavka
  • Stanje baze podataka koje prikazuje "OPORAVAK" prilikom upita

2. Korijenni uzroci SQL Server Problemi s načinom oporavka

2.1 Nepotpune operacije vraćanja

Najčešći uzrok javlja se prilikom vraćanja iz više sigurnosnih kopija pomoću NORECOVERY opcija bez finala S OPORAVKOM naredba. Zbog toga baza podataka čeka dodatne operacije vraćanja.

2.2 Problemi sa zapisnikom transakcija

Velike datoteke dnevnika transakcija ili prekomjeran broj virtualnih datoteka dnevnika (VLF-ova) značajno usporavaju oporavak. Kada se MS SQL oporavlja s tisućama VLF-ova, proces može trajati satima ili danima.

2.3 Problemi vezani uz sustav

Kvarovi hardvera, nestanci struje ili nedovoljan prostor na disku mogu prekinuti normalan rad baze podataka, što može uzrokovati dugotrajne procese oporavka tijekom ponovnog pokretanja.

2.4 Oštećenje baze podataka

Oštećene datoteke baze podataka sprječavaju uspješan završetak oporavka, ostavljajući bazu podataka zauvijek zaglavljenom u načinu oporavka.

3. Dijagnostički koraci prije popravka

3.1 Provjera SQL Server Zapisnici o pogreškama

Prije nego što pokušate popraviti, provjerite SQL Server zapisnik pogrešaka za poruke o napretku oporavka. Potražite unose koji prikazuju postotke dovršenosti i procijenjeno preostalo vrijeme.

  1. Otvoren SQL Server Studio za upravljanje
  2. Dođite na Upravljanje -> SQL Server Drva
  3. Pregledajte nedavne unose za naziv vaše baze podataka
  4. Potražite pokazatelje faze oporavka (faza 1, 2 ili 3 od 3)

Provjeravanje SQL Server zapisnici pogrešaka za poruke o napretku oporavka.

3.2 Praćenje napretka oporavka

Koristite dinamičke prikaze upravljanja za praćenje aktivnih operacija oporavka:

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

3.3 Provjera stanja baze podataka

Provjerite trenutno stanje baze podataka kako biste razumjeli status oporavka:

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

4. Popravak #1: Pričekajte završetak prirodnog oporavka

Ponekad je strpljenje najbolje rješenje kada tvoja SQL Server Baza podataka se oporavlja. Ovaj pristup funkcionira kada oporavak napreduje normalno, ali traje dulje od očekivanog.

4.1 Kada biti strpljiv

Dopustite prirodno dovršavanje kada:

  • Zapisnici pogrešaka pokazuju stalan napredak sa smanjenjem procjena vremena
  • Nisu prijavljene pogreške u vezi s korupcijom
  • Baza podataka je nedavno imala velike transakcije
  • Broj VLF-ova je prihvatljiv (ispod 1,000)

4.2 Praćenje napretka oporavka

Procjene vremena oporavka u zapisnicima pogrešaka često su netočne. Usredotočite se na postotke napretka, a ne na preostalo vrijeme. Velikim bazama podataka s opsežnom poviješću transakcija može biti potrebno nekoliko sati za potpuni oporavak.

5. Ispravak br. 2: Koristite RESTORE DATABASE WITH RECOVERY

Ovaj popravak rješava nepotpune operacije vraćanja gdje je izostavljen posljednji korak oporavka. Koristite ovo kada vaš SQL Server db u oporavku rezultat je procesa vraćanja pomoću NORECOVERY.

5.1 Razumijevanje naredbe

The OBNOVI BAZU PODATAKA S OPORAVKOM Naredba dovršava proces oporavka poništavanjem nepotvrđenih transakcija i vraćanjem baze podataka u online stanje.

5.2 Koraci provedbe

  1. Otvoren SQL Server Studio za upravljanje
  2. Povežite se sa svojim SQL Server primjer
  3. Kliknite Novo > Upit s trenutnom vezom
    Izradi novi upit u SQL Server Studio za upravljanje.
  4. Izvršiti: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Pričekajte potvrdu završetka

Upozorenje: Koristite ovu naredbu samo ako ste sigurni da nema dodatnih operacija vraćanja u prethodno stanje.

6. Ispravak #3: Rješavanje problema sa zapisnikom transakcija

Problemi sa zapisnicima transakcija vodeći su uzrok produženog vremena oporavka. Ovo rješenje rješava probleme s punim zapisnicima, prekomjernim VLF-ovima i prostorom za zapisnike koji zadržavaju SQL Server u oporavku.

6.1 Izrada sigurnosnih kopija zapisnika transakcija

Oslobodite prostor u zapisnicima izradom sigurnosnih kopija zapisnika transakcija:

  1. Otvoren SQL Server Studio za upravljanje
  2. Desnim klikom miša kliknite na bazu podataka -> Zadaci -> Natrag Gore
    Pokrenite zadatak sigurnosne kopije za SQL Server baza podataka.
  3. Promijeniti Vrsta sigurnosne kopije do Dnevnik transakcija
    Promijeni vrstu sigurnosne kopije u dnevnik transakcija
  4. Odredite odredište sigurnosne kopije
  5. Kliknite OK izvršiti

6.2 Upravljanje virtualnim datotekama zapisnika (VLF-ovima)

Provjerite broj VLF-ova pomoću:

DBCC LOGINFO('YourDatabaseName');

Ako imate preko 1,000 VLF-ova, smanjite ih za:

  1. Izrada sigurnosne kopije dnevnika transakcija
  2. Smanjivanje datoteke zapisnika: DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Povećanje datoteke dnevnika u velikim dijelovima (1 GB ili više)

6.3 Sigurno smanjivanje datoteka zapisnika

Smanjujte zapisnike samo tijekom razdoblja održavanja kada se ne izvode aktivne transakcije. Uvijek napravite sigurnosnu kopiju baze podataka prije operacija smanjivanja.

7. Ispravak br. 4: Pokrenite DBCC CHECKDB i popravite

Oštećenje baze podataka može spriječiti uspješan oporavak. DBCC CHECKDB je ugrađena naredba koja može identificirati i popraviti manje probleme s oštećenjem koji drže MS SQL u načinu oporavka.

7.1 Provjera oštećenja baze podataka

Započnite sa standardnim pristupom za provjeru integriteta baze podataka. Prvo pokušajte izravno s DBCC CHECKDB:

  1. Izvršiti: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Pregledajte rezultate za pogreške u konzistentnosti
  3. Dokumentirajte sve poruke o korupciji

Ako DBCC CHECKDB ne uspije S greškama poput „Baza podataka se oporavlja. Čekanje završetka oporavka“ to znači da je baza podataka aktivno u načinu oporavka i blokira pristup. U tom slučaju prijeđite na odjeljak 7.3 da biste koristili način rada za HITNE SLUČAJEVE.

7.2 Mogućnosti popravka za dostupne baze podataka

Ako je DBCC CHECKDB uspješno pokrenut i pronađena je koračna pogreška, upotrijebite ove korake za popravak:

  1. Postavite bazu podataka na jednokorisnički način rada: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Pokušajte siguran popravak: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. Ako ne uspijete, koristite: DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Povratak na višekorisnički način rada: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Korištenje hitnog načina rada kada baza podataka nije dostupna

Način rada u hitnim slučajevima potreban je samo kada je baza podataka zaglavljena u oporavku i odbija normalne DBCC CHECKDB pokušaje. Označava bazu podataka kao READ_ONLY i onemogućuje zapisivanje. Koristite ovaj pristup kada standardni pristup ne uspije:

  1. Postavite način rada u hitnim slučajevima: ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Postavi za jednog korisnika: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Pokreni provjeru integriteta: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Ako se pronađe oštećenje, prvo pokrenite siguran popravak: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. Ako ne uspije, koristite popravak s gubitkom podataka:  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Postavi višekorisnički način: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Postavi online: ALTER DATABASE [YourDatabaseName] SET ONLINE;

Važno: Način rada EMERGENCY zaobilazi normalne procese oporavka i treba ga koristiti samo kada je baza podataka potpuno nedostupna. Uvijek prvo isprobajte standardni pristup DBCC CHECKDB prije prelaska na način rada EMERGENCY.

Možete pronaći sveobuhvatniji vodič o korištenju DBCC CHECKDB-a.

8. Ispravak #5: Vraćanje iz sigurnosne kopije

Kada druge metode ne uspiju ili je integritet podataka upitan, vraćanje iz čiste sigurnosne kopije često je najpouzdanije rješenje za rješavanje problema. SQL Server Problemi s oporavkom baze podataka.

8.1 Kada odabrati vraćanje sigurnosne kopije

Razmotrite vraćanje sigurnosne kopije kada:

  • Oporavak traje već više od 24 sata bez napretka
  • Pogreške u oštećenju sprječavaju uspješan popravak
  • Imate dostupne nedavne, provjerene sigurnosne kopije
  • Gubitak podataka od posljednje sigurnosne kopije je prihvatljiv

8.2 Postupak restauracije korak po korak

  1. Otvoren SQL Server Studio za upravljanje
  2. Desnom tipkom miša Baze podataka -> Vrati bazu podataka
    Pokreni zadatak vraćanja baze podataka u SQL Server Studio za upravljanje
  3. odabrati Uređaj pod Izvor
  4. Kliknite dodati i pregledajte svoju sigurnosnu kopiju datoteke
  5. Odaberite sigurnosnu kopiju i kliknite OK
  6. Odaberite Prepiši postojeću bazu podataka Ako je potrebno
  7. Kliknite OK za početak obnove

Vrati bazu podataka u SQL Server.

8.3 Oporavak u određenom trenutku

Za minimalan gubitak podataka, koristite sigurnosne kopije dnevnika transakcija za vraćanje na određenu vremensku točku. Osigurajte neprekinuti lanac sigurnosnih kopija dnevnika od potpune sigurnosne kopije do željene točke oporavka.

8.4 Referenca

Više informacija možete saznati od naših sveobuhvatan vodič o tome kako napraviti sigurnosnu kopiju i vratiti podatke SQL Server baze podataka.

9. Ispravak #6: Onemogućite svojstvo AUTOMATSKOG ZATVARANJA

Svojstvo baze podataka AUTO CLOSE može uzrokovati ponovljene cikluse oporavka, što stvara dojam da je vaša SQL Server baza podataka je stalno u oporavku. Onemogućavanje ovog svojstva rješava problem.

9.1 Razumijevanje problema s AUTOMATSKIM ZATVARANJEM

Kada je omogućeno AUTOMATSKO ZATVARANJE, SQL Server zatvara bazu podataka nakon završetka posljednje veze, a zatim je ponovno otvara za nove veze. Ovo ponovljeno otvaranje svaki put pokreće procese oporavka.

9.2 Onemogućavanje AUTOMATSKOG ZATVARANJA

  1. Otvoren SQL Server Studio za upravljanje
  2. Desnim klikom miša kliknite na bazu podataka -> Nekretnine
  3. odabrati Opcije s lijeve ploče
  4. Postaviti Automatsko zatvaranje do Lažan
  5. Kliknite OK primijeniti promjene

Onemogući svojstvo automatskog zatvaranja za SQL Server baza podataka u SQL Server Studio za upravljanje.

Alternativno, koristite T-SQL:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Popravak #7: Ponovno pokretanje SQL Server Servis

Ponovno pokretanje servisa može riješiti zaglavljene procese oporavka, ali ga treba koristiti oprezno jer će ponovno pokrenuti oporavak od početka. Ovo rješenje djeluje kada SQL Server u oporavku izgleda potpuno zamrznuto.

10.1 Kada ponovno pokretanje usluge pomaže

Ponovno pokrenite uslugu kada:

  • Napredak u oporavku zastao je nekoliko sati
  • Zapisnici pogrešaka ne prikazuju nove unose
  • Ostale baze podataka funkcioniraju normalno
  • Možete si priuštiti produženo vrijeme zastoja

10.2 Postupci sigurnog ponovnog pokretanja

  1. Otvoren SQL Server Upravitelj konfiguracija vanjska poveznica
  2. Dođite na SQL Server Usluge
  3. Traži SQL Server instancu koju želite ponovno pokrenuti, a zatim kliknite desnom tipkom miša SQL Server (Naziv instance)
  4. odabrati Restart
  5. Pričekajte da se usluga potpuno ponovno pokrene
  6. Pratite zapisnike grešaka za napredak oporavka

Ponovo pokrenite SQL Server usluga u SQL Server Upravitelj konfiguracije.

Bilješka: Ponovno pokretanje će uzrokovati da oporavak započne ispočetka, što potencijalno produljuje ukupno vrijeme oporavka.

11. Ispravak #8: Popravak baze podataka odvajanjem i ponovnim spajanjem

U ekstremnim slučajevima, odspojite i ponovno spojite bazu podataka:

  1. Odvoji bazu podataka: EXEC sp_detach_db 'YourDatabaseName';
  2. Priložite samo MDF datoteku: CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Ovo ponovno gradi novi dnevnik transakcija

Upozorenje: Ova metoda može rezultirati gubitkom podataka. Koristite je samo kada su sve ostale mogućnosti iscrpljene.

12. Ispravak #9: Rješavanje problema zrcaljenja baze podataka

Konfiguracije zrcaljenja baze podataka mogu uzrokovati jedinstvene probleme s oporavkom. Ovo rješenje rješava probleme specifične za zrcaljenje koji drže baze podataka u stanju oporavka.

12.1 Problemi s oporavkom specifični za zrcaljenje

Zrcalne baze podataka mogu se zaglaviti u oporavku zbog problema s partnerskom vezom ili problema s krajnjim točkama. I glavne i zrcalne baze podataka mogu prikazivati ​​status oporavka.

12.2 Rješenja za oporavak zrcaljenja

Ponovno pokrenite krajnju točku zrcaljenja:

  1. Pronađi naziv krajnje točke: SELECT * FROM sys.endpoints WHERE type = 4;
  2. Zaustavna krajnja točka: ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Početna krajnja točka: ALTER ENDPOINT [EndpointName] STATE = STARTED;

Ako ponovno pokretanje krajnje točke ne uspije, prekinite partnerstvo zrcaljenja:

  1. Izvršiti: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Trčanje: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Ponovno konfigurirajte zrcaljenje nakon što je baza podataka online

13. Ispravak #10: Koristite profesionalne alate za oporavak

Alati za oporavak trećih strana pružaju napredne mogućnosti popravka kada su ugrađeni SQL Server metode ne uspijevaju. Ovi alati često mogu oporaviti podatke iz ozbiljno oštećenih baza podataka.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery ima visoku stopu oporavka, zajedno sa sveobuhvatnim opcijama.

U nastavku su navedeni koraci za korištenje:

  1. Zaustavite SQL Server Usluga.
  2. Napravite kopiju datoteka baze podataka u načinu oporavka, uključujući i primarnu MDF datoteku i sekundarne NDF datoteke.
  3. Pokrenite SQL Server Usluga.
  4. Start DataNumen SQL Recovery.
  5. Kao izvor baze podataka koju treba oporaviti odaberite kopiju, umjesto originalne datoteke.
  6. Kliknite "Pokreni oporavak" i slijedite upute za oporavak baze podataka.
  7. Nakon procesa oporavka, nova baza podataka za oporavak će se pojaviti u SQL Server koji sadrži sve oporavljene podatke.

Koristiti DataNumen SQL Recovery popraviti jedan oštećen SQL Server MDF datoteka.

13.2 Kada razmotriti alate trećih strana

Koristite profesionalne alate kada:

  • Ugrađene opcije popravka ne uspijevaju ili prijavljuju opsežnu korupciju
  • Nema dostupnih nedavnih sigurnosnih kopija
  • Kritični podaci moraju se oporaviti unatoč korupciji
  • Standardne metode oporavka rezultiraju značajnim gubitkom podataka

14. Najbolje prakse prevencije

14.1 Zadaci redovnog održavanja

Primijenite ove prakse kako biste spriječili SQL Server Problemi s oporavkom baze podataka:

  • Zakažite redovite potpune sigurnosne kopije i sigurnosne kopije dnevnika: Održavajte potpune lance sigurnosnih kopija
  • Praćenje VLF broja: Za optimalne performanse držite VLF-ove ispod 100
  • Veličina datoteke dnevnika plana: Prethodno odredite veličinu trupaca kako biste izbjegli prekomjerni automatski rast
  • Pokreni redovni DBCC CHECKDB: Rano otkrivanje korupcije

14.2 Praćenje i uzbunjivanje

Postavite proaktivni nadzor:

  1. Konfigurirajte upozorenja za promjene stanja baze podataka
  2. Praćenje prostora na disku na pogonima datoteka zapisnika
  3. Praćenje dugotrajnih transakcija
  4. Upozorenje na prekomjerni broj VLF-ova

14.3 Hardver i infrastruktura

Osigurajte pouzdanu infrastrukturu:

15. Rješavanje problema u složenim scenarijima

15.1 Višestruki problemi s bazom podataka

Kada se više baza podataka zaglavi u oporavku:

  1. Provjerite probleme na cijelom sustavu (prostor na disku, memorija)
  2. Dajte prioritet kritičnim bazama podataka za oporavak
  3. Razmotrite hardverske probleme koji utječu na cijelu instancu
  4. Pregledajte nedavne promjene ili ažuriranja sustava

15.2 Razmatranja za velike baze podataka

Za baze podataka veće od 1 TB:

  • Očekujte dulje vrijeme oporavka (moguće nekoliko dana)
  • Osigurajte odgovarajuću alokaciju memorije
  • Razmotrite postavke paralelne obrade
  • Praćenje tempdb prostora tijekom oporavka

15.3 Kada se obratiti Microsoftovoj podršci

Obratite se Microsoftovoj podršci za:

  • Kritični proizvodni sustavi bez mogućnosti sigurnosne kopije
  • sumnja SQL Server programske pogreške
  • Poslovna okruženja koja zahtijevaju zajamčeni oporavak
  • Složeni scenariji stalnog rada ili klasteriranja

16. Česta pitanja

P: Koliko dugo bi trebalo SQL Server Koliko obično traje oporavak baze podataka?

A: Vrijeme oporavka ovisi o veličini baze podataka, volumenu transakcija i performansama hardvera. Male baze podataka obično se oporavljaju za nekoliko minuta, dok velike baze podataka s opsežnim zapisnicima transakcija mogu potrajati nekoliko sati. Procjene vremena prikazane u zapisnicima pogrešaka često su netočne, stoga se usredotočite na postotke napretka.

P: Mogu li prestati SQL Server tijekom oporavka bez gubitka podataka?

A: Zaustavljanje SQL Server tijekom oporavka je općenito sigurno, ali će ponovno pokrenuti proces oporavka od početka kada se usluga ponovno pokrene. To produžuje ukupno vrijeme oporavka, ali ne uzrokuje dodatni gubitak podataka osim onoga što se dogodilo tijekom izvornog incidenta.

P: Koja je razlika između „U oporavku“ i „Oporavak na čekanju“?

A: „U oporavku“ znači SQL Server aktivno izvodi operacije oporavka. „Oporavak na čekanju“ označava da proces oporavka nije uspio započeti, obično zbog nedostajućih datoteka, nedovoljnih dozvola ili problema s prostorom na disku koji se moraju riješiti prije nego što se oporavak može nastaviti.

Detaljnije informacije o "Oporavku na čekanju" možete pronaći u našem sveobuhvatan vodič.

P: Hoću li izgubiti podatke ako koristim REPAIR_ALLOW_DATA_LOSS?

A: Da, REPAIR_ALLOW_DATA_LOSS može ukloniti oštećene podatke kako bi se vratila konzistentnost baze podataka. Uvijek prvo pokušajte s REPAIR_REBUILD, što rješava strukturne probleme bez gubitka podataka. Koristite REPAIR_ALLOW_DATA_LOSS samo kao krajnje rješenje kada nemate drugih mogućnosti oporavka.

P: Mogu li pristupiti drugim bazama podataka dok se jedna baza podataka oporavlja?

O: Da, druge baze podataka na istoj SQL Server instanca ostaje dostupna tijekom oporavka. Samo baza podataka koja se oporavlja nije dostupna. Međutim, operacije oporavka mogu utjecati na ukupne performanse poslužitelja.

P: Što uzrokuje da se baza podataka zaglavi u načinu oporavka?

A: Uobičajeni uzroci uključuju nepotpune operacije vraćanja pomoću NORECOVERY, prekomjeran broj virtualnih datoteka dnevnika (VLF), velike nepotvrđene transakcije, oštećenje baze podataka, nedovoljan prostor na disku i probleme s hardverom. Baze podataka s omogućenim AUTOMATSKIM ZATVARANJEM također mogu stalno ulaziti u oporavak.

P: Kako mogu znati napreduje li oporavak ili je zaglavio?

A: Monitor SQL Server zapisnici pogrešaka za poruke o napretku oporavka koji prikazuju postotke dovršenosti. Koristite sys.dm_exec_requests za provjeru aktivnih naredbi DB STARTUP. Ako se postoci s vremenom povećavaju, oporavak napreduje. Nedostatak novih unosa u zapisniku nekoliko sati može ukazivati ​​na zaglavljeni proces.

P: Je li sigurno ponovno pokrenuti SQL Server usluga tijekom oporavka?

A: Ponovno pokretanje je sigurno, ali ga treba koristiti oprezno. Ponovno će pokrenuti oporavak od početka, što potencijalno može udvostručiti vrijeme oporavka. Ponovno pokrenite samo ako se oporavak čini potpuno zamrznutim bez napretka satima ili ako sumnjate da je proces stvarno zaglavio.

P: Koja je razlika između AUTOMATSKOG ZATVARANJA i načina oporavka?

A: AUTOMATSKO ZATVARANJE automatski zatvara baze podataka kada ne postoje veze, a zatim ih ponovno otvara za nove veze. Ovo ponovljeno otvaranje svaki put pokreće kratke procese oporavka, zbog čega se čini da je baza podataka stalno u oporavku. Onemogućavanje AUTOMATSKOG ZATVARANJA rješava ovaj problem.

P: Mogu li sigurnosne kopije dnevnika transakcija pomoći tijekom oporavka?

A: Sigurnosne kopije dnevnika transakcija mogu osloboditi prostor za dnevnike ako je pogon za dnevnike pun, što potencijalno omogućuje nastavak oporavka. Međutim, ne možete sigurnosno kopirati dnevnik baze podataka koja je trenutno u načinu oporavka. Sigurnosne kopije dnevnika korisnije su za prevenciju i održavanje nakon oporavka.

P: Kada se trebam obratiti Microsoftovoj podršci?

A: Obratite se Microsoftovoj podršci za kritične produkcijske sustave kod kojih ugrađene metode oporavka ne uspijevaju, kada sumnjate SQL Server softverske greške, za složene scenarije Always On ili klasteriranja ili kada poslovna okruženja zahtijevaju zajamčeni oporavak podataka uz minimalno vrijeme zastoja.

P: Kako mogu spriječiti da se baze podataka zaglave u oporavku?

A: Redovito provodite potpune i zapisničke sigurnosne kopije, pratite i upravljajte VLF brojem, osigurajte dovoljan prostor na disku, koristite odgovarajuće postupke gašenja, održavajte pouzdanost hardvera, onemogućite AUTO CLOSE na produkcijskim bazama podataka i redovito izvršavajte DBCC CHECKDB operacije za rano otkrivanje korupcije.

P: Što su VLF-ovi i zašto utječu na oporavak?

A: Virtualne datoteke dnevnika (VLF-ovi) su interni segmenti unutar datoteka dnevnika transakcija. Previše VLF-ova (preko 1,000) značajno usporava oporavak jer SQL Server moraju se obraditi svaki pojedinačno. Ispravna veličina i postavke rasta datoteke dnevnika pomažu u održavanju optimalnog broja VLF-ova.

P: Mogu li vratiti podatke iz sigurnosne kopije dok je baza podataka u oporavku?

A: Ne možete vratiti bazu podataka koja je trenutno u načinu oporavka. Morate pričekati da se oporavak dovrši ili zaustaviti SQL Server uslugu ili vratite na drugi naziv baze podataka. U hitnim situacijama razmislite o vraćanju na novi naziv baze podataka, a zatim je preimenujte nakon što se problemi s oporavkom riješe.

17. Zaključak i sljedeći koraci

17.1 Sažetak ključnih rješenja

Kad vaše SQL Server baza podataka se oporavlja, počnite s ovim pristupima redom:

  1. Provjerite zapisnike grešaka i pratite napredak
  2. Pričekajte prirodni završetak ako je napredak stalan
  3. Za nepotpune obnove koristite RESTORE WITH RECOVERY
  4. Rješavanje problema sa zapisnikom transakcija
  5. Pokrenite DBCC CHECKDB ili profesionalne alate za provjeru korupcije
  6. Razmotrite vraćanje sigurnosne kopije u ozbiljnijim slučajevima

most SQL Server db u situacijama oporavka rješavaju se u roku od nekoliko sati korištenjem ovih provjerenih metoda. Za složene scenarije, ne ustručavajte se koristiti napredne tehnike ili profesionalne alate.

17.2 Dodatni izvori

Za daljnju pomoć:

Redovito održavanje i praćenje sprječavaju većinu problema s oporavkom. Provedite preventivne prakse navedene u ovom vodiču kako biste smanjili buduće pojave problema s oporavkom MS SQL-a.


O Autor:

Yuan Sheng je viši administrator baze podataka (DBA) s preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka poduzeća. Uspješno je riješio stotine scenarija oporavka baza podataka u financijskim uslugama, zdravstvu i proizvodnim organizacijama.

Yuan se specijalizirao za SQL Server oporavak baza podataka, rješenja za visoku dostupnost i optimizaciju performansi. Njegovo opsežno praktično iskustvo uključuje upravljanje bazama podataka od više terabajta, implementaciju grupa dostupnosti Always On i razvoj automatiziranih strategija sigurnosnog kopiranja i oporavka za poslovne sustave od kritične važnosti.

Svojim tehničkim znanjem i praktičnim pristupom, Yuan se usredotočuje na stvaranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima u rješavanju složenih SQL Server učinkovito rješava izazove. Ostaje u toku s najnovijim SQL Server izdanja i Microsoftove razvojne tehnologije baza podataka, redovito testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.

Imate pitanja o SQL Server oporavak ili trebate dodatne upute za rješavanje problema s bazom podataka? Yuan pozdravlja povratne informacije i sugestije za poboljšanje ovih tehničkih resursa.

Podijeli sada: