Recuperați baza de date de resurse SQL Server
admin - februarie 10, 2022de: Daniel Farina | actualizat: 2019-10-25 | Comentarii (2) / înrudit: mai multe configurații SQL Server >

webinar gratuit MSSQLTips: Configurarea SQL Server pentru cea mai bună performanță
participați la acest webinar pentru a afla despre cele mai bune practici și pașii de urmat pentru a vă asigura că configurația SQL Server este configurată pentru a maximiza performanța.
problemă
un patch a fost aplicat automat la instanța mea de SQL Server de Windows Update.Acest lucru ar fi putut trece neobservat, așa cum se întâmplă adesea cu actualizările Windows. Wheniam încercat să acceseze instanța mea SQL Server, am constatat că baza de date mssqlsystemresource wasabsent de unde ar trebui să fie și SQL Server nu ar porni. În acest sfat vă voi spune cum am rezolvat acest lucruîntrebare.
soluție
zilele trecute am încercat să mă conectez la mediul meu de testare SQL Server withSQLServer Management Studio și am primit mesajul de eroare „server not found”.
ca o reacție normală, am deschis SQL Server Configuration Manager pentru a verifica starea SQL Serverservice; și după cum ați putea ghici, serviciul nu a fost difuzate. În acest moment am fost puțin îngrijorat, deoarece serviciile pentru SQL Server sunt setate să pornească automat.
am precedat cu primul pas de recuperare, care a fost de a încerca să startthe instanță și a vedea ce se întâmplă. Pe măsură ce am încercat să pornesc instanța SQL Server, am primit următorul mesaj de eroarespunând că cererea a eșuat și că trebuie să consult Jurnalul de evenimente sau altulrog de erori aplicabile pentru detalii. Puteți vedea mesajul pe ecran capturede mai jos.

în acest moment mi-am dat seama că nu era un lucru ușor de rezolvat, așa că am urmat instrucțiunile themessage și am deschis aplicația Event Viewer pentru a vizualizaeveniment log în căutarea unui răspuns.
în primul rând, m-am uitat la Jurnalul de aplicații și a căutat un eveniment cu o sourcequal la MSSQLSERVER, care este instanța de SQL Server am fost depanare.Am constatat că a existat o eroare legată de SQL Server care a spus „OpenFailed: nu s-a putut deschide filemssqlsystemresource.mdf os eroare: 2 ” (Sistemul nu a putut găsi fișierul specificat) asis prezentat pe captura de ecran de mai jos. Pentru cei dintre voi care nu știu, fișierul menționat mai jos face parte din ceea ce este cunoscut sub numele de baza de date a resurselor și este necesar pentru pornirea SQL Server.

baza de date SQL Server mssqlsystemresource
baza de date mssqlsystemresource este baza de date fizică care conține toate definițiile obiectelor de sistem incluse în SQL Server. Această bază de date este doar în citire și nu este accesibilă chiar și pentru membrii serverului sysadmin rolefără ca instanța să fie accesată prin conexiunea de administrator adedicată după ce a fost pornită în modul utilizator unic (cu opțiunea de pornire –m).
datorită faptului că baza de date a resurselor conține tot codul obiectelor de sistem(nu conține date de utilizator sau metadate), actualizarea versiunilorse realizează prin simpla înlocuire a fișierelor bazei de date a resurselor din folderul instance ‘ sbinn.
recuperarea bazei de date SQL Server mssqlsystemresource
după ce am aflat că fișierele pentru baza de date mssqlsystemresource lipseau, aveam nevoie să știu de ce sa întâmplat și cum să rezolv problema. Primul lucru pe care l-am făcut instinctiv a fost să caut peInternet despre mssqlsystemresource baze de date dispărând și am găsit următoarelemicrosoft articol:FIX: baza de date de resurse lipsește după ce instalați actualizări sau pachete de serviciipentru instanțe de SQL Server 2012 unul după altul și apoi reporniți serverul.
fiind conștient de faptul că articolul Microsoft a declarat că versiunile afectate sunt SQL Server 2012 și2014, între timp sistemul meu a fost SQL Server 2017, dar m-am gândit că voi merge în josaceastă cale pentru a vedea.
spre surprinderea mea am văzut că următoarele două actualizări au fost programate să ruleze una după alta:
- actualizare de securitate pentru SQL Server 2017 RTM (KB4505224)
- actualizare de securitate pentru SQL Server 2016 SP1 (KB4505219)

