• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLServerバックアップ戻せない)

SQLServerバックアップが復元できない!バックアップファイルの拡張子が違います

このQ&Aのポイント
  • SQL Server2012 Expressで作成したデータベースをUSBメモリにバックアップしましたが、復元できません。
  • バックアップファイルの拡張子がbakとtrnとなっており、USBメモリに記録されているmdfとldfではありません。
  • バックアップを失敗したのでしょうか?何とか、一部のデータでも復元できないでしょうか?

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

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

> SQL Server2012 Expressで作成したデータベースをUSBメモリにバックアップしました。 [タスク]→[復元]メニューで復元できるのは、[タスク]→[バックアップ]でバックアップしたデータです。 (この方法でバックアップを取ったのならbakファイルができているはずです) 従って、mdfファイルとldfファイルからデータベースを復元するには 別の方法をとる必要があります。 このあたりを参考にしてみてください。 http://okwave.jp/qa/q4614355.html

TaketsuruOishi
質問者

お礼

回答ありがとうございます。 参考ページの通りにやってみましたところ、データベースは復元できましたが、なぜか中身がありませんでした。 決定的にバックアップが失敗していたのかも知れません。 仕方が無いので、コツコツと作り直すことにします。 この度は本当にありがとうございました。

その他の回答 (2)

  • innoya
  • ベストアンサー率71% (10/14)
回答No.3

こんにちは。 どんな方法でバックアップを行ったかは分かりませんが、 普通にバックアップを行うと「bak」,「trn」拡張子で作成されます。 「mdf」,「ldf」のファイルがありましたら、「ATTACH」で復元することができます。 利用方法は下記のとおりです。 CREATE DATABASE [データベース名] ON ( FILENAME = N'D:\SQL_Data\DBFileName.mdf' ) ,( FILENAME = N'D:\SQL_Data\DBFileName_log.ldf' ) FOR ATTACH GO 例えば、データベース名が「LogDB」だとしたら CREATE DATABASE LogDB ON ( FILENAME = N'D:\SQL_Data\LogDB.mdf' ) ,( FILENAME = N'D:\SQL_Data\LogDB_log.ldf' ) FOR ATTACH GO こんな感じになるかと思います。 FILENAMEのパスは正しく入力してください。 またUSBにあるファイルをサーバーにコピーしてからご利用ください。 上記のパスにUSBを指定してしまうと復元するデータベースがUSBと繋がってしまいますので、ご注意ください。

TaketsuruOishi
質問者

お礼

回答ありがとうございます。 アタッチをGUIでやってみましたところ、データベースは復元できましたが、なぜか中身がありませんでした。 決定的にバックアップが失敗していたのかも知れません。 仕方が無いので、コツコツと作り直すことにします。 この度は本当にありがとうございました。

回答No.2

通常拡張子mdfはデータベース本体でldfはログその物です。バックアップとはどのようにされてのでしょうか、本体のバックアップはBACKUP DATABASEを使いログはBACKUP LOGを使って行います、このバックアップファイルで戻すのが「復元」(RESTORE)です。データベース本体その物を戻す場合はUSBメモリからHDD上にファイルをコピーしておいて「アタッチ」で対応します。

TaketsuruOishi
質問者

お礼

回答ありがとうございます。 アタッチにて、復元したところ、データベースは復元できましたが、なぜか中身がありませんでした。 決定的にバックアップが失敗していたのかも知れません。 仕方が無いので、コツコツと作り直すことにします。 この度は本当にありがとうございました。

関連するQ&A