「現在のデータベース バックアップが存在しないため、データベース「myDb」の差分バックアップを実行できません。」

「現在のデータベース バックアップが存在しないため、データベース「myDb」の差分バックアップを実行できません。」

差分バックアップを取ろうとすると、よくある問題が発生するようです。SQL Server 2008 Standard (64 ビット) を使用しており、バックアップには Litespeed v 5.0.2.0 を使用しています。完全バックアップは週に 1 回、差分バックアップは毎日取っています。問題は、差分バックアップを取ろうとするたびに、次のエラーが発生することです。

中止要求により VDI のオープンに失敗しました。
バックアップ データベースが異常終了しています。

現在のデータベース バックアップが存在しないため、データベース "myDb" の差分バックアップを実行できません。WITH DIFFERENTIAL オプションを省略して BACKUP DATABASE を再発行し、完全なデータベース バックアップを実行してください。

問題は、二重チェックをしたので、完全バックアップが 100% 取れていることがわかっていることです。差分バックアップを取ることができたのは 1 回だけで、それは完全バックアップを取った直後に取ったときでした。

いろいろ調べてみたところ、これはかなり一般的なこと (主に SQL 2005 の場合) で、多くの人が提案しているが私がまだ試していない解決策は、SQL Server VSS Writer サービスを無効にすることです。これの問題は、#1 サードパーティのバックアップ ソフトウェアを使用しているため、このサービスが必要になる可能性があると思うこと、#2 このサービスが正確に何をするのかわからないため、簡単に無効にしたくないことです。

皆さんはこの問題を経験したことがありますか?また、どのように解決しましたか?

ありがとう、

答え1

SQLデータ以外のものについては、サーバー上でVSSバックアップ(NTbackup、BEなど)を実行していますか?これただし、バックアップ ソフトウェアがスナップショットに VSS を使用している場合、SQL 差分バックアップが無効になる可能性があります。

私の知る限り、LSはニックが言ったようにVSSを使用していません。このスレッド修正方法は、SQL ライター サービスを無効にすることでした。

コメントに基づいて更新:

サーバー上の他のファイルをバックアップするために NTbackup を使用しているため、修正するには SQL ライター サービスを無効にする必要があります。

NTbackupが実行されると、全て必要でなくても、利用可能な VSS ライターを使用します。つまり、スナップショットの作成中に、SQL ライターが DB を一貫性のある状態にします (キャッシュをディスクにフラッシュします)。その後、シャドウ コピーから情報をコピーしていなくても、DB はバックアップされたと認識します。これがバックアップを壊す原因です。

VSS が DB に対して実行されているかどうか (実行されていてチェーンが壊れているのは間違いない) を確認するには、SQL ログ (エラー ログにあると思います) を確認します。NTbackup ジョブの実行中に、フリーズ/解凍イベントが表示されるはずです。

答え2

Lightspeed を使い始めてから数年経っているので、状況は変わっているかもしれませんが、Lightspeed はバックアップを実行するための独自の拡張ストアド プロシージャを提供していませんか? その場合、差分を実行するにはこれらを呼び出す必要があります。ネイティブの BACKUP DATABASE コマンドを呼び出すべきではないでしょう。ネイティブと Lightspeed のバックアップを混在させることはできないと思います。

Quest のオンライン製品ドキュメントを調べようとしましたが、残念ながら顧客になる必要があります。

SQL Server のネイティブ バックアップの観点から見ると、完全バックアップを一度も実行したことがない場合は、差分バックアップを実行することはできません。

VSS サービスでは、ボリューム シャドウ コピーを介して SQL Server のファイル レベルのバックアップが可能です。バックアップに Lightspeed を使用しており、SQL Server ディレクトリをサーバー レベル (OS) のバックアップから除外している場合は、これをオフにしても問題ないと思われます。これは、差分バックアップが取れないこととはまったく関係ありません。

SQL Serverインスタンスを再起動すると問題は解決しますか?解決する場合は、SQL Serverのmemtoleaveを増やすことを検討してください。これをチェックしてください

答え3

この問題が発生する最も一般的な原因は、データベースのスナップショット (VSS コピー - ボリューム シャドウ コピー) を取得する別のバックアップ ソフトウェア (NTBackup、BE、Bacula など) がある場合です。これにより、バックアップのチェーンが壊れ、以前の差分バックアップが無効になります。そのため、現在の差分バックアップ プロセスが開始されると、最初の完全バックアップまたは別の差分バックアップが以前に実行されたことを確認できないため、失敗します。

まず、どのソフトウェア ツールがデータベースのスナップショット バックアップを作成しているかを調べる必要があります。この問題を解決する方法はいくつかあるためです。NTBackup を使用してスナップショット バックアップを作成する最も一般的なケースを考えてみましょう。NTBackup のソリューション まず、サービス メニューで SQL Server VSS Writer をチェックします。次の設定になっている必要があります: 開始の種類: 手動、サービスを停止する必要があります。SQL Server VSS Writer サービスが実行中でスナップショットが取得されると、完全復旧モデルがブロックされ、バックアップ チェーンが切断されます。SQL Server VSS Writer の設定を変更するには、[スター メニュー] に移動し、開いたウィンドウで [サービス] を見つけて [SQL Server VSS Writer] を選択します。

サービスを右クリックして「プロパティ」を選択し、開いたウィンドウで「スタートアップの種類」を「手動」に設定し、「サービスの状態」セクションで「停止」を押して、コンピューターを再起動した後、サービスが自動的に実行されないことを確認し、「OK」をクリックしてすべての変更を適用します。

答え4

Bacula がデータベースのスナップショットと自分の SQL Server バックアップを作成しているにもかかわらず、同じ問題が発生しました。サーバー上の DB のサブセットでこの問題が発生する原因となっている何らかのバグがあり、非常に困惑しました。最終的に、バックアップのタイミングを変更して、SQL Server の内部フラグが正しくリセットされ、完全バックアップが作成されたことが記録されるように、Bacula バックアップ後に SQL バックアップが実行されるようにすることで解決しました。これは 2005 のことでした。おそらく、同じ VDI の問題が 2008 でも発生しているのでしょう。

参照ここ先ほどの質問でした。

関連情報