0

SQL Server VSS Writer を使用して MS SQL Server のバックアップ/復元を行うツールを開発しようとしています。差分バックアップが機能しません。VSS を使用して差分バックアップを作成したことがある人がいるかどうかに興味があります。これが私がやっていることです:

  1. 完全バックアップを作成し、ファイルとそれに関連付けられたバックアップ コンポーネント ドキュメントを保存します。
  2. データベース内のテーブルを更新します。
  3. ' SetBackupState ' をVSS_BT_DIFFERENTIALに設定して、新しいバックアップを作成します。
  4. ここで、既存のコンポーネントをバックアップ コンポーネント ドキュメントに追加するときに、手順 1 でドキュメントからコンポーネントのタイム スタンプを見つけ、「 SetPreviousBackupStamp」でそれを呼び出します。
  5. スナップショットを取得したら、各コンポーネントを調べて、' GetPartialFileCount ' API を呼び出します。これは常に値 0 を返します。既存のコンポーネントに変更がある場合は、0 より大きい値を与える必要があると想定しています。

ここで何か不足していますか?特定のパラメーターなどを使用して SQL Server VSS Writer を開始する必要がありますか? (Windows Server 2008 / SQL Server 2008)を含むさまざまな構成を試しました

4

1 に答える 1

2

しばらくこの投稿を更新したいと思っていましたが、プログラムで見つけたすべてのバグに縛られてしまいました。Microsoft の何人かの人々が、私が抱えていた問題を突き止めるのを手伝ってくれました。これを乗り越えるのを手伝ってくれた Dileep と Ramesh (明らかな理由から彼らの姓は省略しています) に感謝したいと思います。

ここに私の発見があります:

  • SQL VSS Writer は差分バックアップをサポートしています。

  • 差分バックアップを作成する場合、「マスター」コンポーネントをバックアップのコンポーネントとして含めないでください。

  • 次の一連の API を使用して、各フェーズの後に常にライター ステータス エラーをチェックします: GatherWriterStatus()、GetWriterStatusCount()、GetWriterStatus()

  • ライターのステータスがエラーを示している場合、それ以降は予測不能です。

  • VSS SDK の一部として入手できる BETest ソース コードは、動作を探すのに最適な場所です。

  • BETest は、/C オプションを正しく取得する限り、単一データベース (完全/差分) のバックアップと復元 (完全/差分) を許可します。コンポーネントの構文は次のとおりです: "{Writer Id}":"Full Component Name" たとえば、私のマシンのデータベース 'Person' の場合、私のコンポーネント情報ファイルには次のものが含まれていました: "{A65FAA63-5EA8-4EBC-9DBD-A0C4DB26912A}":"ABP -PC\SQLEXPRESS\Person";

  • 差分復元を行う場合、「/AdditionalRestores」オプションを使用して完全復元を行う必要があります。

お役に立てれば。誰かが助けを必要としている場合は、この投稿を更新してください。通知が届きます。手伝います。

于 2011-06-02T17:26:55.643 に答える