tempdbの場所が壊れて回復できない


8

間違いを犯し、tempdbのデータベース変更コマンドを誤って入力しました。

これでインスタンスは起動しなくなります。tempdbが見つからなかったため、-mを使用してシングルユーザーモードで起動できません。私は使ってみました:

net start msqsqlserver /f /t3608

しかし、sqlcmdまたはを使用してインスタンスに実際に接続することはできませんssms


SQLサーバーのエラーログは何と言っていますか?
Max Vernon

どのような変更を加えましたか?
Max Vernon

回答:


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を実行しましたが、機能しているように見えました。ポインタをありがとう。これが将来の誰かにも役立つことを願っています!
Tim Alexander

0
  1. シングルユーザーモードでSQLサーバーを起動します-Net Start MSSQLServer / mSQLCMD / f / t3608

  2. シングルユーザーモードにするsqlcmd -S。–E

  3. コマンドを実行する

データベースのtempdb変更ファイルを変更します(名前= tempdev、ファイル名= 'E:\ SQLDATA \ DEFAULT \ tempdb.mdf')

データベースのtempdb変更ファイルを変更します(名前= templog、ファイル名= 'E:\ SQLDATA \ DEFAULT \ Templog.ldf')

  1. SQLサーバーを停止しますNet Stop mssqlserver
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.