tempdb位置损坏,无法恢复


8

犯了一个错误,并为tempdb输入了一个alter database命令。

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

net start msqsqlserver /f /t3608

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


SQL Server错误日志说什么?
Max Vernon

您做了什么改变?
Max Vernon

Answers:


12

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

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

-s InstanceName如果这是一个命名实例,请添加。)

现在,在另一个命令提示符下,使用SQLCMD连接:

sqlcmd -S InstanceName -E

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

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

我最终还是通过这种方法进入的,尽管我最初不确定为什么它不能让我连接。最后,我禁用了所有服务,跳了一下框,然后在没有网络连接的情况下运行了VM,它似乎可以正常工作。谢谢你的指点。希望这对将来的其他人也有用!
蒂姆·亚历山大

0
  1. 在单用户模式下启动sql server-Net Start MSSQLServer / mSQLCMD / f / t3608

  2. 处于单用户模式sqlcmd -S。–E

  3. 运行命令

更改数据库tempdb修改文件(名称= tempdev,文件名='E:\ SQLDATA \ DEFAULT \ tempdb.mdf')

更改数据库tempdb修改文件(名称=临时日志,文件名='E:\ SQLDATA \ DEFAULT \ Templog.ldf')

  1. 停止sql server网络停止mssqlserver
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.