53

次のクエリを使用してデータベースを復元しようとしました。

ALTER DATABASE [DatabaseName] SET Single_User WITH Rollback Immediate GO
RESTORE DATABASE DatabaseName FROM DISK = 'C:\DBName-Full Database Backup'
ALTER DATABASE [DatabaseName] SET Multi_User GO

しかし、データベースを復元する代わりに、次のエラーが発生します。

メッセージ 3159、レベル 16、状態 1、行 2

データベース「DatabaseName」のログの末尾がバックアップされていません。BACKUP LOG WITH NORECOVERY失いたくない作業がログに含まれている場合に、ログをバックアップするために使用します。WITH REPLACEステートメントのorWITH STOPAT句を使用してRESTORE 、ログの内容を上書きします。メッセージ 3013、レベル 16、状態 1、行 2RESTORE DATABASEが異常終了しています。

4

5 に答える 5

112

表示されるエラーメッセージは、既存のデータベースやログを気にしない場合に何をする必要があるかを正確に示しています。

RESTORE DATABASE DAtabaseName FROM DISK = 'C:\DBName-Full Database Backup' 
WITH REPLACE

SQL Server Management Studio([タスク]> [復元])でWITH REPLACE、左側の[オプション]ページを開き、[既存のデータベースを上書きする]にチェックマークを付けると、オプションを追加できます。

于 2012-09-11T13:38:13.960 に答える
29

これを使用している場合は、次のようにManagement Studio動作するはずです。

ここに画像の説明を入力

于 2014-07-25T12:25:14.013 に答える
7

または、データベースの復旧モデルをSimpleではなく に変更できますFull

  1. データベースを右クリック
  2. 選択properties->option
  3. recovery modelに変更simple

次に、作成したものがエラーを発生させることなく機能するはずです。

それは私とうまくいきました。

于 2014-10-29T16:40:08.400 に答える
2

または、データベース リカバリ モデルを「フル」ではなく「シンプル」に変更することもできます。

データベースを右クリックし、「プロパティ」、「オプション」を選択し、「リカバリ モデル」を「シンプル」に変更します。

次に、作成したものがエラーを発生させることなく機能するはずです。

于 2013-02-19T20:01:51.637 に答える
1

失いたくない作業がログに含まれている場合は、BACKUP LOGWITHNORECOVERYを使用してログをバックアップします。

RESTOREステートメントのWITHREPLACE句またはWITHSTOPAT句を使用して、ログの内容を上書きします。

本当に、それが答えです。そこに、メッセージの中で。何をしたいですか?尻尾をバックアップして、失われないようにしますか?バックアップされなかったログを置き換えますか?あなたの呼び出し。

于 2012-09-11T13:36:44.290 に答える