Podijeli sada:
Sadržaj 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 Šta je Recovery Mode u SQL Server

kada SQL Server baza podataka prikazuje status „U oporavku“, to znači SQL Server vrši oporavak od pada sistema 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 se trenutno nalazi u načinu oporavka.

Režim oporavka se obično javlja nakon neočekivanih gašenja sistema, nestanka struje ili tokom 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 tačke kako bi identifikovao prljave stranice i aktivne transakcije. Kreira tabelu prljavih stranica (DPT) i tabelu aktivnih transakcija (ATT) kako bi pratio šta treba oporaviti.

1.2.2 Faza ponavljanja (Premotavanje naprijed)

Sistem ponovo reprodukuje sve potvrđene transakcije koje nisu zapisane na disk prije pada sistema. Ovo osigurava da se sve potvrđene promjene ispravno primjenjuju na datoteke baze podataka.

1.2.3 Faza poništavanja (vraćanje na prethodno)

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

1.3 Uobičajeni simptomi i poruke o greškama

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

  • Naziv baze podataka koji prikazuje "(U oporavku)" u SQL Server Management Studio
  • Neuspješno prijavljivanje s porukama „baza podataka se oporavlja“
  • Unosi u dnevnik grešaka koji prikazuju procente napretka oporavka
  • Stanje baze podataka koje prikazuje "OPORAVAK" prilikom upita

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

2.1 Nepotpune operacije vraćanja

Najčešći uzrok se javlja prilikom vraćanja iz više sigurnosnih kopija datoteka pomoću NORECOVERY opcija bez finala SA OPORAVKOM komanda. Ovo ostavlja bazu podataka da čeka dodatne operacije vraćanja.

2.2 Problemi sa zapisnikom transakcija

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

2.3 Problemi vezani za sistem

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

2.4 Oštećenje baze podataka

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

3. Dijagnostički koraci prije popravke

3.1 Provjera SQL Server Error Logs

Prije nego što pokušate popravke, provjerite SQL Server dnevnik grešaka za poruke o napretku oporavka. Potražite unose koji prikazuju postotke završetka i procijenjeno preostalo vrijeme.

  1. otvoreno SQL Server Management Studio
  2. Idite do upravljanje -> SQL Server Trupci
  3. Pregledajte nedavne unose za naziv vaše baze podataka
  4. Potražite indikatore faze oporavka (faza 1, 2 ili 3 od 3)

Checking SQL Server zapisnici greš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. Rješenje br. 1: Sačekajte završetak prirodnog oporavka

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

4.1 Kada treba biti strpljiv

Dozvoli prirodno dovršavanje kada:

  • Zapisi o greškama pokazuju stalan napredak sa smanjenjem procjena vremena
  • Nisu prijavljene greške u vezi s korupcijom
  • Baza podataka je nedavno imala velike transakcije
  • Broj VLF-ova je podnošljiv (ispod 1,000)

4.2 Praćenje napretka oporavka

Procjene vremena oporavka u zapisnicima o greškama često su netačne. Fokusirajte se na procente napretka, a ne na preostalo vrijeme. Velikim bazama podataka s opsežnom historijom transakcija može biti potrebno nekoliko sati za potpuni oporavak.

5. Rješenje #2: Koristite RESTORE DATABASE WITH RECOVERY

Ova ispravka rješava probleme s nepotpunim operacijama vraćanja podataka gdje je posljednji korak oporavka izostavljen. Koristite ovo kada vaš SQL Server baza podataka u oporavku je rezultat procesa vraćanja pomoću NORECOVERY.

5.1 Razumijevanje naredbe

The OBNOVI BAZU PODATAKA POMOĆU OPORAVKA Komanda završava proces oporavka poništavanjem nepotvrđenih transakcija i vraćanjem baze podataka u online stanje.

5.2 Koraci implementacije

  1. otvoreno SQL Server Management Studio
  2. Povežite se sa svojim SQL Server primer
  3. kliknite Novo > Upit s trenutnom vezom
    Kreiraj novi upit u SQL Server ManagementStudio.
  4. Izvršiti: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Sačekajte potvrdu o završetku

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

6. Ispravka br. 3: Rješavanje problema sa zapisnikom transakcija

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

6.1 Pravljenje sigurnosnih kopija zapisa transakcija

