Posizione tempdb rotta e impossibile ripristinare


8

Ha commesso un errore e ha sbagliato a digitare un comando alter database per tempdb.

Ora l'istanza non si avvia. Non posso iniziare in modalità utente singolo usando -m poiché indica che non è stato possibile trovare tempdb. Ho provato a usare:

net start msqsqlserver /f /t3608

Ma poi non riesco a connettermi all'istanza usando sqlcmdo ssms.


Cosa dice il registro errori del server SQL?
Max Vernon,

Che cambiamento hai fatto?
Max Vernon,

Risposte:


12

Avviare SQL Server come un'applicazione, non un servizio, in modalità di configurazione minima e solo per il ripristino del master, da un prompt dei comandi:

[path to this instance]\BINN\sqlservr.exe -c -f -T3608

(Aggiungi -s InstanceNamese si tratta di un'istanza denominata.)

Ora, in un prompt dei comandi diverso, connettiti utilizzando SQLCMD:

sqlcmd -S InstanceName -E

Ed emettere una correzione (controllare tre volte !!!), quindi chiudere l'applicazione:

> ALTER DATABASE tempdb MODIFY FILE ...
> SHUTDOWN WITH NOWAIT;
> GO

Ho finito per entrare in questo metodo anche se inizialmente non sono sicuro del perché non mi permettesse di connettermi. Alla fine ho disabilitato tutti i servizi, ho rimbalzato la scatola ed eseguito la VM senza una connessione di rete e sembrava funzionare. Grazie per i suggerimenti però. Spero che questo sia utile anche per qualcun altro in futuro!
Tim Alexander,

0
  1. Avvia il server sql in modalità utente singolo - Net Start MSSQLServer / mSQLCMD / f / t3608

  2. Essere in modalità utente singolo sqlcmd -S. -E

  3. Esegui i comandi

Modifica il file di modifica del database tempdb (nome = tempdev, nome file = 'E: \ SQLDATA \ DEFAULT \ tempdb.mdf')

Modifica il file di modifica tempdb del database (nome = templog, nome file = 'E: \ SQLDATA \ DEFAULT \ Templog.ldf')

  1. Arresta sql server Net stop mssqlserver
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.