現在のデータベースバックアップがないため、BACKUP LOGを実行できません


103

データベースを復元しようとしましたが、このメッセージが表示されました。このデータベースを復元するにはどうすればよいですか?

データベース 'farhangi_db'の復元に失敗しました。
(Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------追加情報:

System.Data.SqlClient.SqlError:
現在のデータベースバックアップがないため、BACKUP LOGを実行できません。(Microsoft.SqlServer.SmoExtended)


2
これは差分バックアップですか?
Amir Keshavarz 2013年

@AmirrezaKeshavarz:何ですか?(motavajeh nemisham manzuretuno)
サマン

1
つまり、どのようなバックアップを復元しますか?(トランザクションログバックアップ/フルバックアップ/差分バックアップ?)
Amir Keshavarz 2013年

トランザクションログが壊れているようです
bksi 2013年

データベースは存在しますか?L
アミールケシャバルズ2013年

回答:


204

最初は、データベースを作成してから、バックアップファイルを新しい空のデータベースに復元しました。

[データベース]を右クリック> [データベースの復元]> [全般]:[デバイス]:[バックアップファイルのパス]→[OK]

これは間違っていました。最初にデータベースを作成するべきではありませんでした。

今、代わりに、私はこれを行います:

[データベース]を右クリック> [データベースの復元]> [全般]:[デバイス]:[バックアップファイルのパス]→[OK]


私は同じエラーを経験し、それは私のために働いた。
javiniar.leonard

私のためにも働いた
nbhatti2001

127

この問題の別の原因は、Take tail-log backup before restore「オプション」設定が有効になっている場合です。

[オプション]タブで、Take tail-log backup before restoreまだ存在しないデータベースに復元する前に無効化/チェック解除します。


@Peachに感謝します。私の時間を節約できます。
フランクMyat木2015

@桃のおかげで時間を節約できました。
LKC 2017年

@ピーチありがとうございます!
Mohit Dharmadhikari 2017年

ANDオプション "WITH REPLACE"を確認してください
Andrii Horda

32

以下の画像を参照し、SqlServerに変更を適用してください。

最初のデータベース上で右クリック - > [ タスク ] - > [ 復元 ] - > [ バックアップファイルを選択 - > 最後に[オプション]タブで変更を適用します

SqlServerに変更を適用してください


私の場合、これを行い、最初のチェックボックス「既存のデータベースを上書きする(置換あり)」をチェックして機能します。
AmaurysSánchez5

6
  1. 新しいデータベースがあることを確認してください。
  2. データベース(ユーザー、パスワードなど)にアクセスできることを確認してください。
  3. エラーのないバックアップファイルがあることを確認します。

これがお役に立てば幸いです。


2

これのもう1つの原因は、同じデータベースを別の名前で復元した場合です。既存のものを削除してから復元すると、解決されます。


答えてくれてありがとう。笑、なぜMicrosoft SQL Serverが「おい、元のデータベースを削除してから復元する!」
sivabudh

1

私たちのケースでは、ログ配布を設定する準備としてバックアップを実行した後で、プライマリデータベースの復旧モデルが変更されたことが原因でした。

バックアップを実行する前に復旧モデルが完全復旧 設定されていることを確認し、ログ配布を設定することでそれが解決されました。


1

新しいSQL2014フォルダーの場所への再配置にチェックマークを付けることにより、SQL 2008からSQL 2014に存在しないDBに復元する際のエラーを修正しました。


1

すでにデータベースを作成している場合は、次のSQLを使用して復元できます

RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE

0

バックアップで上書きしたい既存のDBを削除し、バックアップから復元したところ、エラーなしで動作しました。


0

復元しようとしているデータベースバックアップファイルが、復元しようとしているのと同じ環境からのものかどうかはわかりません。

.mdfファイルと.ldfファイルの宛先パスは、バックアップファイル自体と共に存在することに注意してください。

これが当てはまらない場合、つまり、バックアップファイルが現在のホスティング環境とは異なる環境からのものであることを意味します。(主にDockerイメージでdbを復元する場合)

それを行う方法: データベース->データベースの復元-> [ファイル]オプション->(「すべてのファイルをフォルダに再配置する」をチェック-ほとんどのデフォルトパスはホスティング環境にすでに入力されています)


0

それでも問題が解決しない場合は、[データベースの復元]ページに移動し、[ファイル]タブの[すべてのファイルをフォルダーに復元する]をオンにします。


0

私の場合、SQL Server 2008 R2データベースをSQL Server 2016に復元しています。 [全般]タブでファイルを選択した後、[オプション]タブに移動して次の2つのことを行う必要があります。

  1. 既存のデータベースの上書きをアクティブにする必要があります
  2. レコードの終わりのコピーを無効にする必要があります

-1

単にあなたはこの方法を使うことができます:

  1. 同じ名前のデータベースがある場合: WIN+R-> services.msc-> SQL SERVER(MSSQLSERVER)->Stop
  2. MySQLデータフォルダーパスに移動し、プレビューデータベースファイルを削除します
  3. SQLサービスを開始する
  4. データベースを右クリックして、データベースの復元を選択します
  5. ファイルタブでデータファイルフォルダとログファイルフォルダを変更します
  6. [OK]をクリックしてデータベースを復元します

私の問題はこの方法で解決されました...


-1

データベースを右クリックしますプレスタスク>バックアップし、データベースを復元する前にデータベースからバックアップします。この問題を解決するためにこの方法を使用しています。

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