562

データベースの SQL Server バックアップ ファイルを復元しようとしていますが、次のようなエラーがスローされます。

バックアップ セットは、既存のデータベース以外のデータベースのバックアップを保持します。

私のデータベースは SQL Server 2008 にあり、バックアップ ファイルは 2005 年にあります。

何が問題になる可能性がありますか?

4

26 に答える 26

903

私もこの問題に遭遇しました。

解決 :

  • 空のデータベースを作成して、そのデータベースにファイルを復元しない.bakでください。
  • SQL Server Management Studioの[データベース]ブランチを右クリックしてアクセスできる[データベースの復元]オプションを使用し、復元するソースを指定しながらデータベース名を指定します。
  • また、他のデータベースがまだ存在する場合は、「ファイル」でファイル名を変更してください。そうしないと、「ファイル'...'は上書きできません。データベース'yourFirstDb'によって使用されています」というメッセージが表示されます。
于 2013-02-20T11:41:25.417 に答える
203

また:

1) コマンドの使用WITH REPLACE中に使用しRESTOREます (GUI を使用している場合は、[オプション] -> [既存のデータベースを上書きする] ( WITH REPLACE) にあります)。

2)Delete競合している古いデータベースをRESTOREコマンドを使用して再度復元します。

詳細については、リンクを確認してください。

于 2012-04-18T07:16:03.230 に答える
103

まず、同じ名前の空のデータベースを作成します。次に、復元オプションに進みます

左ペインの[オプション]で、選択することを忘れないでください

  • 既存のデータベースを上書きする
  • レプリケーション設定を保持する

ここに画像の説明を入力

それでおしまい

于 2014-05-15T08:29:30.187 に答える
56

SSMS 2014を使用して、同じ問題に直面し、これを行うことで解決策を見つけました

- 既存のデータベースを上書きするオプションを選択するだけです (WITH REPLACE)

既存のデータベース > タスク > 復元 > データベース

于 2015-12-23T10:31:16.807 に答える
25

スクリプト アプローチを使用していて、LDF および MDF ファイルに関するエラーが発生した場合は、最初に次のコマンドを使用して、バックアップ セット内のファイルの論理名(およびその他の詳細) についてバックアップ ファイルをクエリできます。

-- Queries the backup file for the file list in backup set, where Type denotes 
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO

次のような結果が得られます。

ここに画像の説明を入力

そして、これらの論理名をクエリで使用できます。

    -- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
    RESTORE DATABASE DB 
    FROM DISK='C:\Temp\DB_backup.bak'
    WITH REPLACE,
      MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
      MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.ldf'; -- "DB_log" is LDF logical name from query above

詳細についてRESTORE FILELISTONLY は、SQL Server のドキュメントを参照してください。

于 2017-05-05T07:11:22.597 に答える
25

元の.mdf.ldfファイルDbがおそらくc:\programFile\....にあり、この情報がバックアップに保存されているためです。

インストール先の別の SQL Server に同じ DB を作成すると、c:\program Files (x86)\ ....通常どおり復元できません。ファイルのパスを再配置する必要が.mdfあります。.ldf

したがって:

  • 新しいサーバーに空の DB を作成します

  • 空のデータベースを右クリック > [タスク] > [復元] > [データベース] > [デバイス] をクリックして.bakファイル を選択 > 復元先のデータベースを選択

  • 左側の [ファイル] をクリックし、[すべてのファイルをフォルダーに再配置] を選択します。
  • 左側のサイトで [オプション] をクリックし、[上書き] をクリックします。

終わり!
それが役に立てば幸い!

于 2015-02-13T16:17:51.817 に答える
17

今日も同様の問題に遭遇しました。上記の解決策をすべて試しましたが、うまくいきませんでした。だから私の解決策をここに投稿してください。

復元前にテールロングバックアップのチェックを外すことを忘れないでください

復元前にテールロングバックアップのチェックを外すことを忘れないでください

他の人にも役立つことを願っています!

于 2015-04-07T04:15:39.683 に答える
11

また、データベース名が、復元しようとしているバックアップのデータベース名と一致していることを確認することも重要です。一致しない場合は、同じエラーが発生します。

于 2012-10-23T12:19:27.287 に答える
4

一部の人はこれを非常に複雑にしています。これは非常に簡単であることがわかりました。

1) .bak ファイルのデータベース名と同じ名前のデータベースを作成します!重要

2) データベースを右クリック | タスク > 復元 > データベース

3) [復元のソース] で [デバイスから] を選択します。

4) .bak ファイルを選択

5) 以下のグリッドビューでデータベースのチェックボックスを選択します

6) 右側の [ページの選択] で [オプション] を選択します。

7) 「レプリケーション設定を保持する (WITH KEEP_REPLICATION)」というラベルの付いたチェックボックスを選択します。

次に、一般ページに戻り、[OK] をクリックしてデータベースを復元します...以上です。

于 2014-02-26T16:27:45.263 に答える
3

テストのためにローカルに新しいデータベースを作成する必要があり、製品からバックアップがありました。最初にデータベースを作成し、新しいデータベースの上でBAKを実行しようとしたため、このエラーが発生しました。復元画面自体で新しいデータベース名を取得しながら、データベースを削除して復元しました。データベースは復元時に自動的に作成されました。

于 2013-11-18T19:27:20.397 に答える
2

オプションで、「名前を付けて復元」ファイル名を新しいデータベースの mdf および ldf に変更します。ソース データベースの .mdf および .ldf ファイルを参照しています。

于 2015-10-13T07:21:44.993 に答える
2

Generate scripts を使用して、別の方法で作業を完了しました。同じエラーのために Backup-Restore が問題の解決に役立たなかったので、それは私にとってはうまくいきました。

于 2013-12-01T08:19:10.630 に答える
1

新しい DB に復元し、ファイル名の構文を確認してください。ログ ファイルに記録されます。新しい SQL バージョンでは、"_log" サフィックスが付けられます。

オプションタブで既存のデータベースフラグを上書きすることを確認します

ファビオ

于 2015-02-10T10:54:40.887 に答える
0

この問題は、ファイルとフォルダーのアクセス許可に関連していると確信しています。

于 2014-11-18T14:44:51.893 に答える
0

本番データベースを同じサーバー上のステージング データベースに復元しようとしていました。

私の場合に機能した唯一のことは、新しい空のデータベースへの復元でした。これはうまく機能し、実稼働ファイルを上書きしようとはしませんでした (実稼働バックアップ ファイルを既存のステージング データベースに復元するだけの場合)。次に、古いデータベースを削除して名前を変更します。ファイルは新しい一時名を保持しますが、私の場合は問題ありません。

(または、最初にステージング データベースを削除してから、ステージング データベースと同じ名前の新しいデータベースに復元できます)

于 2015-04-22T01:20:28.553 に答える