Oslobodite prostor u dnevniku kreiranjem sigurnosnih kopija dnevnika transakcija:

  1. otvoreno SQL Server Management Studio
  2. Desnim klikom miša kliknite na vašu bazu podataka -> zadaci -> Back Up
    Pokrenite zadatak sigurnosne kopije za SQL Server baze podataka.
  3. promjena Vrsta rezervne kopije to Dnevnik transakcija
    Promijenite vrstu sigurnosne kopije u dnevnik transakcija
  4. Odredite odredište sigurnosne kopije
  5. kliknite OK izvršiti

6.2 Upravljanje virtuelnim datotekama dnevnika (VLF)

Provjerite broj VLF-ova sa:

DBCC LOGINFO('YourDatabaseName');

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

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

6.3 Sigurno smanjivanje datoteka dnevnika

Smanjujte logove samo tokom perioda održavanja kada se ne izvršavaju aktivne transakcije. Uvijek napravite sigurnosnu kopiju baze podataka prije operacija smanjivanja.

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

Oštećenje baze podataka može spriječiti uspješan završetak oporavka. 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

Počnite sa standardnim pristupom za provjeru integriteta baze podataka. Prvo pokušajte direktno sa DBCC CHECKDB:

  1. Izvršiti: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Pregledajte rezultate za greške u konzistentnosti
  3. Dokumentujte 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 Opcije popravke za dostupne baze podataka

Ako je DBCC CHECKDB uspješno izvršen i pronađena je korekcija, koristite 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

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

  1. Postavite hitni način rada: 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 sigurnu popravku: 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 rada: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Postavi online: ALTER DATABASE [YourDatabaseName] SET ONLINE;

Bitan: HITNI način rada zaobilazi normalne procese oporavka i treba ga koristiti samo kada je baza podataka potpuno nedostupna. Uvijek prvo pokušajte standardni DBCC CHECKDB pristup prije prelaska na HITNI način rada.

Mozeš naci sveobuhvatniji vodič o tome kako koristiti DBCC CHECKDB.

8. Ispravka br. 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 iz sigurnosne kopije

Razmotrite vraćanje sigurnosne kopije kada:

  • Oporavak traje već više od 24 sata bez ikakvog napretka
  • Greške usled korupcije sprečavaju uspešan popravak
  • Imate dostupne nedavne, provjerene sigurnosne kopije
  • Gubitak podataka od posljednje sigurnosne kopije je prihvatljiv

8.2 Postupak restauracije korak po korak

  1. otvoreno SQL Server Management Studio
  2. Desni klik baze podataka -> Vrati bazu podataka
    Pokrenite zadatak vraćanja baze podataka u SQL Server Management Studio
  3. izabrati Uređaj pod Izvor
  4. kliknite dodati i pregledajte svoju sigurnosnu kopiju datoteke
  5. Odaberite sigurnosnu kopiju i kliknite OK
  6. Izabrati Prepiši postojeću bazu podataka ako je potrebno
  7. kliknite OK za početak restauracije

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 podataka na određenu vremensku tačku. Osigurajte neprekinuti lanac sigurnosnih kopija dnevnika od pune sigurnosne kopije do željene tač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. Ispravka br. 6: Onemogućite svojstvo AUTOMATSKOG ZATVARANJA

Svojstvo baze podataka AUTO CLOSE može uzrokovati ponovljene cikluse oporavka, što stvara utisak 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 AUTOMATSKO ZATVARANJE omogućeno, SQL Server zatvara bazu podataka nakon završetka posljednje veze, a zatim je ponovo otvara za nove veze. Ovo ponovljeno otvaranje svaki put pokreće procese oporavka.

9.2 Onemogućavanje AUTOMATSKOG ZATVARANJA

  1. otvoreno SQL Server Management Studio
  2. Desnim klikom miša kliknite na vašu bazu podataka -> svojstva
  3. izabrati mogućnosti s lijeve ploče
  4. Set Automatsko zatvaranje to lažan
  5. kliknite OK primijeniti promjene

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

Alternativno, koristite T-SQL:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Rješenje #7: Ponovno pokretanje SQL Server Usluga

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

10.1 Kada ponovno pokretanje usluge pomaže