acum că știam cauza, trebuia să aflu cum să restaurez mssqlsystemresourcedatabase, deoarece este Computerul meu de acasă, nu aveam o copie de rezervă. Itried descărcarea pachetului și instalarea manuală, dar poate pentru că mssqlsystemresourcedatabase lipsea, nu a funcționat; ceva de o situație de pui și ouă.
nu a fost intențiile mele de a reinstala SQL Server, așa că am optat pentru o abordare moreheterodox. Am deschis dosarul temporar pe care patch-ul îl folosește pentru a decomprimafișierele sale. Puteți face o notă de acel dosar după ce lansați programul de instalare prinluând o captură de ecran așa cum am făcut-o în continuare.

după localizarea directorului temp, am căutat calea x64\setup\ și afterlooking la fișierele am ghicit că sql_engine_core_inst.msppoate avea o copie a bazei de date mssqlsystemresource. Acest fișier este comprimat, decipentru ao deschide, aveți nevoie de un instrument de decomprimare. Am folosit 7-Zip care este gratuit și puteți descărcade la https://www.7-zip.org/.
la următoarea captură de ecran puteți vedea că există două fișiere, Eng_re_resourcedb_ldf_64și ENG_RE_ResourceDb_mdf_64. Acestea sunt fișierele bazei de date themssqlsystemresource pentru ediția pe 64 de biți a SQL Server în limba englezălimbă. Dacă aveți nevoie de altullimbă, trebuie să schimbați limba pe pagina de descărcare a patch-urilor. Amintiți-vă astamotorul de configurare conține toate limbile, dar pachetele de implementare sunt îno limbă specifică.

am extras cele două fișiere și apoi le-am redenumit după cum urmează și le-am copiatîn folderul menționat mai sus în mesajul de eroare unde ar trebui să existe aceste fișiere.
- ENG_RE_ResourceDb_ldf_64 redenumit în mssqlsystemresource.LDF
- ENG_RE_ResourceDb_mdf_64 redenumit în mssqlsystemresource.mdf
după ce aceste fișiere au fost redenumite și copiate în folderul corect, am pututpentru a porni serviciile SQL Server și totul a funcționat din nou.
pașii următori
- în cazul în care vă confruntați cu această situație sau cu o situație similară de a avea nevoie să restaurați resourcedatabase fără a avea o copie de rezervă, pentru a putea extrage fișierele mssqlsystemresourcedatabase dintr-un pachet de configurare, trebuie să cunoașteți versiunea exactă a SQL Serveryou rulează. Dacă nu știți cum să o găsiți, puteți citi acest sfatexplică diferite metode pentru a afla:cum să spuneți ce versiune SQL Server executați.
- este o bună practică să faceți copii de rezervă ale bazei de date a resurselor; dacă dorițipentru a ști cum să o faceți, vă sugerez să aruncați o privire la acest sfat:SQL Server backup and restore of the resource database.
- în acest sfat am menționat că aveți nevoie de o „Conexiuni Admin dedicate”pentru a putea accesa baza de date de resurse. Puteți citi mai multe despre DedicatedAdmin Connections pecategoria sfaturi de conectare pentru administrator dedicat serverului MySQL și luați sfatul următor ca punct de plecare:conexiune de Administrator dedicată în SQL Server.
- în plus,am menționat că, dacă doriți să accesați baza de date de resurse, trebuie să porniți SQL Server în modul utilizator unic. În acest sfat veți învățacum să utilizați parametrii de pornire care vă vor permite să porniți instanța înmodul utilizator unic: setarea parametrilor de pornire SQL Server.
- dacă problema dvs. include un scenariu de restaurare a bazei de date Master fără a avea o copie de rezervă, puteți arunca o privire la acest sfat:restaurarea bazei de date SQL Server Master chiar și fără o copie de rezervă.
Ultima actualizare: 2019-10-25


despre autor

Vizualizați toate sfaturile mele
- mai multe sfaturi SQL Server DBA…
Articole recente
- Despre noi-Gandolfo Helin & Fountain Literary Management
- 5 Lucruri de știut despre Shalane Flanagan
- Rolling Stone
- toxicitate cutanată
- Serghei Tcherepnin-Artadia
- Cum să facem față stresului și presiunii sociale
- care rasă de cai este cea mai inteligentă?
- acidul Silicic (Si(OH)4) este o influență semnificativă asupra semnalului de absorbție atomică al aluminiului măsurat prin spectrometria de absorbție atomică a cuptorului de grafit (gfaas)
- explicând Smarts Partea 8 – Self Smart
- Sadie T. M. Alexander (1898-1989)
Lasă un răspuns