损坏的 tempdb 位置并且无法恢复

Tim*_*der 8 sql-server-2008-r2 tempdb disaster-recovery

犯了一个错误,错误地为 tempdb 输入了一个更改数据库命令。

现在实例不会启动。我无法使用 -m 在单用户模式下启动,因为它指出找不到 tempdb。我尝试使用:

net start msqsqlserver /f /t3608
Run Code Online (Sandbox Code Playgroud)

但是我实际上根本无法使用sqlcmd或连接到实例ssms

Aar*_*and 12

在最小配置模式下将 SQL Server 作为应用程序而不是服务启动,并且仅从命令提示符恢复主服务器:

[path to this instance]\BINN\sqlservr.exe -c -f -T3608
Run Code Online (Sandbox Code Playgroud)

(添加 -s InstanceName如果这是命名实例,则。)

现在,在不同的命令提示符下,使用 SQLCMD 进行连接:

sqlcmd -S InstanceName -E
Run Code Online (Sandbox Code Playgroud)

并发出更正(三重检查!!!),然后关闭应用程序:

> ALTER DATABASE tempdb MODIFY FILE ...
> SHUTDOWN WITH NOWAIT;
> GO
Run Code Online (Sandbox Code Playgroud)