Применяется к
SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Программ

В текущей реализации протокола виртуального устройства резервного копирования SQL Server (VDI) Последнее сообщение, отправленное с помощью SQL Server в клиенте VDI, будет VDC_Flush командой. Чтобы предотвратить потерю данных, клиент VDI должен завершить резервное копирование, прежде чем отвечать на команду VDC_Flush . Начиная с SQL Server 2008 и знакомым с FILESTREAM, команда VDC_Flush может быть отправлена несколько времен во время резервного копирования. Эта операция приводит к тому, что клиент VDI должен выполнить резервное копирование несколько операций во время резервного копирования. Это невозможно для некоторых клиентов VDI. Кроме того, если клиент VDI отвечает на команду VDC_Flush , не гарантируя, что резервная копия зафиксирована при поступлении дополнительных данных после VDC_Flush, SQL Server может Усечь журнал транзакций. Тем не менее, если резервная копия клиента VDI завершается сбоем, а журнал транзакций также усечен, может произойти потеря данных. Это обновление добавляет новую команду VDI VDC_Complete , показывающую, что SQL Server завершил передачу данных в клиент VDI. Таким образом, клиент VDI сможет завершить резервное копирование перед отправкой ответа на SQL Server. Благодаря этой функции клиент VDI не сможет выполнить резервное копирование, если что-то пошло не так, и не помешает усечению журнала транзакций по ошибке.Примечание. Для поддержки новой команды VDC_Complete это обновление также добавляет две новые функции VDI VDF_RequestComplete и VDF_CompleteEnabled.

Сведения об обновлении

Это улучшение входит в состав указанных ниже накопительных обновлений SQL Server. Накопительное обновление 2 для SQL server 2016 SP1,накопительное обновление 4 для SQL Server 2016     

Накопительное обновление 5 для SQL server 2012 с пакетом обновления 3 (SP3)накопительное обновление 3 для SQL Server 2014(SP1), НАКОПИТЕЛЬное обновление 10 для SQL Server 2014 с пакетом обновления 1

Сведения о накопительных обновлениях для SQL Server

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.

Последнее накопительное обновление для SQL Server 2016

    Последнее накопительное обновление для SQL Server 2014 с пакетом обновления 1 (SP2)

    Последнее накопительное обновление для SQL Server 2012 с пакетом обновления 3 (SP3) 

Дополнительная информация

Чтобы использовать новую команду VDC_Complete , в клиент VDI должны быть применены следующие реализации.

  1. Запросите новый компонент VDI VDF_RequestComplete. Если сервер 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 новую команду 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. При обработке сообщений VDI, выбранных функцией ЕОШИБКА , добавьте дополнительный оператор Case для обработки команды VDC_Complete .

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

Примечание.VDC_Complete сообщение должно быть включено в приложение резервного копирования, чтобы его можно было использовать для улучшения.

Ссылки

Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.