SQL Server Datu bāze atkopšanas režīmā? Iegūstiet 10 pārbaudītus risinājumus tūlīt! Soli pa solim sniegti risinājumi, sākot no vienkārša labojuma līdz pat sarežģītam labojumam.
1. Saprašana SQL Server Datu bāzes atkopšanas režīms
1.1 Kas ir atkopšanas režīms? SQL Server
Kad SQL Server datubāzē ir redzams statuss “Atkopšanas procesā”, tas nozīmē SQL Server veic avārijas atkopšanu vai transakciju atkopšanu, lai nodrošinātu datubāzes konsekvenci. Šis automātiskais process uztur datu integritāti, atkārtoti atskaņojot apstiprinātās transakcijas un atgriežot neapstiprinātās.
Atkopšanas režīms parasti tiek aktivizēts pēc negaidītām izslēgšanām, strāvas padeves pārtraukumiem vai datubāzes atjaunošanas laikā. Lai gan šis ir normāls aizsardzības mehānisms, problēmas rodas, ja SQL Server Datubāzes atkopšana aizņem neparasti ilgu laiku vai šķiet iestrēgusi.
1.2 Datu bāzes atkopšanas trīs fāzes
SQL Server Atveseļošanās notiek trīs atšķirīgos posmos:
1.2.1 Analīzes fāze
SQL Server skenē darījumu žurnālu no pēdējā kontrolpunkta, lai identificētu netīrās lapas un aktīvos darījumus. Tas izveido netīro lapu tabulu (DPT) un aktīvo darījumu tabulu (ATT), lai izsekotu, kas jāatjauno.
1.2.2 Atkārtošanas fāze (pārtīšana uz priekšu)
Sistēma atkārtoti atskaņo visas apstiprinātās transakcijas, kas pirms avārijas netika ierakstītas diskā. Tas nodrošina, ka visas apstiprinātās izmaiņas tiek pareizi lietotas datubāzes failos.
1.2.3 Atcelšanas fāze (atcelšana)
Visas neapstiprinātās transakcijas tiek atsauktas, lai saglabātu datubāzes konsekvenci. Kad tas ir pabeigts, datubāze kļūst pieejama normālai darbībai.
1.3 Biežākie simptomi un kļūdu ziņojumi
Ja jūsu SQL Server Ja db ir atkopšanas procesā, parasti redzēsiet:
- Datubāzes nosaukums, kurā redzams teksts “(In Recovery)” SQL Server Vadības studija
- Pieteikšanās kļūmes ar ziņojumiem “datubāze tiek atjaunota”
- Kļūdu žurnāla ieraksti, kas parāda atkopšanas progresa procentuālo daļu
- Datu bāzes stāvoklis, kad tiek vaicāts, rāda “ATJAUNOŠANĀS”
2. Pamatcēloņi SQL Server Atkopšanas režīma problēmas
2.1 Nepabeigtas atjaunošanas darbības
Visbiežākais iemesls rodas, atjaunojot datus no vairākiem dublējuma failiem, izmantojot NORECOVERY variants bez fināla AR ATJAUNOŠANOS komandu. Tas atstāj datubāzi gaidot papildu atjaunošanas darbības.
2.2 Darījumu žurnāla problēmas
Lieli darījumu žurnālfailu vai pārmērīgi daudzu virtuālo žurnālfailu (VLF) dēļ atkopšana ievērojami palēninās. Kad MS SQL atkopšanas procesā ir tūkstošiem VLF failu, process var ilgt stundas vai dienas.
2.3 Ar sistēmu saistītas problēmas
Aparatūras kļūmes, strāvas padeves pārtraukumi vai nepietiekama diska vieta var pārtraukt normālu datubāzes darbību, restartēšanas laikā izraisot ilgstošus atkopšanas procesus.
2.4 Datubāzes bojājumi
Bojāti datubāzes faili neļauj veiksmīgi pabeigt atkopšanu, atstājot datubāzi uz nenoteiktu laiku iestrēgušu atkopšanas režīmā.
3. Diagnostikas soļi pirms labošanas
3.1 Pārbaude SQL Server Kļūdu žurnāli
Pirms mēģināt veikt labojumus, pārbaudiet SQL Server kļūdu žurnālā, lai saņemtu ziņojumus par atkopšanas progresu. Meklējiet ierakstus, kuros redzami pabeigšanas procenti un aptuvenais atlikušais laiks.
- atvērts SQL Server Vadības studija
- Virzīties uz vadība -> SQL Server Baļķi
- Pārskatiet jaunākos ierakstus par savu datubāzes nosaukumu
- Meklējiet atveseļošanās fāzes indikatorus (1., 2. vai 3. fāze no 3)
3.2 Atveseļošanās progresa uzraudzība
Izmantojiet dinamiskos pārvaldības skatus, lai izsekotu aktīvās atkopšanas darbības:
SELECT session_id, command, blocking_session_id, wait_type, wait_time, wait_resource FROM sys.dm_exec_requests WHERE command = 'DB STARTUP';
3.3 Datu bāzes stāvokļa pārbaude
Pārbaudiet pašreizējo datubāzes stāvokli, lai saprastu atkopšanas statusu:
SELECT name, state_desc FROM sys.databases WHERE name = 'YourDatabaseName';
4. 1. labojums: pagaidiet, līdz notiek dabiskā atveseļošanās
Dažreiz pacietība ir labākais risinājums, kad jūsu SQL Server datubāze tiek atjaunota. Šī pieeja darbojas, ja atjaunošana norit normāli, bet aizņem ilgāku laiku nekā paredzēts.
4.1 Kad jābūt pacietīgam
Atļaut dabisku pabeigšanu, ja:
- Kļūdu žurnāli uzrāda stabilu progresu ar samazinātiem laika aprēķiniem
- Nav ziņots par korupcijas kļūdām
- Datubāzē nesen tika veiktas lielas transakcijas.
- VLF skaits ir pārvaldāms (zem 1,000)
4.2 Atveseļošanās progresa uzraudzība
Atkopšanas laika aprēķini kļūdu žurnālos bieži vien ir neprecīzi. Koncentrējieties uz progresa procentiem, nevis atlikušo laiku. Lielām datubāzēm ar plašu transakciju vēsturi pilnīgai atkopšanai var būt nepieciešamas vairākas stundas.
5. 2. labojums: izmantojiet ATJAUNOŠANAS DATUBĀZI AR ATJAUNOŠANU
Šis labojums novērš nepabeigtas atjaunošanas darbības, kurās tika izlaists pēdējais atkopšanas solis. Izmantojiet to, ja jūsu SQL Server db atkopšanas procesā radās, izmantojot NORECOVERY.
5.1 Komandas izpratne
The ATJAUNOT DATUBĀZI AR ATJAUNOŠANAS FUNKCIJU komanda pabeidz atkopšanas procesu, atceļot neapstiprinātās transakcijas un atjaunojot datubāzi tiešsaistē.
5.2. Ieviešanas soļi
- atvērts SQL Server Vadības studija
- Pievienojieties savam SQL Server piemērs
- Noklikšķiniet Jauns > Vaicājums ar pašreizējo savienojumu
- Izpildīt:
RESTORE DATABASE [YourDatabaseName] WITH RECOVERY; - Gaidiet pabeigšanas apstiprinājumu
Brīdinājums: Izmantojiet šo komandu tikai tad, ja esat pārliecināts, ka nav gaidāmas papildu atjaunošanas darbības.
6. 3. labojums: atrisiniet darījumu žurnāla problēmas
Transakciju žurnāla problēmas ir viens no galvenajiem ilgstošas atkopšanas laika cēloņiem. Šis labojums novērš pilnus žurnālus, pārmērīgus VLF un žurnāla vietas problēmas, kas rada problēmas. SQL Server atveseļošanās laikā.
6.1 Darījumu žurnālu dublēšana
Atbrīvojiet žurnāla vietu, izveidojot darījumu žurnāla dublējumkopijas:
- atvērts SQL Server Vadības studija
- Ar peles labo pogu noklikšķiniet uz savas datubāzes -> Uzdevumi -> Atbalstīt
- Mainīt Rezerves veids uz Darījumu žurnāls
- Norādiet dublējuma galamērķi
- Noklikšķiniet OK izpildīt
6.2 Virtuālo žurnālfailu (VLF) pārvaldība
Pārbaudiet VLF skaitu ar:
DBCC LOGINFO('YourDatabaseName');
Ja jums ir vairāk nekā 1,000 VLF, samaziniet tos par:
- Darījumu žurnāla dublēšana
- Žurnālfaila samazināšana:
DBCC SHRINKFILE(LogFileName, TRUNCATEONLY); - Žurnālfaila palielināšana lielos fragmentos (1 GB vai vairāk)
6.3 Žurnālfailu droša samazināšana
Samaziniet žurnālus tikai apkopes periodos, kad netiek veiktas aktīvas transakcijas. Pirms samazināšanas darbību veikšanas vienmēr dublējiet datubāzi.
7. 4. labojums: palaidiet DBCC CHECKDB un veiciet labošanu
Datu bāzes bojājumi var traucēt veiksmīgai atkopšanai. DBCC CHECKDB ir iebūvēta komanda, kas var identificēt un novērst nelielas bojājumu problēmas, kuru dēļ MS SQL paliek atkopšanas režīmā.
7.1 Datu bāzes bojājumu pārbaude
Sāciet ar standarta pieeju, lai pārbaudītu datubāzes integritāti. Vispirms izmēģiniet tieši DBCC CHECKDB:
- Izpildīt:
DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS; - Pārskatiet rezultātus, lai noteiktu konsekvences kļūdas
- Dokumentējiet visus ziņojumus par korupciju
Ja DBCC CHECKDB neizdodas Ar kļūdām, piemēram, “Datubāze tiek atkopta. Gaida, līdz atkopšana būs pabeigta”, tas nozīmē, ka datubāze aktīvi darbojas atkopšanas režīmā un bloķē piekļuvi. Šajā gadījumā pārejiet uz 7.3. sadaļu, lai izmantotu ĀRKĀRTAS režīmu.
7.2 Pieejamu datubāzu labošanas iespējas
Ja DBCC CHECKDB veiksmīgi darbojās un atrada bojājumus, veiciet tālāk norādītās labošanas darbības.
- Iestatiet datubāzi viena lietotāja režīmā:
ALTER DATABASE [YourDatabaseName] SET SINGLE_USER; - Mēģiniet veikt drošu remontu:
DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD); - Ja neizdodas, izmantojiet:
DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS); - Atgriezties pie vairāku lietotāju režīma:
ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
7.3 Avārijas režīma izmantošana, ja datubāze nav pieejama
Avārijas režīms ir nepieciešams tikai tad, ja datubāze ir iestrēgusi atkopšanas režīmā un noraida parastos DBCC CHECKDB mēģinājumus. Tas atzīmē datubāzi kā TIKAI LASĀMU un atspējo reģistrēšanu. Izmantojiet šo pieeju, ja standarta piekļuve neizdodas:
- Iestatiet avārijas režīmu:
ALTER DATABASE [YourDatabaseName] SET EMERGENCY; - Iestatīt viena lietotāja kontu:
ALTER DATABASE [YourDatabaseName] SET SINGLE_USER; - Palaist integritātes pārbaudi:
DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS; - Ja tiek konstatēti bojājumi, vispirms veiciet drošo labošanu:
DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD); - Ja neizdevās, izmantojiet labošanu ar datu zudumu:
DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS); - Iestatīt vairākus lietotājus:
ALTER DATABASE [YourDatabaseName] SET MULTI_USER; - Iestatīt tiešsaistē:
ALTER DATABASE [YourDatabaseName] SET ONLINE;
Svarīgi: ĀRKĀRTAS režīms apiet parastos atkopšanas procesus un to vajadzētu izmantot tikai tad, ja datubāze ir pilnībā nepieejama. Pirms pārslēgšanās uz ĀRKĀRTAS režīmu vienmēr vispirms izmēģiniet standarta DBCC CHECKDB pieeju.
Jūs varat atrast visaptverošāka rokasgrāmata par DBCC CHECKDB lietošanu.
8. 5. labojums: atjaunošana no dublējuma
Ja citas metodes neizdodas vai datu integritāte ir apšaubāma, atjaunošana no tīras dublējuma bieži vien ir visuzticamākais risinājums problēmu novēršanai. SQL Server datubāzes atkopšanas problēmas.
8.1 Kad izvēlēties dublējuma atjaunošanu
Apsveriet dublējuma atjaunošanu, ja:
- Atkopšanas process notiek jau vairāk nekā 24 stundas bez progresa.
- Bojājumu kļūdas traucē veiksmīgam remontam
- Jums ir pieejamas nesen izveidotas, pārbaudītas dublējumkopijas
- Datu zudums kopš pēdējās dublējuma ir pieņemams
8.2 Soli pa solim atjaunošanas process
- atvērts SQL Server Vadības studija
- Right-click Datubāzes -> Atjaunot datu bāzi
- Izvēlēties Ierīce sadaļā Avots
- Noklikšķiniet Pievienot un pārlūkojiet savu dublējuma failu
- Atlasiet dublējumu un noklikšķiniet uz OK
- izvēlēties Pārrakstīt esošo datubāzi ja nepieciešams
- Noklikšķiniet OK lai sāktu restaurāciju
8.3 Atjaunošana noteiktā laika punktā
Lai samazinātu datu zudumu līdz minimumam, izmantojiet darījumu žurnālu dublējumkopijas, lai atjaunotu datus līdz noteiktam laika punktam. Pārliecinieties, vai jums ir nepārtraukta žurnālu dublējumu ķēde no pilnās dublējumkopijas līdz vēlamajam atkopšanas punktam.
8.4 Atsauce
Vairāk informācijas varat uzzināt no mūsu visaptveroša rokasgrāmata par dublēšanu un atjaunošanu SQL Server datu bāzes.
9. 6. labojums: atspējojiet automātiskās aizvēršanas īpašību
Datu bāzes īpašība AUTO CLOSE var izraisīt atkārtotus atkopšanas ciklus, radot iespaidu, ka jūsu SQL Server db pastāvīgi tiek atjaunots. Šī rekvizīta atspējošana novērš problēmu.
9.1 Automātiskās aizvēršanās problēmu izpratne
Kad ir iespējota AUTOMĀTISKĀ AIZVĒRŠANA, SQL Server aizver datubāzi pēc pēdējā savienojuma beigām un pēc tam to atkārtoti atver jauniem savienojumiem. Šī atkārtotā atvēršana katru reizi aktivizē atkopšanas procesus.
9.2 Automātiskās aizvēršanas atspējošana
- atvērts SQL Server Vadības studija
- Ar peles labo pogu noklikšķiniet uz savas datubāzes -> īpašības
- Izvēlēties opcijas no kreisā paneļa
- Noteikt Automātiska aizvēršana uz Nepatiess
- Noklikšķiniet OK lai lietotu izmaiņas
Varat arī izmantot T-SQL:
ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;
10. 7. labojums: restartējiet SQL Server Serviss
Pakalpojuma restartēšana var atrisināt iestrēgušos atkopšanas procesus, taču tā jāizmanto uzmanīgi, jo tā restartēs atkopšanu no sākuma. Šis labojums darbojas, ja SQL Server atveseļošanās periodā šķiet pilnībā sasalis.
10.1 Kad palīdz pakalpojuma restartēšana
Restartējiet pakalpojumu, kad:
- Atveseļošanās process ir apstājies uz vairākām stundām
- Kļūdu žurnālos nav redzami jauni ieraksti
- Citas datubāzes darbojas normāli
- Jūs varat atļauties ilgstošu dīkstāvi
10.2 Drošas restartēšanas procedūras
- atvērts SQL Server Konfigurācijas pārvaldnieks
- Virzīties uz SQL Server Pakalpojumi
- Atrodi SQL Server instanci, kuru vēlaties restartēt, pēc tam ar peles labo pogu noklikšķiniet SQL Server (Instances nosaukums)
- Izvēlēties Restarts
- Pagaidiet, līdz pakalpojums pilnībā restartējas
- Kļūdu žurnālu pārraudzība, lai uzzinātu par atkopšanas progresu
Piezīme: Restartēšana izraisīs atkopšanas sākšanos no jauna, potenciāli pagarinot kopējo atkopšanas laiku.
11. 8. labojums: datubāzes labošana, to atvienojot un atkārtoti pievienojot
Ārkārtējos gadījumos atvienojiet un atkārtoti pievienojiet datubāzi:
- Atvienot datubāzi:
EXEC sp_detach_db 'YourDatabaseName'; - Pievienojiet tikai MDF failu:
CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG; - Tas atjauno jaunu darījumu žurnālu
Brīdinājums: Šī metode var izraisīt datu zudumu. Izmantojiet to tikai tad, ja citas iespējas ir izsmeltas.
12. 9. labojums: apstrādājiet datubāzes spoguļošanas problēmas
Datu bāzes spoguļošanas konfigurācijas var izraisīt unikālas atkopšanas problēmas. Šis labojums novērš ar spoguļošanu saistītas problēmas, kas uztur datu bāzes atkopšanas stāvoklī.
12.1 Ar spoguļošanu saistītas atkopšanas problēmas
Spoguļotās datubāzes var iestrēgt atkopšanas procesā partneru savienojuma problēmu vai galapunktu problēmu dēļ. Gan galvenā, gan spoguļotā datubāze var parādīt atkopšanas statusu.
12.2 Spoguļošanas atkopšanas risinājumi
Restartējiet spoguļošanas galapunktu:
- Atrodiet galapunkta nosaukumu:
SELECT * FROM sys.endpoints WHERE type = 4; - Apturēt galapunktu:
ALTER ENDPOINT [EndpointName] STATE = STOPPED; - Sākuma beigu punkts:
ALTER ENDPOINT [EndpointName] STATE = STARTED;
Ja galapunkta restartēšana neizdodas, pārtrauciet spoguļošanas partnerību:
- Izpildīt:
ALTER DATABASE [DatabaseName] SET PARTNER OFF; - Palaist:
RESTORE DATABASE [DatabaseName] WITH RECOVERY; - Pārkonfigurējiet spoguļošanu, kad datubāze ir tiešsaistē
13. 10. labojums: izmantojiet profesionālus atkopšanas rīkus
Trešo pušu atkopšanas rīki nodrošina uzlabotas labošanas iespējas, ja tie ir iebūvēti SQL Server metodes neizdodas. Šie rīki bieži vien var atgūt datus no nopietni bojātām datubāzēm.
13.1 DataNumen SQL Recovery
DataNumen SQL Recovery ir augsts atgūšanas līmenis, kā arī visaptverošas iespējas.
Tālāk ir norādītas darbības, kā to izmantot.
- Apturiet SQL Server Pakalpojumu.
- Izveidojiet datubāzes failu kopijas atkopšanas režīmā, tostarp gan primāro MDF failu, gan sekundāros NDF failus.
- Sāciet SQL Server Pakalpojumu.
- mājas DataNumen SQL Recovery.
- Kā atgūstamās datubāzes avotu izvēlieties kopiju, nevis oriģinālo failu.
- Noklikšķiniet uz “Sākt atkopšanu” un izpildiet norādījumus, lai atjaunotu datubāzi.
- Pēc atkopšanas procesa parādīsies jauna atkopšanas datubāze. SQL Server kas satur visus atgūtos datus.
13.2 Kad apsvērt trešo pušu rīkus
Izmantojiet profesionālus instrumentus, ja:
- Iebūvētās labošanas opcijas neizdodas vai ziņo par plašiem bojājumiem
- Nav pieejamas nesen izveidotas dublējumkopijas
- Kritiski svarīgi dati ir jāatgūst, neskatoties uz korupciju
- Standarta atkopšanas metodes rada ievērojamus datu zudumus
14. Labākā profilakses prakse
14.1. Regulāras apkopes uzdevumi
Ieviesiet šīs prakses, lai novērstu SQL Server datubāzes atkopšanas problēmas:
- Plānojiet regulāras pilnas un žurnālu dublējumkopijas: Uzturēt pilnīgas rezerves ķēdes
- VLF skaitītāju monitorēšana: Lai nodrošinātu optimālu veiktspēju, uzturiet VLF zem 100.
- Plāna žurnālfaila lieluma maiņa: Baļķu iepriekšēja izmēru noteikšana, lai izvairītos no pārmērīgas pašaugšanas
- Palaist parasto DBCC CHECKDB: Atklājiet korupciju agrīnā stadijā
14.2 Uzraudzība un brīdināšana
Iestatiet proaktīvu uzraudzību:
- Konfigurējiet brīdinājumus par datubāzes stāvokļa izmaiņām
- Diska vietas uzraudzība žurnālfailu diskdziņos
- Ilgstošu darījumu izsekošana
- Brīdinājums par pārmērīgu VLF skaitu
14.3 Aparatūra un infrastruktūra
Nodrošināt uzticamu infrastruktūru:
- Darījumu žurnāliem izmantojiet ātru krātuvi (vēlams, SSD diskus).
- Ieviesiet rezerves barošanas avotus
- Atdaliet datu un žurnālfailus dažādos diskos
- Apsvērt augstas pieejamības risinājumi tāpat Vienmēr pieejamības grupas
15. Sarežģītu scenāriju problēmu novēršana
15.1 Vairākas datubāzes problēmas
Ja atkopšanas procesā ir iestrēgušas vairākas datubāzes:
- Pārbaudiet visas sistēmas problēmas (diska vietu, atmiņu)
- Prioritizējiet kritiskās datubāzes atkopšanai
- Apsveriet aparatūras problēmas, kas ietekmē visu instanci
- Pārskatiet nesenās sistēmas izmaiņas vai atjauninājumus
15.2 Apsvērumi par lielām datubāzēm
Datubāzēm, kuru lielums pārsniedz 1 TB:
- Sagaidiet ilgāku atveseļošanās laiku (iespējams, vairākas dienas)
- Nodrošiniet atbilstošu atmiņas piešķiršanu
- Apsveriet paralēlās apstrādes iestatījumus
- Tempdb vietas uzraudzība atkopšanas laikā
15.3 Kad sazināties ar Microsoft atbalsta dienestu
Sazinieties ar Microsoft atbalsta dienestu, lai saņemtu:
- Kritiskas ražošanas sistēmas bez rezerves kopēšanas iespējām
- Aizdomās SQL Server programmatūras kļūdas
- Uzņēmumu vides, kurām nepieciešama garantēta atkopšana
- Sarežģīti Always On vai klasterizācijas scenāriji
16. Bieži uzdotie jautājumi
J: Cik ilgi vajadzētu SQL Server Kā parasti notiek datubāzes atkopšana?
A: Atkopšanas laiks ir atkarīgs no datubāzes lieluma, darījumu apjoma un aparatūras veiktspējas. Mazas datubāzes parasti atjaunojas dažu minūšu laikā, savukārt lielas datubāzes ar plašiem darījumu žurnāliem var aizņemt vairākas stundas. Kļūdu žurnālos redzamie laika aprēķini bieži vien ir neprecīzi, tāpēc koncentrējieties uz progresa procentiem.
J: Vai es varu apstāties? SQL Server atkopšanas laikā, nezaudējot datus?
A: Apstāšanās SQL Server atkopšanas laikā parasti ir droši, bet pakalpojuma restartēšanas laikā atkopšanas process tiks restartēts no sākuma. Tas pagarina kopējo atkopšanas laiku, bet nerada papildu datu zudumu papildus tam, kas radās sākotnējā incidenta laikā.
J: Kāda ir atšķirība starp statusu “Atkopšanas procesā” un “Atkopšanas gaida”?
A: “Atveseļošanās procesā” nozīmē SQL Server aktīvi veic atkopšanas darbības. “Atkopšana gaida gaidīšanu” norāda, ka atkopšanas procesu neizdevās sākt, parasti trūkstošu failu, nepietiekamu atļauju vai diska vietas problēmu dēļ, kas jāatrisina, pirms var turpināt atkopšanu.
Sīkāku informāciju par “Atgūšanas gaidīšana” varat atrast mūsu sadaļā visaptveroša rokasgrāmata.
J: Vai es zaudēšu datus, ja izmantošu REPAIR_ALLOW_DATA_LOSS?
A: Jā, REPAIR_ALLOW_DATA_LOSS var noņemt bojātus datus, lai atjaunotu datubāzes konsekvenci. Vienmēr vispirms izmēģiniet REPAIR_REBUILD, kas novērš strukturālas problēmas, nezaudējot datus. Izmantojiet REPAIR_ALLOW_DATA_LOSS tikai kā pēdējo līdzekli, ja jums nav citu atkopšanas iespēju.
J: Vai es varu piekļūt citām datubāzēm, kamēr viena datubāze tiek atjaunota?
A: Jā, citas datubāzes tajā pašā vietnē SQL Server instance atkopšanas laikā paliek pieejama. Nav pieejama tikai atkopjamā datubāze. Tomēr atkopšanas darbības var ietekmēt servera kopējo veiktspēju.
J: Kāpēc datubāze iestrēgst atkopšanas režīmā?
A: Biežākie cēloņi ir nepilnīgas atjaunošanas darbības, izmantojot NORECOVERY, pārmērīgs virtuālo žurnālfailu (VLF) skaits, lieli neapstiprināti darījumi, datubāzes bojājumi, nepietiekama vieta diskā un aparatūras problēmas. Var šķist, ka datubāzes, kurām ir iespējota automātiskā aizvēršana (AUTO CLOSE), pastāvīgi tiek atkoptas.
J: Kā es varu zināt, vai atveseļošanās progresē vai ir apstājusies?
A: Monitors SQL Server kļūdu žurnāli atkopšanas progresa ziņojumiem, kuros redzami pabeigšanas procenti. Izmantojiet sys.dm_exec_requests, lai pārbaudītu aktīvas DB STARTUP komandas. Ja procentuālā daļa laika gaitā palielinās, atkopšana notiek. Ja vairākas stundas nav jaunu žurnāla ierakstu, tas var norādīt uz iestrēgušu procesu.
J: Vai ir droši restartēt? SQL Server pakalpojums atveseļošanās laikā?
A: Restartēšana ir droša, taču tā jāizmanto uzmanīgi. Tā restartēs atkopšanu no sākuma, potenciāli divkāršojot atkopšanas laiku. Restartējiet tikai tad, ja atkopšana šķiet pilnībā iesaldēta un daudzas stundas nav novērota nekāda progresa vai ja jums ir aizdomas, ka process ir patiešām iestrēdzis.
J: Kāda ir atšķirība starp AUTOMĀTISKO AIZVĒRŠANU un atkopšanas režīmu?
A: AUTOMĀTISKĀ AIZVĒRŠANA automātiski aizver datubāzes, ja nav savienojumu, un pēc tam tās atkārtoti atver jauniem savienojumiem. Šī atkārtotā atvēršana katru reizi aktivizē īsus atkopšanas procesus, radot iespaidu, ka datubāze pastāvīgi tiek atkopta. AUTOMĀTISKĀS AIZVĒRŠANAS atspējošana novērš šo problēmu.
J: Vai darījumu žurnāla dublējumkopijas var palīdzēt atkopšanas laikā?
A: Transakciju žurnāla dublējumkopijas var atbrīvot žurnāla vietu, ja žurnāla disks ir pilns, potenciāli ļaujot turpināt atkopšanu. Tomēr jūs nevarat dublēt datubāzes žurnālu, kas pašlaik ir atkopšanas režīmā. Žurnāla dublējumkopijas ir noderīgākas profilaksei un apkopei pēc atkopšanas.
J: Kad man jāsazinās ar Microsoft atbalsta dienestu?
A: Sazinieties ar Microsoft atbalsta dienestu kritiskām ražošanas sistēmām, kurās iebūvētās atkopšanas metodes neizdodas, ja jums ir aizdomas par SQL Server programmatūras kļūdas, sarežģītiem Always On vai klasterizācijas scenārijiem vai gadījumos, kad uzņēmuma vidē ir nepieciešama garantēta datu atgūšana ar minimālu dīkstāvi.
J: Kā es varu novērst datubāzu iestrēgšanu atkopšanas laikā?
A: Regulāri ieviesiet pilnas un žurnālu dublējumkopijas, uzraugiet un pārvaldiet VLF skaitu, nodrošiniet pietiekamu diska vietu, izmantojiet atbilstošas izslēgšanas procedūras, uzturiet aparatūras uzticamību, atspējojiet automātisko aizvēršanu ražošanas datubāzēs un regulāri veiciet DBCC CHECKDB darbības, lai laikus atklātu bojājumus.
J: Kas ir VLF un kāpēc tie ietekmē atveseļošanos?
A: Virtuālie žurnālfaili (VLF) ir iekšējie segmenti darījumu žurnālfailos. Pārāk daudz VLF (vairāk nekā 1,000) ievērojami palēnina atkopšanu, jo SQL Server katrs no tiem ir jāapstrādā atsevišķi. Pareizi žurnālfaila lieluma un palielināšanas iestatījumi palīdz uzturēt optimālu VLF skaitu.
J: Vai es varu atjaunot datus no dublējuma, kamēr datubāze tiek atjaunota?
A: Jūs nevarat atjaunot datubāzi, kas pašlaik ir atkopšanas režīmā. Jums ir jāgaida, līdz atkopšana ir pabeigta, vai jāaptur process. SQL Server pakalpojumu vai atjaunojiet to ar citu datubāzes nosaukumu. Steidzamos gadījumos apsveriet atjaunošanu ar jaunu datubāzes nosaukumu un pēc tam pārdēvējiet to, kad atkopšanas problēmas ir atrisinātas.
17. Secinājums un nākamie soļi
17.1 Galveno risinājumu kopsavilkums
Ja jūsu SQL Server datubāze tiek atjaunota, sāciet ar šīm pieejām šādā secībā:
- Pārbaudiet kļūdu žurnālus un uzraugiet progresu
- Ja progress ir vienmērīgs, gaidiet dabisku pabeigšanu
- Nepilnīgas atjaunošanas gadījumā izmantojiet funkciju ATJAUNOŠANA AR ATJAUNOŠANU
- Novērst darījumu žurnāla problēmas
- Palaidiet DBCC CHECKDB vai profesionālus rīkus korupcijas noteikšanai
- Smagos gadījumos apsveriet rezerves kopijas atjaunošanu
tilts SQL Server DAB atkopšanas situācijas tiek atrisinātas dažu stundu laikā, izmantojot šīs pārbaudītās metodes. Sarežģītos gadījumos nevilcinieties izmantot progresīvas metodes vai profesionālus rīkus.
17.2 Papildu resursi
Lai saņemtu papildu palīdzību:
- microsoft SQL Server Dokumentācija
- SQL Server Kopienas forumos
- Datu bāzu administrēšanas emuāri un tehniskie resursi
- Profesionāli datubāzes atjaunošanas pakalpojumi
Regulāra apkope un uzraudzība novērš lielāko daļu atkopšanas problēmu. Ieviesiet šajā rokasgrāmatā izklāstītās preventīvās prakses, lai samazinātu MS SQL atkopšanas problēmu rašanos nākotnē.
par autoru
Juaņs Šens ir vecākais datubāzes administrators (DBA) ar vairāk nekā 10 gadu pieredzi SQL Server vides un uzņēmumu datubāzu pārvaldību. Viņš ir veiksmīgi atrisinājis simtiem datubāzu atkopšanas scenāriju finanšu pakalpojumu, veselības aprūpes un ražošanas organizācijās.
Juaņa specializējas SQL Server datubāzu atjaunošana, augstas pieejamības risinājumi un veiktspējas optimizācija. Viņa plašā praktiskā pieredze ietver vairāku terabaitu datubāzu pārvaldību, Always On pieejamības grupu ieviešanu un automatizētu dublēšanas un atkopšanas stratēģiju izstrādi kritiski svarīgām biznesa sistēmām.
Izmantojot savu tehnisko pieredzi un praktisko pieeju, Juans koncentrējas uz visaptverošu rokasgrāmatu izveidi, kas palīdz datubāzu administratoriem un IT speciālistiem risināt sarežģītus jautājumus SQL Server efektīvi izaicina. Viņš seko līdzi jaunākajām tendencēm SQL Server laidieniem un Microsoft attīstītajām datubāzu tehnoloģijām, regulāri testējot atkopšanas scenārijus, lai nodrošinātu, ka viņa ieteikumi atspoguļo labāko praksi reālajā pasaulē.
Ir jautājumi par SQL Server atkopšanai vai nepieciešama papildu palīdzība datubāzes problēmu novēršanā? Juans laipni aicina atsauksmes un ieteikumi lai uzlabotu šos tehniskos resursus.









