• ベストアンサー

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

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

  • データベースの復旧方法

    先日サーバーのOSが崩れて(レジストリが壊れたようです)、サーバーの起動ができなくなりました。 OSを再インストールせずに、レジストリの復旧を試みていますが、最悪の場合OSの再インストール、Oracleの再インストールも念頭にいれています。 SQL Serverの場合、データベースのアタッチをすれば現存のDBを動かすことができます。 Oracleの場合は、どのような方法でデータベースを復旧するのでしょうか? リスナーの再構築でよろしいのでしょうか? OS:Windows Server 2000 DB:Oracle 8 よろしくご教授のほどお願いします。

  • Windows2003サーバ復旧について

    Windowsサーバ管理初心者です、みなさん教えて下さい。 社内でメインで使用していたWindows2003サーバが ハードディスク破損にて起動不能になってしまいました。 このサーバはExchangeサーバも兼ねておりました。 このサーバですが、サーバの設定内容のバックアップが紙に書いたメモしか無かった為、 サーバのコンピュータ名、ドメイン名、ユーザ名等までは一見元通りになったように見える まで復旧したのですが・・・ クライアントがExchangeサーバを設定したOutlook2003の起動時に 『接続・オフライン・キャンセル』のメッセージが毎回表示されるようになってしまいました。 このメッセージが出ないようにするにはクライアントPCの設定も何か変更する 必要があるのでしょうか? 初歩的な質問で申し訳ありませんが、皆さんアドバイス等 いただければ助かります。よろしくお願いいたします。

  • データベースのレプリケーション機能

    SQLのレプリケーション機能を使用したデータバックアップを検討しています。 DBのレプリケーション機能によるデータバックアップは失敗例が多いとの話を聞きました。 データの量は多くありませんがデータの更新は頻繁に起きます。 常に正副2台のサーバのDBを出きるだけ整合性を取り、障害時には副のサーバで運用を 出きるだけ短時間で再開を目的としています。 SQLのレプリケーション機能についての信頼性、運用性等ご教授願えますでしょうか。

  • mysqldumpでリストアし一部外字が文字化け

    mysqldump  –default-character-set=utf8 でバックアップしてたsqlファイルを mysql –default-character-set=utf8 でインポートしWEBを開いてみたら 一部の外字が文字化けしてしまいました。 nkfでバックアップのsqlファイルの文字コード調べてみると、EUCJP-winとなっていました。 既に元のDBはサーバークラッシュの為無い状態です。 どなたかご教授お願い申し上げます。 <元DBの環境> OS:Windows2003Server DB:MySQL5.0 PHP:5.0 <リストアするDBの環境> OS:windowsXP DB:MySQL5.0 PHP:5.2

  • オンラインREDOログ障害からの復旧方法について

    現在、Oracle11g Release2 11.2.0.3(ASM使用) の環境で、オンラインREDOログファイルが全て消失した場合を想定して、以下の手順で復旧の方法をテストしています。 ----- 1.sqlコマンドでテーブルに1件データを挿入する。 2.フルバックアップ(バックアップセット)を取得する。 3.sqlコマンドでテーブルに1件データを挿入する。 4.累積増分バックアップを取得する。 5.sqlコマンドでテーブルに1件データを挿入する。 6.DBをシャットダウンする。 (RMAN> shutdown immediate;) 7.オンラインREDOログファイルを全て削除する。 8.DBをマウントする。 (RMAN> startup mount;) 9.リストアをする。 (RMAN> restore database;) 10.バックアップの際に除外している表領域をオフラインにする。 (SQL> Alter database datafile '+DATA/orcl/DATAFILE/hoge2' offline drop;) 11.リカバリをする。 (SQL> recover database using backup controlfile until cancel;) (ログの指定は AUTO) 12.DBをオープンする。 (RMAN> alter database open resetlogs;) 13.sqlコマンドでテーブルの中を確認する。 (SQL> select * from HOGEHOGE;) (データが1件) ----- 上記の手順でDBをオープンにするところまで上手くいったのですが、 私の考えでは、13でテーブルを確認するとデータが2件はいっていると思ったのですが、 結果は、1件だけでした。 累積増分バックアップを取得した時点(データが2件入った状態)まで戻したいのですが、 解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。 よろしくお願いします。

  • MSDE2000SP4のデータベースをMSSQLサーバーに移動

    MSDE2000SP4で設定されているDBを、まるごとMSSQLサーバー2000に移動したいのですが、どのようにしたらできますか? また、MSDEのDBをosqlコマンドでバックアップして、そのバックアップデータをSQLサーバーにインポートする事は可能でしょうか? ご助言お願致します。

  • データベースの復元について

    先日pgsqlの稼動しているサーバが起動できなくなり、何とかDBのバックアップを取ろうと色々やってみたのですが、pg_dumpも使えない状態だったので、pgsqlディレクトリをバックアップしました。 環境を再構築した後DBを作成し、baseにできたディレクトリの中にバックアップを取ったファイルを入れてみたのですが上手く動作しません。 何か良い方法はないでしょうか。 環境はredhat9、postgre7.3です。 よろしくお願いします。

  • データの復旧

    外付けのハードディスクのデーターを消してしまいました。 ファイルサルベージで復旧は出来ましたが、ファイル名が変わってしまい困っています。 元の状態のまま復旧できるソフトは在りませんか? OS10.48です。 宜しくお願い致します。

    • 締切済み
    • Mac
  • 弥生販売14 サーバー側のバックアップについて

    弥生販売14 ネットワーク版についての質問です。 SERVER PC1 PC2 をネットワークでつなぎ、SERVERにSQLSERVERをインストールして、2ユーザー版で同時運用しています。 これまでは弥生販売05ネットワーク版を使っており、SERVER上のPCに共有ファイルとしてファイル名DB8、ファイル名DD8をおき、定期的にこのファイルのバックアップを取る方法を使用していました。 しかし、弥生販売14では手順どおりSERVERにSQL Server をインストールして運用していますが、ある日突然SERVER PCが壊れたらどうしようという不安が常にあります。 毎回終了時にバックアップを行えばよいとは思いますが、毎日この作業を行うのは思った以上に時間がかかります。 弥生ドライブを使ってネットワーク越しにバックアップを取る方法もあるかと思いますが、時間と手間がかかるのではないかと思って行っておりません。 弥生販売05のときは毎日自動バックアップソフトを使ってファイル名DB8、ファイル名DD8のバックアップを行うだけですんでおり、SERVERが壊れたとしてもすぐに別のPCにファイル名DB8、ファイル名DD8を置いて共有すればすぐ復旧できて、とても手軽でした。 弥生販売14を運用するに当たり、SERVERが壊れたとき、手軽に復旧できる毎日の防御策で良いものはないでしょうか。

  • Oracle10gのデータベースの移行について

    Oracle10gのデータベースの移行について質問です。 Oracle10g が稼動しているサーバ機があります。 老朽化の為、新しいハードウェアへ入れ替える事になりました。 OSは、入れ替え前も入れ替え後もWindows Server 2003です。  DB: Oracle10g → Oracle10g  OS: Windows Server 2003 → Windows Server 2003 現行のサーバ上では4つのインスタンスが稼動しています。 新しいサーバ上に、同じ構成でそのまま移行する方法を検討していますが、下記のような方法で大丈夫なものでしょうか? (1)新しいサーバ上にOracle10gを初期データベースなしでインストールする (2)新しいサーバ上で新規のOracleインスタンスを4つ作成する (ORADIMツールを使用) (3)現行のサーバ上の各インスタンス・Oracle関連サービスを停止し、オフラインでデータベース関連のファイルのバックアップを取得する (4)現行のサーバから、新しいサーバへ、オフラインで取得したバックアップファイルを転送する (5)新しいサーバ上の各インスタンス・Oracle関連サービスを停止する (6)新しいサーバ上から、(3)で取得したファイルと同じファイルを削除する (7)新しいサーバ上で、バックアップしたファイルを現行のサーバと同じ位置に配置する (8)新しいサーバ上のOracle関連サービスと各インスタンスを起動し、動作を確認する どなたか、回答宜しくお願い致します。