Ponovo pokrenite uslugu kada:

  • Napredak u oporavku je zastao nekoliko sati
  • Zapisnici grešaka ne prikazuju nove unose
  • Ostale baze podataka funkcionišu normalno
  • Možete si priuštiti produženi zastoj

10.2 Procedure sigurnog ponovnog pokretanja

  1. otvoreno SQL Server konfiguracijski menadžer Vanjski Link
  2. Idite do SQL Server usluge
  3. Pronađite SQL Server instancu koju želite ponovo pokrenuti, a zatim kliknite desnim tasterom miša SQL Server (Naziv instance)
  4. izabrati Ponovo pokreni
  5. Sačekajte da se usluga potpuno ponovo pokrene
  6. Pratite zapise o greškama radi napretka oporavka

Ponovo pokrenite SQL Server service in SQL Server ConfigurationManager.

Bilješka: Ponovno pokretanje će uzrokovati da oporavak počne ispočetka, što potencijalno produžava ukupno vrijeme oporavka.

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

U ekstremnim slučajevima, odvojite i ponovo prikačite 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 ponovo kreira novi dnevnik transakcija

Upozorenje: Ova metoda može dovesti do gubitka podataka. Koristite je samo kada su sve ostale opcije iscrpljene.

12. Ispravka #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 oporavka specifični za zrcaljenje

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

12.2 Rješenja za oporavak putem zrcaljenja

Ponovo pokrenite krajnju tačku zrcaljenja:

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

Ako ponovno pokretanje krajnje tačke ne uspije, prekinite partnerstvo zrcalne mreže:

  1. Izvršiti: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Run: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Ponovo konfigurirajte zrcaljenje kada je baza podataka online

13. Rješenje #10: Koristite profesionalne alate za oporavak

Alati za oporavak trećih strana pružaju napredne mogućnosti popravke 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 njegovo korištenje:

  1. Zaustavi 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. Započnite SQL Server Usluga.
  4. Start DataNumen SQL Recovery.
  5. Kao izvor baze podataka koju treba oporaviti, odaberite kopiju, umjesto originalne datoteke.
  6. Kliknite na "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.

upotreba DataNumen SQL Recovery popraviti jedan pokvaren SQL Server MDF fajl.

13.2 Kada treba razmotriti alate trećih strana

Koristite profesionalne alate kada:

  • Ugrađene opcije popravke ne uspijevaju ili prijavljuju opsežnu korupciju
  • Nema dostupnih nedavnih sigurnosnih kopija
  • Kritični podaci moraju biti oporavljeni uprkos korupciji
  • Standardne metode oporavka dovode do značajnog gubitka podataka

14. Najbolje prakse prevencije

14.1 Redovni zadaci održavanja

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

  • Zakažite redovne potpune i log sigurnosne kopije: Održavajte kompletne lance sigurnosnih kopija
  • Praćenje VLF broja: Za optimalne performanse, VLF-ove održavajte ispod 100.
  • Veličina datoteke dnevnika plana: Prethodno odredite veličinu trupaca kako biste izbjegli prekomjerni automatski rast
  • Pokreni redovni DBCC CHECKDB: Otkrijte korupciju u ranoj fazi

14.2 Praćenje i uzbunjivanje

Postavite proaktivni nadzor:

  1. Konfigurišite upozorenja za promjene stanja baze podataka
  2. Praćenje prostora na disku na pogonima datoteka dnevnika
  3. Praćenje dugotrajnih transakcija
  4. Upozorenje na prekomjeran broj VLF-ova

14.3 Hardver i infrastruktura

Osigurajte pouzdanu infrastrukturu:

15. Rješavanje problema složenih scenarija

15.1 Višestruki problemi s bazom podataka

Kada se više baza podataka zaglavi u oporavku:

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

15.2 Razmatranja za velike baze podataka

Za baze podataka veće od 1TB:

  • Očekujte duže vrijeme oporavka (moguće nekoliko dana)
  • Osigurajte adekvatnu alokaciju memorije
  • Razmotrite postavke paralelne obrade
  • Praćenje tempdb prostora tokom oporavka

15.3 Kada se obratiti Microsoftovoj podršci

