Recuperare Risorse di SQL Server Database
admin - Febbraio 10, 2022Da: Daniele Farina | Aggiornamento: 2019-10-25 | Commenti (2) | Correlati: Più > Configurazioni di SQL Server

Gratuito MSSQLTips Webinar: Configurazione di SQL Server per Prestazioni ottimali
Partecipare a questo webinar per conoscere le migliori pratiche e le misure da adottare per assicurarsi che la vostra configurazione di SQL Server è configurato per massimizzare le prestazioni.
Problema
Una patch è stata applicata automaticamente alla mia istanza di SQL Server da Windows Update.Questo potrebbe essere passato inosservato, come spesso accade con gli aggiornamenti di Windows. Quando ho provato ad accedere alla mia istanza di SQL Server, ho scoperto che il database mssqlsystemresource era assente da dove dovrebbe essere e SQL Server non si avviava. In questo suggerimento ti dirò come ho risolto questola questione.
Soluzione
L’altro giorno ho tentato di connettermi al mio ambiente di test SQL Server withSQLServer Management Studio e ho ricevuto il messaggio di errore “server not found”.
Come reazione normale, ho aperto SQL Server Configuration Manager per verificare lo stato di SQL Serverservice; e come puoi immaginare, il servizio non era in esecuzione. A questo punto ero un po ‘ preoccupato, perché i servizi per SQL Server sono impostati per l’avvio automatico.
Ho preceduto con il primo passo di recupero, che era quello di cercare di avviarel’istanza e vedere cosa succede. Mentre provavo ad avviare l’istanza di SQL Server, ho ricevuto il seguente messaggio di errore dicendo che la richiesta non è riuscita e che devo consultare il registro eventi o il registro degli errori otherapplicable per i dettagli. Puoi vedere il messaggio sullo schermo capturebelow.

A questo punto mi sono reso conto che non era una cosa facile da risolvere, quindi ho seguito le istruzioni di themessage e ho aperto l’applicazione Visualizzatore eventi per visualizzare il registro eventi in cerca di una risposta.
In primo luogo, ho guardato il registro dell’applicazione e ho cercato un evento con un sourceequal a MSSQLSERVER che è l’istanza di SQL Server che stavo risolvendo.Ho scoperto che c’era un errore relativo a SQL Server che diceva “OpenFailed: Impossibile aprire filemssqlsystemresource.errore OS mdf: 2 ” (il sistema non è riuscito a trovare il file specificato) asis mostrato nella cattura dello schermo qui sotto. Per quelli di voi che non lo sanno, il file menzionato di seguito fa parte di ciò che è noto come database delle risorse e è richiesto per l’avvio di SQL Server.

Il database mssqlsystemresource di SQL Server
Il database mssqlsystemresource è il database fisico che contiene tutte le definizioni degli oggetti di sistema inclusi in SQL Server. Questo databaseis sola lettura e non è accessibile anche per i membri del server sysadmin roleunless l’istanza si accede tramite connessione amministratore adedicated dopo essere stato avviato in modalità utente singolo(con l’opzione-m avvio).
A causa del fatto che il database delle risorse contiene tutto il codice degli oggetti di sistema(non contiene dati utente o metadati), l’aggiornamento delle versioniè eseguito semplicemente sostituendo i file del database delle risorse nella cartella instancy’Bbinn.
Ripristino del database mssqlsystemresource di SQL Server
Dopo aver scoperto che i file per il database mssqlsystemresource mancavano, ho avuto bisogno di sapere perché è successo e come risolvere il problema. La prima cosa che ho fatto istintivamente è stata cercare su internet i database mssqlsystemresource scomparendo e ho trovato il seguente articolo di Microsoft:FIX: Il database delle risorse manca dopo aver installato aggiornamenti o service packsfor istanze di SQL Server 2012 uno dopo l’altro e quindi riavviare il server.
Essendo consapevole del fatto che l’articolo di Microsoft ha dichiarato che le versioni interessate sono SQL Server 2012 e2014, nel frattempo il mio sistema era SQL Server 2017, ma ho pensato di andare downthis percorso per vedere.
Per mia sorpresa ho visto cheil due seguenti aggiornamenti sono stati programmati per eseguire uno dopo l’altro:
- Aggiornamento della Protezione per SQL Server 2017 RTM (KB4505224)
- Aggiornamento della Protezione per SQL Server 2016 SP1 (KB4505219)

