• ベストアンサー

復旧中のデータベースについて

SQL Serverのバックアップを取る為 DBをオフラインにしたのですが いくつかのDBが [DB名](復旧中) となったまま状態が元に戻りません。 この状態を強制的に解除する方法はありますでしょうか? 教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

うーん、そもそもやり方に問題がありますね。 バックアップというのは、通常BACKUPコマンドを使って実行し、バックアップファイルの拡張子はBAKになります。 戻すときはRESTOREコマンドを使って実行します。 質問者さんがやられたようにMDF/LDFのファイル自体をコピーする方法は一般的ではありません。 が、もしやるならば、「オフラインにする」のではなく、「データベースのデタッチ」を実行してデータベースを一旦切り離し、 それからコピーするのが正しい方法です。 (お勧めはしませんが、SQL Serverサービスを停止させてからコピーする方法もあります) データベースのステータスはシステムデータベースのmasterが管理しています。 データベースをオフラインにして、ファイルを差し替えたことにより、masterデータベースの把握している状態と齟齬が生じてしまったため、そのような状態になってしまったと考えられます。 そのデータベースをドロップするかデタッチして、改めてMDF/LDFをアタッチするしかないと思いますが、前にコピーしたMDF/LDFも同じ方法でとったものならば、わずかながらうまくいかないリスクはあります。 SQL Serverのバージョンは何ですか?Enterprise ManagerもしくはSQL Server Management Studioが使える状態ですか? (バックアップ、リストア、デタッチ、アタッチはGUIでできるので)

gaba1195
質問者

お礼

ご回答ありがとうございます!! jamshid6さんが仰るように SQL Server Management Studioで デタッチ⇒MDF/LDFのコピー⇒アタッチでMDF/LDFの選択を行ったら 無事に戻すことができました。 (復旧中のままだったDBはデタッチしました。) BACKUPコマンド、RESTOREコマンドも調べて 使えるようにしておきます!

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

何をやったのかをもう少し詳細に書いてほしいです。 (オフラインにしたデータベースのバックアップは取ることができないから)

gaba1195
質問者

補足

DBをオフラインにした後に ldfファイルとmdfファイルを昔のものと差し替えて DBをオンラインに戻すといくつかのDBが [DB名](復旧中)となってしまいました。 バックアップの取り方、戻し方がそもそも この方法では駄目だったのでしょうか・・・

関連するQ&A