データベースを復元しようとしましたが、このメッセージが表示されました。このデータベースを復元するにはどうすればよいですか?
データベース 'farhangi_db'の復元に失敗しました。
(Microsoft.SqlServer.Management.RelationalEngineTasks)
- - - - - - - - - - - - - - - 追加情報:System.Data.SqlClient.SqlError:BACKUP LOGを実行できません
現在のデータベースバックアップはありません。 (Microsoft.SqlServer.SmoExtended)
[データベース]> [データベースの復元]> [一般]を右クリックします。デバイス:[バックアップファイルのパス]→[OK]
最初にデータベースを作成し、バックアップファイルを新しい空のデータベースに復元しました。これは間違っていました。最初にデータベースを作成するべきではありません。
今、私はこれを行います:
[データベース]> [データベースの復元]> [一般]を右クリックします。デバイス:[バックアップファイルのパス]→[OK]
この問題の別の原因は、Take tail-log backup before restore
「オプション」設定が有効になっている場合です。
[オプション]タブで、Take tail-log backup before restore
を無効/チェック解除してから、まだ存在しないデータベースに復元します。
これがあなたのお役に立てば幸いです。
これの別の原因は、同じデータベースを別の名前で復元した場合です。既存のものを削除してから、復元して解決しました。
新しいSQL2014フォルダーの場所への再配置にチェックマークを付けることで、SQL 2008からSQL 2014に存在しないDBに復元する際のエラーを修正しました。
私たちのケースでは、ログ配布のセットアップの準備としてバックアップを行った後に、プライマリデータベースの復旧モデルが変更されたことが原因でした。
復旧モデルが完全復旧beforeに設定されていることを確認し、バックアップを実行してログ配布を設定すると、解決されました。
すでにデータベースを作成している場合は、次のSQLを使用して復元できます
RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE
バックアップで上書きしたい既存のDBを削除し、バックアップから復元したところ、エラーなしで機能しました。
それでも問題が解決しない場合は、「データベースの復元」ページに移動し、「ファイル」タブの「すべてのファイルをフォルダに復元する」をチェックしてください。
復元しようとしているデータベースバックアップファイルが、復元しようとしているのと同じ環境から来ているかどうかはわかりません。
.mdfファイルと.ldfファイルの宛先パスは、バックアップファイル自体と共に存在することに注意してください。
これが当てはまらない場合、バックアップファイルが現在のホスティング環境とは異なる環境から来ていることを意味します。mdfおよび.ldfファイルパスがマシン上と同じ(存在する)ことを確認し、そうでない場合はこれらを再配置します。 (ほとんどがDockerイメージのdbを復元する場合)
その方法:データベース内->データベースの復元-> [ファイル]オプション->(「すべてのファイルをフォルダーに再配置する」にチェックを入れます-ほとんどのデフォルトパスはホスティング環境にすでに入力されています)