Bendrinti dabar:
Turinys paslėpti

Kai jūsų SQL duomenų bazė užstringa atkūrimo laukiančioje būsenoje, ji tampa nepasiekiama ir jos veikimas sustabdomas. Šiame išsamiame vadove pateikiami 15 patikrintų metodų, kaip išspręsti SQL duomenų bazės atkūrimo laukiančias problemas – nuo ​​paprasto paleidimo iš naujo iki sudėtingų avarinių taisymų.

1. SQL duomenų bazės atkūrimo laukiančios būsenos supratimas

Prieš bandant bet kokius taisymus, labai svarbu suprasti, kas sukelia SQL duomenų bazės atkūrimo problemas, kad pasirinktumėte tinkamą sprendimą.

1.1 Ką reiškia „laukiama išieškojimo“?

Laukiamas išieškojimas rodo, kad SQL Server atpažįsta, kad duomenų bazę reikia atkurti, bet negali pradėti atkūrimo proceso. Kitaip nei „Atkuriama“, kuri rodo aktyvų atkūrimą, „Laukiama atkūrimo“ reiškia, kad atkūrimą blokuoja kliūtis.

SQL Server duomenų bazė yra atkūrimo laukiamos būsenos.

Pagrindinės duomenų bazės būsenos apima:

  • ONLINE – Įprasta darbinė būsena
  • ATGAVIMAS – Atkūrimo procesas aktyviai vyksta
  • LAUKIAMA IŠIEŠKOJIMO – Atkūrimo pradžia negalima
  • ĮTARIMAS – Duomenų bazėje yra kritinių klaidų
  • SKUBUS ATVĖJIS – Ribota skaitymo prieiga remontui
  • OFFLINE – Rankiniu būdu atjungtas nuo interneto

1.2 Dažniausios SQL duomenų bazės atkūrimo laukiančios priežastys

Laukiančios SQL duomenų bazės atkūrimo problemos paprastai kyla dėl šių dažnų priežasčių:

  • Trūkstami arba sugadinti operacijų žurnalo failai (LDF)
  • Nepakanka vietos diske atkūrimo operacijų metu
  • Aparatinės įrangos gedimai ir netikėti sistemos išsijungimai
  • Sugadinti MDF duomenų bazės failai
  • Failo leidimų problemos, neleidžiančios pasiekti
  • SQL Server paslaugos paleidimo laiko problemos
  • FILESTREAM konfigūracijos klaidos
  • Neteisingi failų keliai po serverio perkėlimo

1.3 Kaip patikrinti duomenų bazės būseną

Patikrinkite duomenų bazės būseną šiais metodais:

Naudojant SQL Server Valdymo studija:

  1. Prisijunkite prie savo SQL Server pavyzdys
  2. Plėsti Duomenų bazės folder
  3. Ieškokite duomenų bazių, kuriose rodoma būsena „(Laukiama atkūrimo)“

SQL Server duomenų bazė yra atkūrimo laukiamos būsenos.

Naudojant T-SQL komandą:

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

2. Pradiniai diagnostikos žingsniai

Prieš bandant atkurti SQL duomenų bazę ir atlikti laukiančius taisymus, būtina atlikti tinkamą diagnostiką.

2.1 Patikrinkite SQL Server Klaidų Naujienos

Klaidų žurnaluose pateikiama svarbi informacija apie tai, kas sukėlė atkūrimo laukiamą būseną.

  1. Atviras SQL Server Vadybos studija
  2. Eikite į valdymas -> SQL Server Naujienos
  3. Dukart spustelėkite dabartinį žurnalą, kad peržiūrėtumėte naujausias klaidas
  4. Ieškokite su jūsų duomenų baze susijusių klaidų pranešimų

Tikrinimas SQL Server klaidų žurnalai apie naujausias su jūsų duomenų baze susijusias klaidas.

Arba naudokite T-SQL:

EXEC sp_readerrorlog;

2.2 Patikrinkite „Windows“ įvykių žurnalus

  1. spauda "Windows" raktas + R
  2. Tipas eventvwr.msc ir paspauskite Enter
    Atidarykite „Windows“ įvykių peržiūros programą.
  3. Eikite į "Windows Naujienos -> sistema bei taikymas
  4. Ieškoti SQL Server susijusios klaidos maždaug tuo metu, kai kilo problema

Įvykių peržiūros programoje ieškokite SQL Server susijusios klaidos, kurios gali sukelti SQL duomenų bazės atkūrimo problemą.

2.3 Patikrinkite failo prieinamumą

  1. Eikite į savo duomenų bazės failų vietas
  2. Patikrinkite, ar egzistuoja ir MDF, ir LDF failai
  3. Patikrinkite, ar diskai yra prijungti prie interneto ir pasiekiami
  4. Įsitikinkite, kad tinklo diskai tinkamai prijungti

3. 1 pataisymas: paleiskite iš naujo SQL Server Paslaugos

Iš naujo paleiskite SQL Server paslaugos išsprendžia daugelį SQL duomenų bazės atkūrimo problemų, kylančių dėl laiko problemų arba laikinų išteklių konfliktų.

3.1 Kada veikia paslaugos paleidimas iš naujo

Šis metodas veiksmingas šiais atvejais:

  • Laikinas išteklių blokavimas paleidimo metu
  • Disko prieinamumo vėlavimai
  • Paslaugų priklausomybės laiko problemos
  • Nedideli konfigūracijos konfliktai

3.2 Kaip paleisti iš naujo SQL Server Paslaugos

Metodas 1: SQL Server Konfigūracijos tvarkyklė

  1. Atviras SQL Server Konfigūracijos tvarkyklė
  2. Spauskite SQL Server Paslaugos
  3. Dešiniuoju pelės klavišu spustelėkite SQL Server pavyzdžiui, pvz. SQL Server (MSSQLSERVER)
  4. pasirinkti Iš naujo
  5. Palaukite, kol paslauga visiškai bus paleista iš naujo

Paleiskite iš naujo SQL Server paslauga SQL Server „Configuration Manager“.

2 metodas: Paslaugų konsolė

  1. spauda "Windows" raktas + R
  2. Tipas services.msc ir paspauskite Enter
    Atidarykite „Windows“ paslaugų konsolę.
  3. Ieškoti SQL Server pavyzdžiui, pvz. SQL Server (MSSQLSERVER)
  4. Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite Iš naujo

