SQLサーバーのデータベースに.bakファイルをインポートする


230

.bak拡張子が付いたファイルがあります。

この日付をSQL Serverのデータベースにインポートするにはどうすればよいですか?


MSSQLを使用していることを想定しています。ここに、復元できるいくつかの方法を説明するスレッドがあります
Andrew Keith、

空のデータベースを作成し、.bakを使用して空のデータベースにデータを復元できます
Michel Ayres

最も簡単な方法は、3番目の回答、データベースの右クリック、インポート、デバイス、.bakファイルの選択、完了です。
2016

誰かが自動化フレンドリーなソリューションの答えを広げることができますか?UIを通過して数回クリックするのはあまり効率的ではありません。
L.ホランダ

回答:


251

上のSQL Server Management Studioを

  1. 左ペインの[ データベース ]を右クリック(オブジェクトエクスプローラー)
  2. [ データベースの復元...]をクリックします
  3. [ デバイス ]を選択し、をクリックして....bakファイルを追加します
  4. クリックしてOK、その後、OKを再度

できました。


4
これは魅力のように機能します。これらは優れた簡略化された指示であり、基本的には、ここで最も投票された回答に記載されているMicrosoftの公式リンクからの指示と同じです。
レオナルドロペス2015年

3
これが失敗した場合、おそらく既存のデータベースを消去する必要があります。
DigitalDesignDj 2015年

3
これではうまくいきません。正しいフォルダをポイントすると、ファイルも表示されません。ダイアログに正確なファイル名を貼り付けると、ファイルが存在しないと表示されます。また、ダイアログにはサーバーに存在しないドライブが表示されます。データベースは最後のバックアップの場所を記憶していますか?その時点からの復元のみを受け入れますか?復元するバックアップファイルを選択できないのは非常に奇妙です。
James

13
私の.BAKファイルは、ユーザーアカウントの下にある「ダウンロード」ディレクトリにありました。このツールでファイルを確認して復元できるようにするには、.BAKファイルをC:のルートに移動する必要がありました。ユーザーの下にあるファイルが何らかの理由で表示されませんでした。
jeremysawesome 2017

6
これは動作しません。「データベース」を右クリックしましたが、「データベースの復元...」がありません。
user34660 2017

53

.bakファイルはデータベースのバックアップです。以下の方法でバックアップを復元できます。

方法:データベースバックアップを復元する(SQL Server Management Studio)


8
これは動作しません。「... 2)データベースを展開します。データベースに応じて、ユーザーデータベースを選択するか、システムデータベースを展開してから、システムデータベースを選択します。3)右クリックし、[タスク]をポイントして、[次へ]をクリックします。戻す。" ない!存在しないデータベースを右クリックすることはできません!結局のところ、指定されたデータベースを復元またはインポートしようとしています。ロードされていないデータベースを右クリックするにはどうすればよいですか?MSDNの奇妙なこと、およびSSMSでの復元機能の悪化が述べられていますが、機能しません。どうして?幸いなことに、他のSQLコマンドがここで機能します。
ニコラスピーターセン

14
新しいデータベースに復元するための別の記事がここにあります:msdn.microsoft.com/en-us/library/ms186390(v
sql.90)

35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

そしてあなたは適切なmdf、ndf、ldfファイルを使用して移動する必要があります

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'

1
Azure Data Studioを使用してmacOSホストで.bakファイルをsql Dockerコンテナーに復元したいので、これは私にとって非常に役に立ちました。.bakをコンテナーにコピーし、パスを調整して/に変更するだけで、正常に復元できました。
andrewb

@andrewbを助けてくれてうれしい:)
RameshVel

30

ネイティブのSQL Serverメソッドを使用してこれらのデータベースバックアップファイルを復元するか、ApexSQL復元ツールを使用してファイルを仮想的にすばやくアタッチし、完全に復元されたデータベースとしてアクセスできます。

免責事項:私はApexSQLで製品サポートエンジニアとして働いています


18

[データベースの復元...]を選択する代わりに、[ ファイルとファイルグループの復元 ...]を選択します

次に、データベース名を入力し、ソースとして.bakファイルのパスを選択し、復元チェックボックスをオンにして、[OK]をクリックします。.bakファイルが有効な場合は、機能します。

(SQL Serverの復元オプション名は、非常に単純なタスクでは直感的ではありません。)


これは良いアドバイスです。私はこれを行い、復元が成功したと報告しました。しかし、少し問題が残っています...データベースはオブジェクトエクスプローラーにリストされていません。私は "attach"を試みます、そしてそれは利用可能な正しい.mdfファイルさえ持っています(私は復元の製品を想定しています)。アタッチしようとすると、すでに使用されているというエラーがスローされます。この段階のヒントはありますか?
AlanSE、2015

新しいデータベースを確認するには、最後に必ず更新してください。これは、立ち上げて実行するための最も迅速なソリューションである可能性があります。
デモンゴレム2016年

これは、同じデータベースの.bakを新しいデータベースとしてローカルにインポートするときに
有効だっ

7
  1. DBを保存するサーバーに接続します
  2. データベースを右クリック
  3. 復元をクリックします
  4. ソースセクションの下のデバイスラジオボタンを選択します
  5. 追加をクリックします。
  6. .bakファイルが保存されているパスに移動して選択し、[OK]をクリックします
  7. DBの宛先を入力してください
  8. DBを保存する名前を入力してください
  9. OKをクリックします

できた


4

単に使う

sp_restoredb 'Your Database Name'、 'Location From you want to restore'

例:sp_restoredb 'omDB'、 'D:\ abc.bak'


これと違い何RESTORE DATABASEのようmsdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspxは
2017年

1
データベースの復元は、DBの構造がバックアップファイルと同じ場合にのみ復元操作を実行しますが、sp_restoredb構造が異なるデータベースや完全に空の(新しい)データベースでも復元を実行します。
Omprakash tomar 2017年

3
  1. PCの次の場所にバックアップ.bakファイルをコピーします。C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. DBを保存するサーバーに接続します
  3. データベースを右クリック
  4. 復元をクリックします
  5. ソースセクションの下のデバイスラジオボタンを選択します
  6. 追加をクリックします。
  7. .bakファイルが保存されているパスに移動して選択し、[OK]をクリックします
  8. DBの宛先を入力してください
  9. DBを保存する名前を入力してください
  10. OKをクリックします

上記の解決策は、バックアップ(.bak)ファイルを保存する場所を逃しました。これでうまくいくはずです。それは私のために働いた。


1

開発プロセスでデータベースを頻繁に復元する必要がある場合は、nodeパッケージを使用できます。

インストール:

npm install -g sql-bak-restore

使用法:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

引数:

  • bakpath、ファイルへの相対パスまたは絶対パス
  • 復元するデータベースのdbName(!!この名前のデータベースが存在する場合は削除されます!!)
  • oldDbName、データベース名(わからない場合は、何かを指定して実行すると、実行後に使用可能なデータベースが表示されます。)
  • 所有者、ユーザー名、作成してdb_owner特権を与える(パスワード "1")

!! sqlcmdコマンドラインユーティリティがPATH変数に含まれている必要があります。

https://github.com/vladimirbuskin/sql-bak-restore/


1

Microsoft SQL Server Management Studio 2019の場合:

ここに画像の説明を入力してください

データベースの復元ウィンドウで:

  1. デバイスを選択

  2. 追加を選択し、ターゲットファイルを選択

  3. 確認できます

  4. 復元を確認します

ここに画像の説明を入力してください

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