質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

16304閲覧

SQL Serverを使ってバックアップされたファイルの復元方法

matilda12

総合スコア14

バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/05/19 07:22

SQL Server2016を使ってバックアップされたデータファイル(hoge.BAK)のファイルの復元方法がわかりません。

行った作業は

・SQL Server2017とSQLServer Management Studio(SSMS) 2017をインストール

・復元したいファイルをデスクトップにコピー

・SSMSとSQL Server2017を接続

・仮で作ったデータベースを選択し右クリック→「タスク」→「復元」→「ファイルおよびファイルグループ」→「復元元デバイス」→「参照」→「ファイル名」に「hoge.BAK」を入力→「OK」とすると

Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。
バックアップ デバイス・・・を開けません。オペレーティング システム エラー 2(指定されたファイルが見つかりません。)。
RESTORE HEADERONLY が異常終了しています。 (Microsoft SQL Server、エラー: 3201)

と表示されます。

エラーコードなどを調べてみましたが、解決策が見つかりませんでした。

どなたか教えて頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SQL Server をインストールしたマシンと、SSMSをのインストールされたマシンが別々ということはないでしょうか?
SQL Server で復元を行いたい場合、バックアップされたデータファイル(hoge.BAK)は SQL Server をインストールしたマシンに配置する必要があります。

投稿2019/05/19 07:56

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matilda12

2019/05/19 11:56

ku__ra__ge 様 回答して頂き、有難うございます。 上司から、hoge.BAKファイルを渡され、SQL ServerとSSMSを自分のPCにインストールして復元しろと言われたのですが、、 バックアップを行ったマシンでないと、復元できないということでしょうか? 私の理解力が乏しいので、間違っていればすみません。
sazi

2019/05/19 14:44

マイナス評価はしませんが、全然違います。
matilda12

2019/05/20 04:31

申し訳ありません。 理解力不足です、、
sazi

2019/05/20 04:45

@matilda12さん 私のコメントはこの回答に対するものです。
ku__ra__ge

2019/05/20 06:35

意図が伝わりづらく申し訳ありません。 復元元デバイスとして指定するバックアップファイルのパスは、SSMSを実行しているコンピュータから見たパスではなく、SQLServerを実行しているコンピュータから見たパスを指定する必要があります。 SSMSを実行しているコンピュータとSQLServerを実行しているコンピュータが異なるのであれば、SSMSを実行しているコンピュータにではなくSQLServerを実行しているコンピュータにバックアップファイルを配置して、そのコンピュータから見たパスを指定してください。…といった意図の回答でした。
sazi

2019/05/20 06:51 編集

>復元元デバイスとして指定するバックアップファイルのパスは、SSMSを実行しているコンピュータから見たパスではなく、SQLServerを実行しているコンピュータから見たパスを指定する必要があります。 それが誤りです。SSMSを介して処理が行われるので、SSMSから見えるパスであれば問題ありません。 SQLSERVERのコマンドか何かと勘違いしておられませんか?
ku__ra__ge

2019/05/20 08:26

> SSMSから見えるパスであれば問題ありません 実際やってみたのですが、やはりSSMSを実行しているコンピュータからしか見えないファイル(ローカルドライブのファイルなど)は指定できないように思えます。 以下URL画像の追加ボタンからファイル指定をするときの話をしているのですよね? https://i.imgur.com/r1NFshq.png すみません。この話題が長くなりそうであれば別の質問として投稿しようと思いますので言って下さい。
sazi

2019/05/20 08:38

> 追加ボタンからファイル指定をするときの話をしているのですよね? そうです。 出来ない事を証明するのは無理でしょうから、こちらから証明するのが良いのですが、別サーバー立てる時間は取れなくて・・・
sazi

2019/05/20 08:42 編集

ネットに転がってないかなーと思って探すんですけど、見つからないですし。 仰っているような事が事実なら、少なくとも注意すべき事ですから、それらを説明している文献は有りそうなものですけどね。
sazi

2019/05/20 09:28 編集

SQLSERVERから見えるパスという事は、クラウドサービスを利用するような場合、そのサーバーじゃないパスを指定しようと思ったら、そのサーバーにそれなりの設定が必要になりますよね。
ku__ra__ge

2019/05/20 10:45

個人サイトですがSQLSERVERから見えるパスに置かなければならないことが明記されたページがありました。 https://go-journey.club/archives/11878 追加ボタンを押して開く「バックアップファイルの検索」ダイアログが、SQLSERVERのフォルダとファイルが表示されるダイアログなので注意すべき事としてあまり書かれていないのかもしれません。
sazi

2019/05/20 12:33

そのリンクは手順上で書かれているだけでしょう。 パスはc:\とかになっていますし。
sazi

2019/05/20 15:14 編集

@ku__ra__geさん 証明もできないのに、「誤りです」と断言したのは、非礼でした。謝罪します。ごめんなさい。 ku__ra__geさんの手元には確認できる環境があるとの事で、回答されていることは事実だと思いますし、思い込みでコメントしてしまったと反省しています。
guest

0

ベストアンサー

・仮で作ったデータベースを選択し右クリック→「タスク」→「復元」→「ファイルおよびファイルグループ」→「復元元デバイス」→「参照」→「ファイル名」に「hoge.BAK」を入力→「OK」とすると

『「ファイル名」に「hoge.BAK」を入力』ではなくて、フルパスを入力するか、[・・・]ボタンでファイルを選択してみて下さい。

投稿2019/05/19 10:45

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matilda12

2019/05/19 11:51

sazi 様 回答して頂き、有難うございます。 sazi 様のおっしゃるとおりの方法で、hoge.BAKを選択することができました。 ですが、「OK」を押した段階で、「この要求のデータを取得できませんでした。」と表示されます。 補足情報として、復元しようとしているサーバ及びデータベースは、バックアップを取ったサーバ、データベースとは異なります。
sazi

2019/05/19 12:08

データベースを選択して、右クリックで「データベースの復元」から行ってみて下さい。
matilda12

2019/05/19 13:52

何度も回答して頂いて、有難うございます。 「データベースの復元」の「ソース」の「デバイス」にhoge.BAKのフルパスが通っており、データベース(A)に復元したいデータベース名も、正しく表示されました。 ですが、OKを押しても「データベース’Test’の復元に失敗しました。」と表示されます。 Testは仮に作ってあるデータベース名です。 転送先のデータベース(B)に仮で作ったデータベース名’Test'が表示してあり、その下の復元先(R)に最後に作成されたバックアップの日付があります。 復元するバックアップ(C)にも、復元したいhoge.BAKのデータベースが表示されてあります。 どうかご教授お願い致します。
sazi

2019/05/19 13:56 編集

バックアップと同じデータベース名を作成した上で、復元して下さい。
matilda12

2019/05/19 14:13

できました!本当に有難うございます!! 急を要しており、自分で調べずに回答待ちで申し訳ありません。 ですが、本当に助かりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問