web-dev-qa-db-ja.com

「差分バックアップを実行できません...現在のデータベースバックアップは存在しません」を修正するにはどうすればよいですか?

最近、FULL復旧モデルに切り替えました。フルバックアップは毎週末に行われ、差分は毎日取られます。

問題は、差分バックアップが常に機能するとは限らないことです。ジョブ履歴に記録されたエラーメッセージは

ユーザーとして実行:ユーザー名。 ... 32ビット版著作権(C)Microsoft Corp 1984-2005の場合は9.00.3042.00。全著作権所有。
開始:11:20:12 AM進行状況:2013-01-25 11:20:13.90ソース:{450389BA-54C2-4892-9CD0-0126CA9B0ED8}クエリ "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..spを実行しています"。:100%完了終了進行エラー:2013-01-25 11:20:14.40コード:0xC002F210
ソース:データベースのバックアップ(差分)SQL実行タスク
説明:クエリ "BACKUP DATABASE [MyDatabase] TO DISK = N'E:\ Database Backups\MyDatabase_backup_201301251120.diff 'WITH DIFFERENTIAL、NOFORMAT、NOINIT、NAME = N'MyDatabase_backup_20130125112014'、SKIP、REWIND、NOUNLOADを実行します、STATS = 10 "は次のエラーで失敗しました:"現在のデータベースバックアップが存在しないため、データベース "MyDatabase"の差分バックアップを実行できません。 WITH DIFFERENTIALオプションを省略してBACKUP DATABASEを再発行することにより、データベース全体のバックアップを実行しますBA ...パッケージの実行fa ...ステップは失敗しました。

完全バックアップジョブは毎回正常に完了し、見つかったクエリ here を使用してmsdb.dbo.backupsetで表示できるため、存在することがわかります。再起動後、差分バックアップは次の完全バックアップまで正常に完了します

ここに私が持っている仕事の履歴を見てみましょう:

 1/16-完全バックアップ-成功
 1/17-差分バックアップ-成功
 1/18-差分バックアップ-成功
 1/19-差分バックアップ-成功
 1/20-完全バックアップ-成功
 1/21-差分バックアップ-失敗
 1/21-差分バックアップ-失敗
 1/22-完全バックアップ-成功
 1/22-差分バックアップ-失敗
 1/22-再起動
 1/23-差分バックアップ-成功
 1/23-再起動
 1/24-差分バックアップ-成功
 1/25-完全バックアップ-成功
 1/25-差分バックアップ-失敗

再起動は、@@SERVERNAMEnullであるという無関係なエラーが原因で発生したため、@@SERVERNAMEを修正して問題が解決するかどうかを確認するまで、この質問の投稿を保留しましたが、それはできませんでしたそして今どこから始めればいいのか分かりません。

SQL Serverがデータベースの完全バックアップを認識しない原因は何ですか?どのように修正できますか?

また、これが関連しているかどうかはわかりませんが、差分バックアップはかなり大きく見えるので、最初(1/16に)に取得したデータベースの完全バックアップから差分を実行しているのではなく、最近の完全バックアップ。完全バックアップは約260GBで、1/23-1/24からの差分はそれぞれ30GBです。

SQL Serverメンテナンスプランウィザードを使用してジョブをセットアップし、SQL Server 2005を使用しています

メンテナンスプランの[T-SQLの表示]ボタンは、次のコードを返します。

完全バックアップ:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140607_2543780.bak' 
WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140607_2523778'

差分:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140537_4073936.diff' 
WITH DIFFERENTIAL, NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD,  STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140537_4053934'

これは 別の質問があります と密接に関連していますが、質問が異なり、他の質問に対する既存の回答のため、他の質問を編集する代わりに新しい質問を投稿することがチャットで提案されました。

9
Rachel

SQL差分バックアップを壊す裏で何かがスナップショットを撮っている場合、新しい差分の前にフルを取得する必要があります。差分を作成する前に、スナップショットを取得しているものを停止するか、後で完全バックアップを取得することを確認できます。 Ola HallengrenのMaintenance Solutionを使用している場合、このシナリオが実行されたときに、差分を自動的にフルに変更できます。

6
cfradenburg