Paleiskite iš naujo SQL Server paslauga paslaugų konsolėje, kad išspręstumėte laukiančią SQL duomenų bazės atkūrimo problemą.

3 būdas: „PowerShell“.

Restart-Service -Name "MSSQLSERVER" -Force

3.3 Patikrinimas po paleidimo iš naujo

  1. Palaukite 2–3 minutes, kol visiškai įsijungs
  2. Patikrinkite duomenų bazės būseną SSMS
  3. Patikrinkite klaidų žurnalus, ar nėra naujų pranešimų
  4. Patikrinkite duomenų bazės ryšį

4. 2 pataisymas: patikrinkite ir išspręskite disko vietos problemas

Nepakankama disko vieta yra dažna SQL duomenų bazės atkūrimo problemų priežastis. Atkūrimo operacijoms reikia papildomos vietos laikiniesiems failams ir žurnalų augimui.

4.1 Disko vietos problemų nustatymas

  1. Atviras failo Explorer "
  2. Naršyti diskus, kuriuose yra duomenų bazės failai
  3. Patikrinkite laisvą vietą
  4. Užtikrinkite bent 10–20 % laisvos vietos atkūrimo operacijoms

4.2 Disko vietos atlaisvinimas

  1. Ištrinkite nereikalingus laikinus failus
  2. išvalyti SQL Server atsarginių kopijų failus, jei trūksta vietos
  3. Perkelkite nebūtinus failus į kitus diskus
  4. Jei įmanoma, sumažinkite kitus duomenų bazės failus

Sumažinti duomenų bazės failus (naudokite atsargiai):

DBCC SHRINKFILE (logicalfilename, target_size);

4.3 Duomenų bazės įjungimas po vietos pataisymo

Kai bus laisvos vietos, pabandykite duomenų bazę prijungti prie interneto:

ALTER DATABASE [DatabaseName] SET ONLINE;

5. 3 pataisymas: Nustatykite SQL Server Paslauga atidėtam startui

nustatymas SQL Server Atidėtas paleidimas išsprendžia SQL duomenų bazės atkūrimo problemas, kylančias dėl to, kad saugojimo sistemos arba tinklo diskai nėra paruošti sistemos paleidimo metu.

5.1 Laiko problemų supratimas

Laiko problemos kyla, kai:

  • SAN arba tinklo saugyklos inicijavimas užtrunka
  • Disko raidės nepriskiriamos ankstyvo paleidimo metu
  • Tinklo diskams reikalingas autentifikavimas
  • Saugojimo valdikliams reikia inicijavimo laiko

5.2 Uždelsto paleidimo konfigūravimas

  1. spauda "Windows" raktas + R
  2. Tipas services.msc ir paspauskite Enter
    Atidarykite „Windows“ paslaugų konsolę.
  3. Ieškoti SQL Server pavyzdžiui, pvz. SQL Server (MSSQLSERVER)
  4. Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite Skelbimų
  5. pokytis Paleisties tipas į Automatinis (Atidėta pradžia)
    pokytis SQL Server Paleidimo tipą nustatykite į Automatinis (atidėtas paleidimas), kad išspręstumėte SQL duomenų bazės atkūrimo problemą.
  6. Spauskite OK
  7. Paleiskite sistemą iš naujo, kad patikrintumėte

5.3 Alternatyvūs laiko nustatymo sprendimai

Norėdami geriau valdyti, sukurkite suplanuotą užduotį:

  1. Atviras Task Scheduler
  2. Spauskite Veiksmas -> Sukurti pagrindinę užduotį
  3. Įveskite Jūsų vardas bei Aprašymas užduoties, pvz., „Atidėti užduoties pradžią“ SQL Server paslauga“
  4. Nustatyti Sukelti į Kai paleidžiamas kompiuteris
  5. Nustatyti Veikla į Pradėti programos
  6. Nustatyti Programa / Scenarijaus iki pilno kelio Sqlservr.exe, štai taip: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe. Jį galite rasti naudodami „Windows“ paieškos funkciją.
  7. Pabaigos puslapyje pasirinkite Spustelėjus Baigti, atidarykite šios užduoties dialogo langą Ypatybės.
    Sukurkite užduotį su atidėtu paleidimu SQL Server „Windows“ užduočių planuoklėje.
  8. Spauskite apdaila.
  9. Užduoties ypatybių dialogo lange spustelėkite Trigeriai kortelė
  10. Pasirinkite gaiduką ir spustelėkite Redaguoti
    Redaguokite užduoties paleidiklį užduoties ypatybių dialogo lange.
  11. Išplėstiniuose nustatymuose pažymėkite Atidėti užduotį: ir nustatykite laiką į 3 minutes.
    Nustatykite užduoties paleidimo atidėjimą po 3 minučių, kad išspręstumėte SQL duomenų bazės atkūrimo laukiančios klaidos pranešimą.
  12. Spauskite Gerai.

6. 4 pataisymas: failų leidimų ir prieigos teisių taisymas

Leidimų problemos neleidžia SQL Server prieigos prie duomenų bazės failų, dėl to SQL duomenų bazės atkūrimas laukia būsenos. Tinkamos failų teisės yra būtinos duomenų bazės operacijoms.

6.1 Dažnos leidimų problemos

  • SQL Server Paslaugos paskyrai trūksta failų prieigos teisių
  • Antivirusinė programa blokuoja prieigą prie failų
  • Pakeista saugumo politika
  • Tinklo bendrinimo leidimų problemos

6.2 Aplankų teisių taisymas

  1. Eiti į duomenų bazės failų aplanką
  2. Dešiniuoju pelės mygtuku spustelėkite aplanką ir pasirinkite Skelbimų
  3. Spustelkite saugumas kortelė
  4. Spauskite Redaguoti
  5. Pridėti SQL Server paslaugos paskyra, jei jos nėra
  6. Dotacijos Pilnas valdymas Leidimai
  7. Spauskite OK pritaikyti pakeitimus

Patikrinkite ir pataisykite leidimą SQL Server paslaugos paskyra SQL Server duomenų aplankas.

Naudojant komandinę eilutę (icacls):

