web-dev-qa-db-ja.com

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

差分バックアップを作成しようとすると、かなり一般的な問題のように思われます。 SQL Server 2008 Standard(64ビット)があり、バックアップを取るためにLitespeed v5.0.2.0を使用しています。完全バックアップは週に1回、差分バックアップは毎日取得します。問題は、diffバックアップを作成しようとするたびに、次のエラーが発生することです。

要求された中止が原因でVDIのオープンに失敗しました
BACKUPDATABASEが異常終了しています。

現在のデータベースバックアップが存在しないため、データベース「myDb」の差分バックアップを実行できません。 WITH DIFFERENTIALオプションを省略して、BACKUP DATABASEを再発行することにより、データベースの完全バックアップを実行します。

問題は、ダブルチェックしただけなので、完全バックアップがあることを100%知っていることです。差分バックアップをとることができたのは一度だけで、それは完全バックアップをとった直後にそれをとったときでした。

私は周りを検索して、これがかなり一般的であり(ほとんどはSQL 2005で)、多くのpplが提案し、まだ試していなかった解決策はSQL Server VSSWriterサービスを無効にすることであることに気付きました。これの問題は、#1サードパーティのバックアップソフトウェアを使用しているため、このサービスが必要になる可能性があることです。#2サービスの機能が正確にわからないため、そのように無効にしたくありません。

この問題を経験したことがありますか?また、どのようにして修正しましたか?

ありがとうございました、

8
user44127

SQLデータ以外のもののためにサーバー(NTbackup、BEなど)でVSSバックアップを実行していますか? this によると、バックアップソフトウェアがスナップショットにVSSを使用している場合、SQL差分バックアップを無効にすることができます。

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

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

NTbackupを使用してサーバー上の他のファイルをバックアップしているため、修正はSQLWriterサービスを無効にすることです。

NTbackupを実行すると、必要がない場合でも、使用可能なVSSライターを[〜#〜] all [〜#〜]呼び出します。これは、スナップショットの作成中にSQLライターがDBを一貫性のある状態(キャッシュをディスクにフラッシュ)にすることを意味します。 DBは、シャドウコピーから情報をコピーしなかった場合でも、バックアップされたと見なします。これがあなたのバックアップを壊しているものです。

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

7
Holocryptic

lightspeedを使用してから数年が経ちましたので、これは変更された可能性がありますが、light speedは、バックアップを実行するための独自の拡張ストアドプロシージャを提供しませんか?その場合、差分を実行するためにこれらを呼び出す必要があります。おそらく、ネイティブのBACKUPDATABASEコマンドを呼び出すべきではありません。ネイティブ/ライトスピードのバックアップを組み合わせて使用​​することはできないと思います。

私はQuestsのオンライン製品ドコをいじってみましたが、残念ながらあなたは顧客である必要があります。

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

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

SQL Serverインスタンスを再起動すると問題は解決しますか?もしそうなら、SQLサーバーの増加を検討することをお勧めしますmemtoleave これをチェックしてください

1
Nick Kavadias

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

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

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

1
Olek Nilson

Baculaがデータベースのスナップショットと自分のSQLServerバックアップを取得しているにもかかわらず、同じ問題が発生しました。サーバー上のDBのサブセットでこれを発生させていたある種のバグがあり、これは最も厄介でした。結局、私の解決策は、バックアップのタイミングを変更して、SQLバックアップがBaculaバックアップの後に実行されるようにし、SQLServerの内部フラグが正しくリセットされて完全バックアップが行われたことを確認することでした。それは2005年のことでした。同じVDIの問題が2008年にも影響を及ぼしていると思います。

参考のために ここ は私の以前の質問でした。

0
Chris W