Ora che conoscevo la causa, avevo bisogno di scoprire come ripristinare mssqlsystemresourcedatabase, poiché è il mio computer di casa, non avevo un backup. Itried scaricando il pacchetto e installandolo manualmente, ma forse perché mancava mssqlsystemresourcedatabase, non ha funzionato; qualcosa di una situazione di pollo e uova.
Non era mia intenzione reinstallare SQL Server, quindi ho optato per un approccio più eterodosso. Ho aperto la cartella temporanea che la patch utilizza per decompresserei suoi file. È possibile prendere nota di quella cartella dopo aver avviato il programma di installazione prendendo una cattura dello schermo come ho fatto dopo.

Dopo aver individuato la directory temp, ho cercato il percorso x64\setup\ e dopo aver guardato i file ho indovinato che sql_engine_core_inst.msppuò avere una copia del database mssqlsystemresource. Questo file è compresso, quindiper aprirlo è necessario uno strumento di decompressione. Ho usato 7-Zip che è gratuito e puoi scaricareda https://www.7-zip.org/.
Nella schermata successiva puoi vedere che ci sono due file, eng_re_resourcedb_ldf_64e ENG_RE_ResourceDb_mdf_64. Questi sono i file del database themssqlsystemresource per l’edizione a 64 bit di SQL Server nella lingua inglese. Se hai bisogno di un altrolingua, devi cambiare la lingua nella pagina di download della patch. Ricorda cheil motore di installazione contiene tutte le lingue, ma i pacchetti di distribuzione sono in una lingua specifica.

Ho estratto i due file e poi li rinominato come segue e copiato theseto la cartella di cui sopra nel messaggio di errore in cui questi file shouldexist.
- ENG_RE_ResourceDb_ldf_64 rinominato in mssqlsystemresource.ldf
- ENG_RE_ResourceDb_mdf_64 rinominato in mssqlsystemresource.mdf
Dopo che questi file sono stati rinominati e copiati nella cartella corretta, sono stato in grado di avviare i servizi SQL Server e tutto ha funzionato di nuovo.
Passaggi successivi
- Nel caso in cui si verifichi questa o una situazione simile di dover ripristinare resourcedatabase senza avere un backup, per poter estrarre i file mssqlsystemresourcedatabase da un pacchetto di installazione è necessario conoscere la versione esatta di SQL Serveryou è in esecuzione. Se non sai come trovarlo, puoi leggere questo suggerimento chespiega vari metodi per scoprirlo:come dire quale versione di SQL Server stai eseguendo.
- È una buona pratica eseguire backup del database delle risorse; se vuoi sapere come farlo ti suggerisco di dare un’occhiata a questo suggerimento:SQL Server backup e ripristino del database delle risorse.
- In questo suggerimento ho detto che è necessario un “Connessioni di amministrazione dedicate”per poter accedere al database delle risorse. Si può leggere di più su DedicatedAdmin Connessioni sulSQL Server dedicato Administrator Connection Tips Categoria e prendere thenext suggerimento come punto di partenza:Connessione amministratore dedicato in SQL Server.
- Inoltre ho detto che se si desidera accedere al database delle risorse,è anche necessario avviare SQL Server in modalità utente singolo. In questo suggerimento imparerai come utilizzare i parametri di avvio che ti permetteranno di avviare l’istanza in modalità utente singola:impostazione dei parametri di avvio di SQL Server.
- Se il problema include uno scenario di ripristino del database Master senza avere un backup, puoi dare un’occhiata a questo suggerimento:Ripristino del database master SQL Server anche senza un backup.
Ultimo Aggiornamento: 2019-10-25


Circa l’autore

Visualizza tutti i miei suggerimenti
- Altri suggerimenti per SQL Server DBA…
Articoli recenti
- Chi siamo-Gandolfo Helin & Fountain Literary Management
- 5 cose da sapere su Shalane Flanagan
- Rolling Stone
- Tossicità cutanea
- Sergei Tcherepnin-Artadia
- Come affrontare lo stress sociale e la pressione
- Quale razza di cavallo è il più intelligente?
- acido Silicico (Si(OH)4) è una significativa influenza su di assorbimento atomico segnale di alluminio misurata da fornace di grafite spettrometria di assorbimento atomico (GFAAS)
- Explaining Our Smarts Part 8-Self Smart
- Sadie T. M. Alexander (1898-1989)
Lascia un commento