icacls "C:\Data" /grant "NT SERVICE\MSSQLSERVER":F /T

6.3 Paslaugų paskyros aspektai

Patikrinkite SQL Server paslaugos paskyra:

  1. Atviras SQL Server Konfigūracijos tvarkyklė
  2. Spauskite SQL Server Paslaugos
  3. Pastaba Prisijungti kaip sąskaita SQL Server
  4. Įsitikinkite, kad ši paskyra turi tinkamus leidimus

Patikrink SQL Server paslaugos paskyrą, kad išspręstumėte laukiančią SQL duomenų bazės atkūrimo problemą.

7. 5 pataisymas: rankinis failo kelio taisymas

Failo kelio problemos kyla, kai perkeliami duomenų bazės failai arba keičiamos disko raidės. Šis metodas atnaujina SQL Servervidinės failų nuorodos neperkeliant pačių failų.

7.1 Kai kyla kelio problemų

  • Serverio aparatinės įrangos pakeitimai
  • Disko raidės perkėlimas
  • Tinklo kelio modifikacijos
  • Duomenų bazės failų perkėlimas

7.2 Failų kelių taisymas

  1. Nustatykite dabartinius failų kelius klaidų žurnaluose
  2. Raskite faktinius duomenų bazės failus
  3. Keliams atnaujinti naudokite ALTER DATABASE

Atnaujinti duomenų failo kelią:

ALTER DATABASE [DatabaseName] 
MODIFY FILE (NAME = 'LogicalDataFileName', FILENAME = 'C:\NewPath\DatabaseName.mdf');

Atnaujinimo žurnalo failo kelias:

ALTER DATABASE [DatabaseName] 
MODIFY FILE (NAME = 'LogicalLogFileName', FILENAME = 'C:\NewPath\DatabaseName_Log.ldf');

7.3 Patvirtinimo žingsniai

  1. Iš naujo SQL Server tarnyba
  2. Patikrinkite duomenų bazės būseną
  3. Patikrinkite klaidų žurnalus, ar nėra su keliu susijusių pranešimų
  4. Patikrinkite duomenų bazės ryšį

8. 6-as pataisymas: duomenų bazės priskyrimas prie interneto, o tada jo priskyrimas prie interneto

Šis paprastas būsenos pakeitimas gali išspręsti nedideles SQL duomenų bazės atkūrimo problemas, priversdamas atlikti švarų būsenos perėjimą ir išvalydamas laikinus užraktus.

8.1 Kada šis metodas veikia

  • Nedideli valstybės neatitikimai
  • Laikini išteklių užraktai
  • Paprastas atkūrimo procesas atstatomas
  • Nekritinės klaidos sąlygos

8.2 Procedūra neprisijungus / internetu

  1. Įsitikinkite, kad nėra aktyvių ryšių su duomenų baze
  2. Vykdykite neprisijungus veikiančią komandą
  3. Palaukite kelias sekundes
  4. Vykdykite komandą internete

Saugus metodas (laukiama, kol bus uždaryti ryšiai):

ALTER DATABASE [DatabaseName] SET OFFLINE;
ALTER DATABASE [DatabaseName] SET ONLINE;

Tiesioginis metodas (nutraukia ryšius):

ALTER DATABASE [DatabaseName] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [DatabaseName] SET ONLINE;

8.3 Rizika ir svarstytini dalykai

Įspėjimas: Naudojant ROLLBACK IMMEDIATE, gali būti prarasti duomenys dėl nepatvirtintų operacijų. Naudokite tik tada, kai būtina, ir įsitikinkite, kad vartotojai yra atsijungę.

9. 7 pataisymas: išjunkite automatinio uždarymo funkciją

AUTOMATINIO UŽDARYMO funkcija gali sukelti SQL duomenų bazės atkūrimo problemų, kai duomenų bazės dažnai atidaromos ir uždaromos, todėl atkūrimo operacijų metu gali kilti laiko konfliktų.

9.1 Automatinio uždarymo poveikio supratimas

  • Duomenų bazė užsidaro po paskutinio vartotojo atsijungimo
  • Reikia atkurti kiekvieną kartą atidarant duomenų bazę
  • Sukuria dažnus atsigavimo ciklus
  • Gali trukdyti kitoms operacijoms

9.2 Automatinio uždarymo išjungimas

Naudojant T-SQL:

ALTER DATABASE [DatabaseName] SET AUTO_CLOSE OFF;

Naudojant SQL Server Valdymo studija:

  1. Dešiniuoju pelės mygtuku spustelėkite duomenų bazę
  2. pasirinkti Skelbimų
  3. Eiti į Nustatymai puslapis
  4. Nustatyti Automatinis uždarymas į Klaidingas
  5. Spauskite OK

Išjungti automatinio uždarymo savybę SQL Server duomenų bazėje SQL Server „Management Studio“, skirta išspręsti SQL duomenų bazės atkūrimo problemą.

9.3 Susiję AUTO nustatymai

Taip pat apsvarstykite galimybę išjungti AUTO_SHRINK, kad pagerintumėte našumą:

ALTER DATABASE [DatabaseName] SET AUTO_SHRINK OFF;

10. 8 pataisymas: ištrinkite sugadintą žurnalo failą ir paleiskite iš naujo

Šis metodas veikia, kai operacijų žurnalo failas yra smarkiai sugadintas ir jo neįmanoma pataisyti. Jis turėtų būti naudojamas tik kūrimo aplinkoje arba kai duomenų praradimas yra priimtinas.

10.1 Kada tinkama ištrinti žurnalą

⚠️ SVARBUS ĮSPĖJIMAS: Šis metodas sukelia duomenų praradimą!

Naudokite tik tada, kai:

  • Darbas su kūrimo / testavimo duomenų bazėmis
  • Žurnalo failas yra visiškai sugadintas
  • Kitų atkūrimo parinkčių nėra
  • Naujausios atsarginės kopijos yra prieinamos

10.2 Žurnalo failų trynimo procedūra

  1. Stop SQL Server visiškai aptarnauti
  2. Eiti į duomenų bazės failo vietą
  3. Ištrinkite .LDF failą (išsaugokite .MDF failą)
  4. pradžia SQL Server tarnyba
  5. SQL Server automatiškai sukurs naują žurnalo failą

