Kaip pataisyti sugadintą duomenų bazę SQL Server [2022 vadovas]

  • Duomenų praradimas yra dažna problema, tačiau parodysime, kaip pataisyti sugadintą duomenų bazę SQL serveryje.
  • Ši problema gali kilti dėl paprasto failo perrašymo arba netyčinio ištrynimo, virusinių infekcijų ir neteisingos konfigūracijos.
  • Sugedus saugyklos įrenginiui, failai gali būti sugadinti, įskaitant SQL duomenų bazę.
Kaip pataisyti sugadintą duomenų bazę SQL serveryje

Žinoma, dėl akivaizdžių priežasčių apmaudu aptikti sugadintą duomenų bazę SQL serveryje. Negalite pasiekti informacijos ir jūsų darbas sustoja.

Tačiau yra daug būdų, kaip išspręsti šią problemą rankiniu būdu arba naudojant išmanųjį, tam skirtą trečiosios šalies įrankį, vadinamą Atkūrimo įrankių rinkinys, skirtas SQL serveriui.

Tačiau prieš pradėdami trikčių šalinimą supraskime ir šiek tiek ištirkime, kodėl ši problema iškyla.

Kas yra SQL serveris ir kaip galime identifikuoti duomenų bazę?

SQL serveris yra „Microsoft“ sukurta duomenų bazių sistema, naudojama kitų programų duomenims valdyti, saugoti ir gauti.

Yra trijų tipų failai, skirti duomenims saugoti ir tvarkyti SQL serveryje: pirminiai failai (su plėtiniu .MDF), antriniai failai (su plėtiniu .NDF) ir žurnalo failai (su plėtiniu .LDF).

Mus ypač domina tie MDF failai, nes būtent juose yra saugoma duomenų bazė.

Kodėl duomenų bazė sugadinama SQL serveryje?

Yra daug galimų priežasčių, kodėl jūsų SQL serverio duomenų bazė gali būti sugadinta: nuo paprasto failo perrašymo ar atsitiktinio failo ištrynimo iki virusinių infekcijų ir neteisingos konfigūracijos.

Panagrinėkime kai kurias dažniausiai pasitaikančias šios problemos priežastis:

  • Failo perrašymas – Jei per klaidą rašote per esamą MDF failą, rizikuojate sugadinti duomenų bazę
  • Bandoma atrakinti SQL duomenų bazę - Jei tu pamiršote SQL slaptažodį ir per daug kartų įveskite neteisingai, tai gali sukelti SQL serverio sugadinimą
  • Jūsų saugojimo disko gedimas – Savaime suprantama, kad disko gedimas gali sugadinti failus, įskaitant duomenų bazę
  • Problemos su SQL duomenų bazės konfigūracija – Jei pasikeičia SQL konfigūracija, tai gali išjungti prieigą prie MDF failų
  • Viruso infekcija – Tai dažna bet kokių failų sugadinimo problema, ne tik SQL duomenų bazės failai ir net jei pašalinsite virusą naudodami geriausias antivirusines programas, deja, vis tiek galite prarasti kai kuriuos duomenis
  • SQL vidinės klaidos – Nors tai yra stiprus sprendimas, jame vis tiek gali būti klaidų, kurios gali sukelti MDF failų sugadinimą

Atsižvelgiant į tai, vadovaukitės mūsų nuosekliu vadovu, kad sužinotumėte, kaip pataisyti SQL duomenų bazės failą SQL serveryje.

Kaip pataisyti sugadintą duomenų bazę SQL serveryje?

Pastabos piktograma
PASTABA

Pastaba: Prieš ką nors pradėdami, sukurkite atsarginę SQL bibliotekos kopiją.

1. Iš naujo paleiskite SQL serverį

  1. Atidarykite terminalą ir įveskite šią komandą, kad sustabdytumėte SQL serverį: systemctl mysql stop
  2. Norėdami patikrinti SQL serverio būseną, įveskite šią komandą ir paspauskite Įeikite: būsena mysql.service
  3. Dabar iš naujo paleiskite SQL serverį, terminale atlikdami šią komandą: iš naujo paleiskite mysql.service

Kartais galite išspręsti problemą tiesiog iš naujo paleisdami SQL serverį. Žinoma, tai neveikia kiekvieną kartą, bet tai taip paprasta atlikti, kad atlikti nepakenktų.

2. Pataisykite sugadintą stalą

  1. Paleiskite SQL serverį.
  2. Įveskite šią komandą ir paspauskite Įeikite paleisti: PATIKRINTI LENTELĘ_lentelės_pavadinimas;
  3. Jei ji aptinka kokių nors problemų su lentele, įveskite šią komandą ir paspauskite Įeikite: REPAIR TABLE_lentelės_pavadinimas;

TAISYMO LENTELĖ padės jums pataisyti lentelę ir tą patį galite padaryti su kitomis sugadintomis lentelėmis, tačiau tokiu būdu galite prarasti kai kuriuos lentelės duomenis.

3. Naudokite komandą mysqlcheck

  1. Atidarykite terminalą ir įveskite arba įklijuokite šią komandą, kad pasiektumėte duomenų bazės aplanką ir paspauskite Įeikite: cd /var/lib/mysql
  2. Dabar įveskite šią komandą, kad patikrintumėte lentelę, ir paspauskite Įeikite. Būtinai pakeiskite ir su tikrais vardais: mysqlcheck
  3. Jei gaunate pranešimą, kad lentelė sugadinta, įveskite šią komandą, kad ją pataisytumėte, ir paspauskite Įeikite: mysqlcheck -r

4. Naudokite komandas ALTER TABLE

  1. Įveskite šią komandą, kad patikrintumėte lentelės tipą (mūsų atveju tai yra MyISAM lentelė): RODYTI KURTI LENTELĘ ;
  2. Norėdami atkurti lentelę, įveskite šią komandą ir paspauskite Įeikite: PAKEISTI LENTELĘ VARIKLIS = MyISAM;
  3. Jei turite InnoDB duomenų bazę, įveskite šią komandą: PAKEISTI LENTELĘ VARIKLIS = InnoDB;
Skaitykite daugiau apie šią temą
  • Atsisiųskite ir įdiekite „Microsoft SQL Server 2019“.
  • Geriausia SQL serverio atsarginė programinė įranga [nemokama ir mokama]
  • Kaip apsaugoti SQL serverio duomenų bazę

5. Pataisykite duomenų bazę naudodami atkūrimo įrankių rinkinį, skirtą SQL serveriui

  1. Eikite į „SQL Server“ skirtą atkūrimo įrankių rinkinį ir spustelėkite parsisiųsti mygtuką.
  2. Pasirinkę kalbą ir sutikę su licencijos sutartimi, įdiekite programą.
  3. Spustelėkite Baigti Norėdami paleisti SQL Server MDF taisymo įrankį.
  4. Pasirinkite sugadintą *.mdf failą spustelėdami šaltinio aplanko piktogramą.
  5. Pasirinkę, spustelėkite Kitas mygtuką.
  6. Dabar galėsite peržiūrėti duomenis, kuriuos galima gauti iš sugadintos Microsoft SQL Server duomenų bazės. Spustelėkite Pirmyn Microsoft SQL MDF atkūrimo įrankio lange, kad pradėtumėte procesą.
  7. Dabar tereikia pasirinkti duomenų eksportavimo metodą. Galite išsaugoti kaip SQL scenarijai į diską ir netgi vykdyti SQL scenarijų tiesiai duomenų bazėje.
  8. Galiausiai pasirinkite, kokius duomenis norite išsaugoti, ir spustelėkite Pradėti atkūrimą.

Taigi, tai yra kaip taisyti SQL serverio duomenų bazės failus su šia paprasta ir veiksminga priemone. Kaip matote, darbas bus atliktas daug greičiau.

The MS SQL serverio atkūrimo įrankis taip pat padės, jei susiduriate su šiomis MDF duomenų bazės problemomis:

  • „Microsoft SQL Server“ klaida 5172 – Ypatybė FILE SIZE yra neteisinga
  • SQL serveris aptiko loginiu nuoseklumu pagrįstą įvesties / išvesties klaidą – Tai neteisinga kontrolinė suma, kitaip žinoma kaip 824 klaida SQL serveryje
  • Indekso paskirstymo žemėlapio (IAM) puslapį nurodo kitas IAM puslapio žymeklis – Tai gana dažna problema
  • Įvesties / išvesties klaida, blogas puslapio ID, aptiktas nuskaitant poslinkį 0x###### faile FileName.mdf – Tai neatrodo dažnai, bet vis tiek galite tai pataisyti naudodami šį mažą įrankį
  • Atrodo, kad failas buvo sutrumpintas dėl operacinės sistemos klaidos – Greičiausiai dėl konfigūracijos problemos
  • Žurnalo įrašo ID įvyko klaida – Tai įvyksta pakartotinai atliekant užregistruotą operaciją duomenų bazėje

Tiesą sakant, naudojant atkūrimo įrankių dėžę, skirtą SQL serveriui, pataisykite visus sugadintų .mdf failų objektus, įskaitant duomenų tipus, lentelę. langelių duomenys, rodiniai, saugomos procedūros, tinkintos funkcijos, paleidikliai, indeksai, pirminiai ir išoriniai raktai, apribojimai ir kiti.

Didelis privalumas yra tai, kad sutaisytus duomenis galite sklandžiai eksportuoti tiesiai į Microsoft SQL Server iš programos.

Tai štai! Dabar žinote, kaip pataisyti SQL serverio duomenų bazę rankiniu būdu arba naudojant tam skirtą įrankį.

Jei žinote papildomų metodų ar turite klausimų, lauksime jų komentarų skiltyje žemiau.

Ištaisykite „Microsoft SQL Server“ klaidą 18456 [Vartotojui nepavyko prisijungti]

Ištaisykite „Microsoft SQL Server“ klaidą 18456 [Vartotojui nepavyko prisijungti]Sql Serveris

Išbandykite šiuos paprastus pataisymus, jei pasirodys „Microsoft SQL Server“ klaida 18456„Microsoft SQL Server Error 18456“ jūsų sistemoje gali įvykti dėl daugelio priežasčių.Klaida gali sukelti pr...

Skaityti daugiau
Pataisymas: bendrosios funkcijos klaida vykdant užklausą

Pataisymas: bendrosios funkcijos klaida vykdant užklausąSql Serveris

Daugeliu atvejų GROUP BY sąlygos įtraukimas yra labai efektyvusSuvestinės funkcijos klaida SQL įvyksta, kai bandote naudoti sumavimo funkciją tokiu būdu, kurio nepalaiko SQL kalba.Klaida gali atsir...

Skaityti daugiau
Kas yra Mysqld.exe ir kaip pataisyti didelį procesoriaus naudojimą

Kas yra Mysqld.exe ir kaip pataisyti didelį procesoriaus naudojimąSql Serveris„Windows 11“

Koreguokite MySQL konfigūraciją arba atnaujinkite MySQL serverįMysqld.exe yra MySQL serverio dalis „Oracle“ programinės įrangos kūrėjo sukurta programinė įranga.Kai kompiuteryje paleisite MySQL pro...

Skaityti daugiau