メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

改善

SQL Server 仮想バックアップデバイスインターフェイス (VDI) プロトコルの現在の実装では、SQL Server から VDI クライアントに送信される最後のメッセージは VDC_Flush コマンドです。 データの損失を防ぐため、VDI クライアントは VDC_Flush コマンドに応答する前にバックアップを完了する必要があります。 SQL Server 2008 と FILESTREAM の導入を開始すると、 VDC_Flush コマンドはバックアップ中に複数回送信できます。 この操作により、VDI クライアントでバックアップ操作中にバックアップを複数回完了する必要があるという問題が発生します。 一部の VDI クライアントでは、このようなことはできません。 さらに、 VDC_Flush後により多くのデータが表示された場合に、バックアップがセキュリティで強化されないように、VDI クライアントがVDC_Flushコマンドに応答すると、SQL Server でトランザクションログが切り捨てられる場合があります。 ただし、VDI クライアントで最終的にバックアップが失敗し、トランザクションログも切り捨てられた場合は、データが失われることがあります。この更新プログラムは、SQL Server による VDI クライアントへのデータ送信が完了したことを示す VDC_Complete 新しい VDI コマンドVDC_Completeを追加します。 そのため、VDI クライアントは、SQL Server に応答を送信する前にバックアップを完了することができます。この機能によって、問題が発生した場合に VDI クライアントはバックアップに失敗し、トランザクションログが誤って切り捨てられるのを防ぐことができます。注: 新しい [ VDC_Complete ] コマンドをサポートするために、この更新プログラムには VDF_RequestComplete と VDF_CompleteEnabledの2つの新しい VDI 機能も追加されています。

更新プログラムの情報

この改善点は、SQL Server の次の累積的な更新プログラムに含まれています。 Sql server 2016 SP1 の累積更新プログラム 2 (sql server 2016 の累積更新プログラム 4 )     

累積的な更新プログラム 5 FOR Sql server 2012 Service Pack 3 (SP3) 累積更新プログラム 3(Sql Server 2014累積更新プログラム 10 (sql server 2014 SP1)

SQL Server の累積更新プログラムについて

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

SQL Server 2016 の最新の累積的な更新プログラム

    SQL Server 2014 SP1/SP2 の最新の累積更新プログラム

    SQL Server 2012 SP3 の最新の累積的な更新プログラム 

詳細情報

[新しい VDC_Complete ] コマンドを使用するには、次の実装を VDI クライアントに適用する必要があります。

  1. VDF_RequestComplete 新しい VDI 機能をリクエスト します。 SQL Server で VDC_Completeコマンドがサポートされている場合は、not NULL 応答を返します。 そうしないと、要求された機能に対して NULL 応答が返されます。 次のコードサンプルでは、この機能を要求する方法を示します。

    m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);
  2. SQL Server でGetConfiguration関数を使用して、新しいVDC_Completeコマンドがサポートされているかどうかを確認します。

    hr = m_pvdiComponents->m_pvdDeviceSet->GetConfiguration(timeout, m_pvdiComponents->m_pvdConfig);        if (!(m_pvdiComponents->m_pvdConfig->features & VDF_CompleteEnabled))       {              printf("Server does not support VDC_Complete.");              return VD_E_NOTSUPPORTED;       }
  3. Getcommand関数によって取得された VDI メッセージを処理する場合は、 VDC_Completeコマンドを処理するための追加の case ステートメントを追加します。

    case VDC_Complete:              // Close the media and ensure that book keeping is completed.              backupMedia->Close();              completionCode = ERROR_SUCCESS;              break;

注:VDC_Complete メッセージは、改善を使用できるようにバックアップアプリケーションに組み込む必要があります。

参照情報

ソフトウェアの更新を説明するために Microsoft が使用する 用語 について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×