10.3 Svarbūs įspėjimai

Duomenų praradimo pasekmės:

  • Visos nepatvirtintos operacijos prarandamos visam laikui
  • Žurnalų grandinė nutrūkusi – diferencinės atsarginės kopijos negalioja
  • Atsigavimas konkrečiu momentu tampa neįmanomas
  • Naudoti tik ne gamybinėje aplinkoje

11. 9 pataisymas: duomenų bazės atjungimas ir prijungimas iš naujo

Jėgų atjungimas ir prijungimas SQL Server atkurti trūkstamus arba sugadintus žurnalo failus. Šis metodas gali išspręsti SQL duomenų bazės atkūrimo problemas, kai žurnalo failai yra problemiški.

11.1 Kada veikia atjungimas / pakartotinis prijungimas

  • Trūkstami žurnalo failai
  • Sugadintos žurnalo failų antraštės
  • Žurnalo failo kelio pakeitimai
  • Paprasti korupcijos scenarijai

11.2 Standartinė atjungimo / pakartotinio prijungimo procedūra

  1. Pirmiausia nustatykite duomenų bazę į avarinį režimą
  2. Perjungti į kelių vartotojų režimą
  3. Atjungti duomenų bazę
  4. Pritvirtinkite iš naujo naudodami tik MDF failą
-- Set to emergency mode
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET MULTI_USER;

-- Detach database
EXEC sp_detach_db '[DatabaseName]';

-- Re-attach with single file (MDF only)
EXEC sp_attach_single_file_db 
    @DBName = '[DatabaseName]', 
    @physname = N'C:\Data\DatabaseName.mdf';

11.3 Alternatyvūs prijungimo būdai

Kelių failų scenarijams:

CREATE DATABASE [DatabaseName] 
ON (FILENAME = 'C:\Data\DatabaseName.mdf'),
   (FILENAME = 'C:\Data\DatabaseName_2.ndf')
FOR ATTACH;

12. 10 pataisymas: Atkurkite operacijų žurnalo failus

Žurnalo atkūrimas sukuria naują operacijų žurnalo failą, kai originalus failas yra prarastas arba nepataisomai sugadintas. Šis metodas išsprendžia SQL duomenų bazės atkūrimo problemas, tačiau prarandami duomenys.

12.1 Kada reikia atkurti rąstus

  • Trūkstami LDF failai po aparatinės įrangos gedimo
  • Labai sugadinti operacijų žurnalai
  • Žurnalo failo kelio pakeitimai, kurių negalima ištaisyti
  • Avarinės atkūrimo situacijos

12.2 Žurnalo atkūrimo procesas

⚠️ ĮSPĖJIMAS: Dėl to prarandami duomenys!

  1. Nustatyti duomenų bazę į avarinį režimą
  2. Naudokite REBUILD LOG komandą
  3. Nurodykite naują žurnalo failo vietą
  4. Duomenų bazės prijungimas prie interneto
ALTER DATABASE [DatabaseName] SET EMERGENCY;
GO

ALTER DATABASE [DatabaseName] REBUILD LOG ON 
(NAME = 'DatabaseName_Log', FILENAME = 'C:\Logs\DatabaseName_Log.ldf');
GO

ALTER DATABASE [DatabaseName] SET ONLINE;
GO

12.3 Duomenų praradimo pasekmių supratimas

Žurnalo atkūrimo priežastys:

  • Visų nepatvirtintų operacijų praradimas
  • Sugadinti žurnalo sekos numeriai
  • Negalėjimas taikyti vėlesnių žurnalų atsarginių kopijų
  • Atsigavimas konkrečiu momentu tampa neįmanomas

13. 11-as pataisymas: avarinio režimo taisymas naudojant DBCC CHECKDB

Avarinio režimo taisymas yra kraštutinė priemonė SQL duomenų bazės atkūrimui, kai kyla problemų dėl sugadinimo. Šis metodas gali atkurti duomenų bazes, tačiau gali prarasti daug duomenų.

13.1 Avarinio režimo supratimas

⚠️ YPATINGAS ĮSPĖJIMAS: Didelė duomenų praradimo rizika!

Naudokite avarinį režimą tik tada, kai:

  • Visi kiti metodai nepavyko
  • Nėra jokių naujausių atsarginių kopijų
  • Kai kurių duomenų atkūrimas yra geresnis nei visiškas praradimas
  • Duomenų bazė yra kritiškai sugadinta

13.2 Avarinio remonto procedūra

  1. Pirmiausia padarykite sugadintų duomenų bazės failų atsargines kopijas
  2. Nustatyti duomenų bazę į avarinį režimą
  3. Perjungti į vieno vartotojo režimą
  4. Paleiskite CHECKDB su taisymo parinktimi
  5. Grįžti į kelių vartotojų režimą
-- Step 1: Set to emergency mode
ALTER DATABASE [DatabaseName] SET EMERGENCY;
GO

-- Step 2: Single user mode
ALTER DATABASE [DatabaseName] SET SINGLE_USER;
GO

-- Step 3: Repair with no data loss
DBCC CHECKDB ([DatabaseName], REPAIR_REBUILD) WITH ALL_ERRORMSGS;
GO

-- Step 4: Return to multi-user
ALTER DATABASE [DatabaseName] SET MULTI_USER;
GO

13.3 Įvertinimas po remonto

  1. Peržiūrėkite CHECKDB išvestį, ar nėra taisymo veiksmų
  2. Patikrinkite, ar nėra trūkstamų lentelių ar duomenų
  3. Patikrinkite svarbias programos funkcijas
  4. Apsvarstykite galimybę atkurti duomenis iš atsarginės kopijos, jei prarasta per daug duomenų

14. 12 pataisymas: patikrinkite ir pataisykite „FILESTREAM“ konfigūraciją

„FILESTREAM“ konfigūracijos problemos gali sukelti SQL duomenų bazės atkūrimo problemų. Šis metodas skirtas spręsti su „FILESTREAM“ susijusias atkūrimo problemas.

14.1 Su FILESTREAM susijusios atkūrimo problemos

  • FILESTREAM tvarkyklės ryšio gedimai
  • Konfigūracijos neatitikimai tarp SQL Server ir OS
  • Laiko problemos paleidžiant paslaugą
  • Leidimų problemos su FILESTREAM konteineriais