Kontaktirajte Microsoftovu podršku za:

  • Kritični proizvodni sistemi bez opcija za rezervne kopije
  • Sumnjivo SQL Server softverske greške
  • Poslovna okruženja koja zahtijevaju garantovani 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 zavisi od veličine baze podataka, obima transakcija i performansi hardvera. Male baze podataka se obično oporavljaju za nekoliko minuta, dok se velike baze podataka s opsežnim zapisnicima transakcija mogu oporaviti za nekoliko sati. Procjene vremena prikazane u zapisnicima grešaka često su netačne, pa se umjesto toga usredotočite na procente napretka.

P: Mogu li stati SQL Server tokom oporavka bez gubitka podataka?

A: Zaustavljanje SQL Server tokom oporavka je uglavnom siguran, ali će ponovo pokrenuti proces oporavka od početka kada se usluga ponovo pokrene. Ovo produžava ukupno vrijeme oporavka, ali ne uzrokuje dodatni gubitak podataka osim onoga što se dogodilo tokom prvobitnog 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šoj sveobuhvatni 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 REPAIR_REBUILD, što rješava strukturne probleme bez gubitka podataka. Koristite REPAIR_ALLOW_DATA_LOSS samo kao krajnje rješenje kada nemate druge opcije za oporavak.

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

O: Da, druge baze podataka na istoj SQL Server instance ostaju dostupne tokom oporavka. Samo baza podataka koja se oporavlja nije dostupna. Međutim, operacije oporavka mogu uticati na ukupne performanse servera.

P: Šta uzrokuje da se baza podataka zaglavi u režimu oporavka?

A: Uobičajeni uzroci uključuju nepotpune operacije vraćanja podataka 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 izgledati kao da ulaze u oporavak.

P: Kako da znam da li oporavak napreduje ili je zaglavio?

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

P: Je li sigurno ponovo pokrenuti? SQL Server usluga tokom oporavka?

A: Ponovno pokretanje je sigurno, ali ga treba koristiti pažljivo. Ponovo će pokrenuti oporavak od početka, što potencijalno udvostručuje vrijeme oporavka. Ponovo pokrenite proces samo ako se čini da je oporavak potpuno zamrznut bez napretka satima ili ako sumnjate da je proces zaista zaglavljen.

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 ponovo 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 tokom oporavka?

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

P: Kada trebam kontaktirati Microsoftovu podršku?

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

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

A: Redovno implementirajte potpune i dnevnike sigurnosnih kopija, pratite i upravljajte VLF brojačima, osigurajte adekvatan prostor na disku, koristite odgovarajuće procedure isključivanja, održavajte pouzdanost hardvera, onemogućite AUTO CLOSE na produkcijskim bazama podataka i redovno izvršavajte DBCC CHECKDB operacije za rano otkrivanje korupcije.

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

A: Virtualne datoteke dnevnika (VLF) 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. Pravilna 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 podatke preko baze podataka koja je trenutno u režimu oporavka. Morate ili sačekati da se oporavak završi, zaustaviti SQL Server uslugu ili vraćanje na drugo ime baze podataka. U hitnim situacijama, razmislite o vraćanju na novo ime baze podataka, a zatim o preimenovanju nakon što se problemi s oporavkom riješe.

17. Zaključak i sljedeći koraci

17.1 Sažetak ključnih rješenja

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

  1. Provjerite zapise o greškama i pratite napredak
  2. Sačekajte prirodni završetak ako je napredak stalan
  3. Koristite RESTORE WITH RECOVERY za nepotpune restauracije
  4. Rješavanje problema sa zapisnikom transakcija
  5. Pokrenite DBCC CHECKDB ili profesionalne alate za provjeru korupcije
  6. Razmotrite vraćanje iz sigurnosne kopije u ozbiljnijim slučajevima

većina SQL Server Problemi s 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 resursi

Za dodatnu pomoć:

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


o autoru

Yuan Sheng je viši administrator baze podataka (DBA) sa preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka u preduzećima. Uspješno je riješio stotine scenarija oporavka baza podataka u organizacijama finansijskih usluga, zdravstva i proizvodnje.

Yuan je specijaliziran 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 za sigurnosno kopiranje i oporavak za poslovne sisteme od kritične važnosti.

Svojim tehničkim znanjem i praktičnim pristupom, Yuan se fokusira na kreiranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima da riješe složene probleme. SQL Server efikasno rješava izazove. On prati najnovije SQL Server izdanja i Microsoftove tehnologije baza podataka koje se razvijaju, redovno testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.

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

Podijeli sada: