Abbandonato accidentalmente la memoria SQL troppo bassa per accedere, come posso risolvere?


14

Ho abbassato la memoria massima dell'istanza di SQL Server a 15 MB ... Ora non riesco ad accedere per aumentarla. Come posso aumentare la memoria massima senza accedere?

La versione è SQL 2008 R2

Risposte:


18

Connettiti utilizzando Dedicated Administrator Connection (DAC) , che garantisce una quantità minima di risorse per risolvere problemi esattamente come questo. Ad esempio, se ci si connette tramite Management Studio, avviare una finestra Nuova query e digitare ADMIN:servernameinvece di servernamequando viene richiesto di connettersi. Ignorare eventuali errori che si verificano che sono generalmente benigni in quanto associati a Esplora oggetti, all'elenco a discesa del database, a IntelliSense, ecc., Anche tentando di connettersi per conto dell'utente (è consentita solo una connessione DAC).

Maggiori informazioni qui , qui e alcune procedure di risoluzione dei problemi qui .


7

In alternativa (poiché era successo due volte prima e il trucco DAC non funzionava per me), chiudere il servizio SQL Server, quindi riportarlo in modalità "configurazione minima", che è una versione modificata della modalità utente singolo.

Tramite la riga di comando, vai al percorso dell'eseguibile sqlservr.exe, come elencato nel servizio. Ma invece di correre sqlservr.exe -m, usa sqlservr.exe -f"sqlcmd". Ciò consentirà SOLO connessioni dall'applicazione denominata, quindi tutto il resto fallirà, ma sarai in grado di connetterti, modificare l'impostazione, emettere il comando SHUTDOWN dall'interno di SQLCMD, quindi visualizzarlo normalmente.


5

Dal prompt dei comandi avviare sqlCmd utilizzando Didicated Administrator Connection (DAC). :

    C: \> sqlcmd -S NomeServer -U sa -P –A

Una volta connesso, eseguire quanto segue per impostare la memoria su 4Gigs. dovrebbe essere sufficiente per consentire di riconnettersi utilizzando lo strumento Management Studio.

sp_configure 'mostra opzioni avanzate', 1;  
PARTIRE  
RECONFIGURE;  
PARTIRE  
sp_configure 'max server memory', 4096;  
PARTIRE  
RECONFIGURE;  
PARTIRE  

Per ulteriori informazioni sul DAC, vedere: Dedicated Administrator Connection (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx


3

Ho appena avuto lo stesso problema e non ho avuto fortuna con l'avvio di SSMS o DAC, quindi spero che questo possa aiutare la persona successiva che è nel panico.

Ho avviato SQL Server Configuration Manager (sto eseguendo SQL 2017) sul server, selezionato "SQL Server Services" nel riquadro a sinistra e quindi facendo clic con il tasto destro su "SQL Server (MSSQLSERVER)" nel riquadro a destra e scegli "proprietà". Nella finestra Proprietà, sono andato alla scheda "Parametri di avvio" e ho aggiunto il parametro di avvio "-f". Ho riavviato il servizio SQL e si è avviato in modalità " configurazione minima ". Sono stato quindi in grado di accedere a SSMS e correggere l'impostazione della memoria massima. Sono quindi tornato alla scheda "Parametri di avvio" e rimosso il parametro "-f" e riavviato nuovamente il servizio.


1

Stesso problema, la memoria è stata impostata su un valore troppo basso per errore. Impossibile connettersi tramite DAC, ha fatto quanto segue:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Connesso tramite SSMS direttamente sul server ed è stato in grado di raggiungere le proprietà e impostare le impostazioni di memoria corrette.

1

Questo viene fatto utilizzando il comando net start / stop o dal comando sqlserver.exe. Controlliamo innanzitutto come viene eseguito tramite il comando net start / stop La sintassi per un comando net start / stop è NET START Il nome del servizio può essere ottenuto come mostrato di seguito.

  1. Digitare services.msc nella finestra "RUN" e fare clic su OK. Questo aprirà la finestra di dialogo del servizio.
  2. Passare all'istanza di SQL Server per cui si desidera ottenere il nome del servizio e fare doppio clic su di esso. Questo aprirà la finestra di dialogo delle proprietà per quell'istanza. Copia il nome del servizio elencato lì.
  3. --- abilitare il servizio è una modalità utente singolo

    C: \ Programmi \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m Il servizio SQL Server (MSSQLSERVER) è in fase di avvio. Il servizio SQL Server (MSSQLSERVER) è stato avviato correttamente. Connesso tramite SSMS direttamente sul server ed è stato in grado di raggiungere le proprietà e impostare le impostazioni di memoria corrette. Oppure esegui sotto il comando: - sp_configure 'mostra opzioni avanzate', 1; GO RECONFIGURE; GO sp_configure 'max server memory', 4096; GO RECONFIGURE; PARTIRE

- uscire dalla modalità utente singolo arrestando il servizio

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"

Per avviare l'istanza SQL in modalità multiutente, interrompere il servizio utilizzando net stop come mostrato sopra e quindi avviarlo senza specificare il parametro \ m come mostrato di seguito.

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net start "SQL Server (MSSQLSERVER)"
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.

Una cosa da notare qui è che l'avvio dell'istanza di SQL Server non avvia il servizio SQL Server Agent. Per avviare SQL Server Agent, ottenere il nome del servizio utilizzando il metodo condiviso sopra e avviarlo come mostrato nell'immagine sopra. Oppure vai ai servizi e abilitalo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.