14.2 FILESTREAM trikčių šalinimas

  1. Patikrinkite FILESTREAM konfigūracijos lygį
  2. Patikrinkite, ar įjungta „Windows“ funkcija
  3. Iš naujo paleiskite reikalingas paslaugas
  4. Patikrinkite FILESTREAM konteinerio teises

Patikrinkite FILESTREAM konfigūraciją:

SELECT SERVERPROPERTY('FilestreamEffectiveLevel') AS CurrentLevel;

Įjungti FILESTREAM egzemplioriaus lygmeniu:

EXEC sp_configure 'filestream access level', 2;
RECONFIGURE;

14.3 FILESTREAM geriausia praktika

  • Užtikrinkite nuoseklią konfigūraciją po paleidimo iš naujo
  • Patikrinkite, ar FILESTREAM konteinerio keliai yra prieinami
  • Patikrinkite, ar tinkamai įjungta „Windows FILESTREAM“ funkcija
  • Stebėkite su FILESTREAM susijusius klaidų pranešimus

15. 13 pataisymas: atnaujinimas SQL Server Versija / pakeitimų paketai

Vyresnis SQL Server versijose, ypač RTM leidimuose, yra žinomų klaidų, kurios sukelia SQL duomenų bazės atkūrimo problemas. Atnaujinimas į naujausius pakeitimų paketus išsprendžia šias problemas.

15.1 Žinomos senesnių versijų problemos

  • SQL Server 2005 m. RTM atkūrimo klaidos
  • Konkretūs pakeitimų paketo pataisymai atkūrimo procesams
  • Kaupiamieji atnaujinimai, skirti kraštutiniams atvejams
  • Suderinamumo problemos su naujesnėmis „Windows“ versijomis

15.2 Atnaujinimo procesas

  1. Patikrinkite srovę SQL Server versija
  2. Raskite naujausią prieinamą pakeitimų paketą
  3. Atsisiųsti iš "Microsoft" atsisiuntimo centras External Link
  4. Planuoti techninės priežiūros laikotarpį
  5. Įdiekite pakeitimų paketą
  6. Paleisti paslaugas iš naujo
  7. Patikrinkite duomenų bazės funkcionalumą

Patikrinkite dabartinę versiją:

SELECT @@VERSION;

15.3 Patikrinimas po atnaujinimo

  1. Patvirtinkite, kad versijos numeris pakeistas
  2. Patikrinkite, ar visos duomenų bazės tinkamai veikia internete
  3. Atlikti pagrindinius funkcionalumo testus
  4. Stebėkite klaidų žurnalus, ar nėra naujų problemų

16. 14 pataisymas: duomenų bazės atkūrimas iš atsarginės kopijos

Kai SQL duomenų bazės atkūrimo problemų nepavyksta išspręsti taisymo metodais, atkūrimas iš žinomos, geros atsarginės kopijos yra patikimiausias sprendimas su nuspėjamomis duomenų praradimo ribomis.

16.1 Kai atsarginių kopijų atkūrimas yra sprendimas

  • Keli bandymai taisyti nepavyko
  • Svarbiausi gamybos duomenys reikalauja tikrumo
  • Yra priimtinas duomenų praradimo langas
  • Korupcija per didelė, kad būtų galima ją pataisyti

16.2 Visos duomenų bazės atkūrimo procesas

  1. Raskite naujausią naudojamą atsarginę kopiją
  2. Įsitikinkite, kad diske yra pakankamai vietos atkūrimui
  3. Prireikus išjunkite duomenų bazę arba ją išmeskite
  4. Atkurti iš atsarginės kopijos failo
  5. Jei įmanoma, taikyti žurnalų atsargines kopijas

Pagrindinis atkūrimas iš pilnos atsarginės kopijos:

RESTORE DATABASE [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName.bak'
WITH REPLACE;

Atkurti naudojant žurnalų atsargines kopijas, skirtas atkūrimui konkrečiu laiko momentu:

RESTORE DATABASE [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName_Log.trn'
WITH RECOVERY;

16.3 Patikrinimas ir bandymai

  1. Patikrinkite, ar duomenų bazė sėkmingai prisijungė prie interneto
  2. Patikrinkite duomenų vientisumą naudodami CHECKDB
  3. Kritinių programos funkcijų testavimas
  4. Patvirtinkite, kad atsarginė kopija / atkūrimas atliktas be klaidų

16.4 Nuoroda

Daugiau informacijos galite rasti mūsų išsamus vadovas, kaip sukurti atsargines kopijas ir atkurti duomenis SQL Server duomenų bazės.

17. 15-as pataisymas: profesionalūs SQL atkūrimo įrankiai

Kai rankiniai metodai nepadeda išspręsti SQL duomenų bazės atkūrimo problemų, specializuota atkūrimo programinė įranga gali išgauti duomenis iš smarkiai sugadintų duomenų bazių, kurių negalima pataisyti standartiniais metodais.

17.1 Kada verta apsvarstyti trečiųjų šalių įrankius

  • Sunkus korupcijos lygis, kurio neįmanoma taisyti rankiniu būdu
  • Svarbūs duomenys be atsarginių kopijų
  • Keli nesėkmingi rankinio taisymo bandymai
  • Laiko požiūriu kritiniai atkūrimo reikalavimai

17.2 DataNumen SQL Recovery

DataNumen SQL Recovery yra galingas SQL Server duomenų bazės atkūrimo įrankis.

Žemiau pateikiami naudojimo žingsniai:

  1. Sustabdykite SQL Server Aptarnavimas.
    Sustabdykite SQL Server paslauga paslaugų konsolėje.
  2. Padarykite duomenų bazės failų, esančių atkūrimo laukiančioje būsenoje, kopijas, įskaitant pagrindinį MDF failą ir antrinius NDF failus.
  3. Pradėk nuo SQL Server Aptarnavimas.
  4. pradžia DataNumen SQL Recovery.
  5. Pasirinkite kopiją, o ne originalų failą, kaip atkuriamos duomenų bazės šaltinį.
  6. Spustelėkite „Pradėti atkūrimą“ ir vykdykite instrukcijas, kad atkurtumėte duomenų bazę.
  7. Po atkūrimo proceso atsiras nauja atkūrimo duomenų bazė SQL Server kuriame yra visi atkurti duomenys.

Paskirtis DataNumen SQL Recovery pataisyti vieną sugadintą SQL Server MDF failą ir išspręskite SQL duomenų bazės atkūrimo laukiančios klaidos sprendimą.

18. Išplėstiniai trikčių šalinimo scenarijai

Sudėtingoms aplinkoms reikalingi specializuoti metodai, skirti išspręsti SQL duomenų bazės atkūrimo problemas.

18.1 Kelių duomenų bazės failų problemos

Duomenų bazės su keliais duomenų failais (NDF) reikalauja kruopštaus tvarkymo:

  • Nustatykite, kurios failų grupės yra paveiktos
  • Patikrinkite visų NDF failų prieinamumą
  • Apsvarstykite failų grupėms skirtas atkūrimo parinktis
  • Tinkamai tvarkykite tik skaitymui skirtas failų grupes

18.2 Visada įjungtos prieinamumo grupės

Laukiama SQL duomenų bazės atkūrimo visada aplinkose:

  • Pirmiausia patikrinkite pagrindinės replikos būseną
  • Patikrinkite sinchronizavimo būseną
  • Apsvarstykite galimybę pašalinti ir iš naujo pridėti probleminę repliką
  • Peržiūrėti prieinamumo grupės konfigūraciją

18.3 Klasterio ir didelio prieinamumo scenarijai

Laukiama SQL duomenų bazės atkūrimo perjungimo klasteris bei didelis prieinamumas scenarijai:

  • Patikrinkite bendros saugyklos prieinamumą
  • Patikrinkite klasterio mazgo ryšį
  • Peržiūrėti permetimo klasterio žurnalus
  • Užtikrinkite tinkamą DNS skiriamąją gebą

18.4 WMI ir sistemos lygio problemos

Sistemos lygio problemos gali sukelti duomenų bazės problemas:

  • WMI saugyklos sugadinimas
  • Nepavykę „Windows“ naujinimai
  • Registro sugadinimas
  • Paslaugų priklausomybės problemos

19. Prevencijos strategijos

Veiksmingiau užkirsti kelią SQL duomenų bazės atkūrimo laukiančioms problemoms, nei jas taisyti joms atsiradus.

19.1 Geriausia atsarginių kopijų kūrimo praktika

  1. Įdiekite automatinius pilnų atsarginių kopijų kūrimo tvarkaraščius
  2. Įprastų diferencinių atsarginių kopijų konfigūravimas
  3. Nustatykite dažnas operacijų žurnalo atsargines kopijas
  4. Reguliariai tikrinkite atsarginių kopijų atkūrimo procedūras
  5. Atsarginių kopijų laikymas atskirose saugojimo sistemose
  6. Patikrinkite atsarginės kopijos vientisumą naudodami „RESTORE VERIFYONLY“

19.2 Stebėjimas ir priežiūra

  1. Nustatykite disko vietos stebėjimo įspėjimus
  2. Suplanuoti įprastas DBCC CHECKDB operacijas
  3. monitorius SQL Server klaidų žurnalai kasdien
  4. Įgyvendinti našumo bazinio lygio stebėsena
  5. Nustatyti SQL Server Agento įspėjimai apie kritines klaidas

19.3 Infrastruktūros aspektai

  • Įdiekite UPS sistemas elektros energijos tiekimo apsaugai
  • Naudokite įmonės lygio saugyklą su pertekliumi
  • Įgyvendinkite tinkamas išjungimo procedūras
  • Užtikrinkite tinklo stabilumą bendrai saugyklai
  • Reguliarus aparatinės įrangos būklės stebėjimas

19.4 SQL Server Geriausia konfigūracijos praktika

  • Pasirinkite tinkamus atkūrimo modelius
  • Konfigūruokite protingus automatinio augimo nustatymus
  • Atskirkite duomenų ir žurnalų failus skirtinguose diskuose
  • Naudokite skirtas paslaugų paskyras su minimaliomis privilegijomis
  • laikyti SQL Server atnaujinta su naujausiais pakeitimų paketais

20. Sprendimų medžio ir metodologijos trikčių šalinimas

Susidūrę su SQL duomenų bazės atkūrimo problemomis, laikykitės šio sistemingo požiūrio.

20.1 Sisteminis diagnostikos metodas

  1. Pirmiausia patikrinkite klaidų žurnalus – Visada pradėkite nuo SQL Server ir „Windows“ žurnalai
  2. Patikrinkite failo prieinamumą – Įsitikinkite, kad visi duomenų bazės failai egzistuoja ir yra įskaitomi
  3. Patikrinkite vietos diske – Patvirtinkite, kad pakankamai vietos gelbėjimo operacijoms
  4. Pirmiausia išbandykite paprastus sprendimus – Paslaugos paleidimas iš naujo, neprisijungus / prisijungus
  5. Perėjimas prie sudėtingų remonto darbų – Tik po to, kai paprasti metodai nepavyksta
  6. Apsvarstykite galimybę atkurti iš atsarginės kopijos – Kai remonto rizika yra per didelė

20.2 Tinkamo taisymo metodo pasirinkimas

Maža rizika (pirmiausia pabandykite):

  • Iš naujo SQL Server paslaugos
  • Patikrinkite ir išspręskite disko vietos problemą
  • Pataisykite failų teises
  • Neprisijungus / internetu veikiančios duomenų bazės

Vidutinė rizika:

  • Failo kelio pataisymai
  • Išjungti automatinį uždarymą
  • FILESTREAM konfigūracijos pataisymai
  • Paslaugos pradžia atidėta

Didelė rizika (galimas duomenų praradimas):

  • Ištrinkite žurnalo failą ir paleiskite iš naujo
  • Atjungti / iš naujo prijungti duomenų bazę
  • Atkurti operacijų žurnalus
  • Avarinio režimo remontas su DBCC CHECKDB

20.3 Kada reikia eskaluoti

Kreipkitės profesionalios pagalbos, kai:

  • Keli didelės rizikos metodai nepasiteisino
  • Duomenų bazėje yra nepakeičiamų svarbių duomenų
  • Korupcija paveikia kelias duomenų bazes
  • Įtariamos sistemos lygio problemos
  • Laiko apribojimai reikalauja garantuotų rezultatų

21. DUK

K: Kuo skiriasi duomenų bazės būsenos „ATKURIAMA“ ir „LAUKIAMA ATKURKIMO“?

A: „ATKURIAMA“ reiškia, kad duomenų bazė aktyviai atlieka atkūrimo operacijas ir automatiškai prisijungs prie interneto, kai jos bus baigtos. „LAUKIAMA ATKURTI“ reiškia SQL Server Negalima pradėti atkūrimo proceso dėl kliūčių, pvz., trūkstamų failų, nepakanka vietos arba sugadinimo. Laukiama atkūrimo, todėl reikia rankiniu būdu išspręsti problemą.

K: Kurį sprendimą turėčiau išbandyti pirmiausia, kai kyla problemų dėl laukiamo SQL duomenų bazės atkūrimo?

A: Visada pradėkite nuo saugiausių metodų. Patikrinkite SQL Server klaidų žurnaluose patikrinkite disko vietos prieinamumą ir bandykite paleisti iš naujo SQL Server paslaugos. Šie mažos rizikos metodai išsprendžia dažniausiai pasitaikančias atkūrimo problemas be jokios duomenų praradimo rizikos.

K: Kiek laiko turėčiau palaukti, kol bandysiu kitą taisymo būdą?

A: Jei paslauga paleista iš naujo, palaukite 2–3 minutes, kol ji bus visiškai paleista. Paprastiems būsenos pakeitimams, pvz., neprisijungus / prisijungus, palaukite 30–60 sekundžių. Sudėtingiems taisymams, pvz., DBCC CHECKDB, palaukite kelias valandas, priklausomai nuo duomenų bazės dydžio. Nenutraukite atkūrimo procesų, kai jie pradėti.

K: Ar prarasiu duomenis spręsdamas SQL duomenų bazės atkūrimo problemas?

A: Duomenų praradimas priklauso nuo naudojamo metodo. Saugūs metodai, pvz., paslaugų paleidimas iš naujo, disko vietos taisymas ir leidimų taisymas, nesukelia duomenų praradimo. Didelės rizikos metodai, pvz., avarinio režimo taisymas, žurnalų atkūrimas arba žurnalų failų ištrynimas, gali sukelti didelį duomenų praradimą. Visada pirmiausia išbandykite saugius metodus.

K: Ar galiu užkirsti kelią SQL duomenų bazės atkūrimo laukiančioms problemoms?

A: Taip, daugumos problemų galima išvengti tinkamai prižiūrint. Reguliariai kurkite atsargines kopijas, stebėkite disko vietą, palaikykite pakankamą saugyklos talpą, naudokite UPS apsaugą, atlikite įprastas DBCC CHECKDB operacijas ir saugokite SQL Server atnaujinta su naujausiais pakeitimų paketais.

K: Ar turėčiau bandyti taisyti gamybines duomenų bazes darbo valandomis?

A: Niekada nebandykite taikyti didelės rizikos taisymo metodų gamybinėse duomenų bazėse darbo valandomis. Sudėtingiems taisymams suplanuokite priežiūros laikotarpius. Tačiau saugius metodus, pvz., paslaugų paleidimą iš naujo ar disko vietos taisymą, galima bandyti nedelsiant, jei jie blokuoja svarbias operacijas.

K: Kada turėčiau atkurti iš atsarginės kopijos, o ne bandyti taisyti?

A: Atkurkite iš atsarginės kopijos, kai nepavyksta atlikti kelių taisymo bandymų, kai tvarkomi svarbūs gamybiniai duomenys, kurie nėra dar labiau sugadinti, kai turite neseniai sukurtų atsarginių kopijų su priimtinu duomenų praradimo laikotarpiu arba kai taisymo metodai užtruktų ilgiau nei atkūrimo operacijos.

K: Kaip sužinoti, ar mano duomenų bazės failai yra sugadinti arba tiesiog nepasiekiami?

Čekis SQL Server Klaidų žurnalai, skirti konkretiems klaidų pranešimams. Failų prieinamumo problemos rodo „nepavyksta rasti failo“ arba leidimų klaidas. Sugadinimas paprastai rodo kontrolinės sumos klaidas, puslapio lygio klaidas arba nuoseklumo pažeidimus. Naudokite DBCC CHECKDB, kad tiksliai patikrintumėte, ar nėra sugadinimo, kai duomenų bazė yra pasiekiama.

K: Koks yra saugiausias būdas nukopijuoti duomenų bazės failus prieš bandant taisyti?

A: Sustoti SQL Server visiškai įdiekite paslaugą, tada nukopijuokite MDF ir LDF failus į atsarginių kopijų kūrimo vietą. Arba naudokite duomenų bazės atsarginių kopijų kūrimo komandas, jei duomenų bazė vis dar pasiekiama. Niekada nekopijuokite failų, kai SQL Server veikia, nes tai gali sukurti nenuoseklias kopijas.

K: Ar SQL duomenų bazės atkūrimo laukiančios problemos gali paveikti kelias duomenų bazes vienu metu?

A: Taip, sistemos lygio problemos, pvz., nepakankamas disko vietos kiekis, paslaugos paskyros problemos, saugyklos gedimai arba SQL Server Konfigūracijos klaidos gali paveikti kelias duomenų bazes. Visada patikrinkite, ar kitose duomenų bazėse kyla panašių problemų, kad nustatytumėte platesnio masto sistemos problemas.

K: Kaip dažnai turėčiau išbandyti savo duomenų bazės atkūrimo procedūras?

A: Kas mėnesį tikrinkite kritinių duomenų bazių atkūrimo procedūras, o kas ketvirtį – svarbių duomenų bazių. Įtraukite įvairių atkūrimo scenarijų, pvz., atkūrimo konkrečiu momentu, žurnalų sekos atkūrimo ir avarinio atkūrimo procedūrų, testavimą. Dokumentuokite ir užfiksuokite kiekvieno testo laiką, kad būtų galima planuoti avarinius atvejus.

K: Kada turėčiau susisiekti su „Microsoft“ palaikymo tarnyba arba samdyti profesionalią pagalbą?

A: Kreipkitės profesionalios pagalbos, kai nepavyksta atlikti kelių bandymų atkurti duomenis, tvarkomi itin svarbūs duomenys be atsarginių kopijų, susiduriama su sudėtingais duomenų iškraipymais keliose duomenų bazėse, aptinkami nedokumentuoti klaidų pranešimai arba kai dėl laiko apribojimų reikia garantuoti atkūrimo rezultatus.

K: Ar verta investuoti į trečiųjų šalių SQL atkūrimo įrankius?

A: Atkūrimo įrankiai yra vertingi, kai rankiniai metodai neveikia ir nėra atsarginių kopijų. Dauguma įrankių siūlo nemokamas bandomąsias versijas, kad būtų galima patikrinti atkūrimo galimybes prieš perkant. Įvertinkite kainą, palyginti su profesionaliomis paslaugomis, duomenų vertę ir sėkmės tikimybę. Įrankiai geriausiai veikia struktūrinių pažeidimų atveju, tačiau gali neatkurti visų tipų duomenų.

K: Ką daryti, jei SQL duomenų bazės atkūrimo laukiama nuolat?

A: Pasikartojančios problemos rodo pagrindines sistemos problemas. Patikrinkite, ar nėra aparatinės įrangos gedimų, nepakankamų išteklių, saugojimo sistemos problemų ar konfigūracijos problemų. Stebėkite „Windows“ įvykių žurnalus, įdiekite išsamią stebėseną ir apsvarstykite galimybę atnaujinti aparatinę įrangą arba pereiti prie patikimesnių saugojimo sistemų.

22. Išvada ir trumpa nuoroda

SQL duomenų bazės atkūrimo problemas galima išspręsti naudojant šiuos 15 patikrintų metodų – nuo ​​paprasto paslaugų paleidimo iš naujo iki sudėtingų avarinių taisymų.

22.1 Greito pataisymo suvestinės lentelė

Fix metodas Rizikos lygis Duomenų praradimo rizika Geriausiai naudojamas
Iš naujo SQL Server žemas Nėra Laiko problemos, laikini užraktai
Patikrinkite vietos diske žemas Nėra Su kosmosu susiję gedimai
Vėluojama pradžia žemas Nėra Saugojimo laiko problemos
Įtvirtinti įgaliojimą žemas Nėra Prieiga uždrausta klaidos
Teisingi failų keliai žemas Nėra Kelio pokyčiai, migracijos
Neprisijungęs / prisijungę vidutinis Minimalus Valstybės neatitikimai
Išjungti automatinį uždarymą žemas Nėra Dažni atidarymo / uždarymo ciklai
Ištrinti žurnalo failą aukštas Taip Sugadinti žurnalai, kūrėjų aplinkos
Nuimkite / vėl pritvirtinkite aukštas Taip Trūkstami arba sugadinti žurnalai
Atkurti žurnalus aukštas Taip Trūkstami LDF failai
Avarinis taisymas naudojant DBCC CHECKDB Labai aukštai Taip Didelė korupcija – paskutinė priemonė
Ištaisyti FILESTREAM vidutinis Nėra FILESTREAM konfigūracijos problemos
Atnaujinti SQL Server vidutinis Nėra Žinomos versijos klaidos
Atkurti iš atsarginės kopijos žemas Kontroliuojama Kai remonto metodai neveikia
Atkūrimo įrankiai vidutinis Skiriasi Didelė korupcija, nėra atsarginių kopijų

22.2 Avarinio reagavimo kontrolinis sąrašas

Pirmosios 5 minutės:

  1. Atrask SQL Server klaidų žurnalai
  2. Patikrinkite duomenų bazės failų prieinamumą
  3. Patikrinkite laisvą vietą diske
  4. Bandykite paleisti paslaugą iš naujo
  5. Dokumento klaidų pranešimai

Kitos 15 minučių:

  1. Jei nepavyko paleisti paslaugos iš naujo, pabandykite neprisijungę / prisijungę
  2. Patikrinkite ir ištaisykite akivaizdžias leidimų problemas
  3. Patikrinkite, ar failų keliai teisingi
  4. Peržiūrėkite „Windows“ įvykių žurnalus
  5. Įvertinkite atsarginių kopijų prieinamumą

22.3 Papildomi ištekliai

Atminkite: prevencija, taikant tinkamas atsargines kopijas, stebint ir prižiūrint, visada yra geriau nei atkūrimas. Reguliarus šių procedūrų testavimas ne gamybos aplinkoje užtikrina, kad būsite pasiruošę, kai iškils SQL duomenų bazės atkūrimo problemų.


Apie Autorius:

Yuan Sheng yra vyresnysis duomenų bazių administratorius (DBA), turintis daugiau nei 10 metų patirtį SQL Server aplinkose ir įmonių duomenų bazių valdyme. Jis sėkmingai išsprendė šimtus duomenų bazių atkūrimo scenarijų finansinių paslaugų, sveikatos priežiūros ir gamybos organizacijose.

Yuan specializuojasi SQL Server duomenų bazių atkūrimas, didelio prieinamumo sprendimai ir našumo optimizavimas. Jo didelė praktinė patirtis apima kelių terabaitų duomenų bazių valdymą, „Always On Availability Groups“ diegimą ir automatizuotų atsarginių kopijų kūrimo bei atkūrimo strategijų, skirtų kritiškai svarbioms verslo sistemoms, kūrimą.

Pasitelkdamas savo technines žinias ir praktinį požiūrį, Yuanas daugiausia dėmesio skiria išsamių vadovų, padedančių duomenų bazių administratoriams ir IT specialistams spręsti sudėtingas problemas, kūrimui. SQL Server efektyviai meta iššūkius. Jis neatsilieka nuo naujausių žinių SQL Server leidimus ir besivystančias „Microsoft“ duomenų bazių technologijas, reguliariai testuodamas atkūrimo scenarijus, siekdamas užtikrinti, kad jo rekomendacijos atitiktų geriausią realią praktiką.

Turite klausimų apie SQL Server atkūrimo ar reikia papildomų duomenų bazės trikčių šalinimo nurodymų? Yuan mielai atsiliepimai ir pasiūlymai už šių techninių išteklių tobulinimą.

Bendrinti dabar: