Mejora: Mejorar el protocolo de VDI con el comando VDC_Complete en SQL Server 2012

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3188454
Mejora
En la implementación actual del protocolo SQL Server Virtual Backup Device Interface (VDI), el último mensaje enviado desde SQL Server al cliente VDI será un comando VDC_Flush . Para evitar la pérdida de datos, el cliente VDI debe finalizar la copia de seguridad antes de responder al comando VDC_Flush .

A partir de SQL Server 2008 y la introducción de FILESTREAM, el comando VDC_Flush se puede enviar varias veces durante una copia de seguridad. Esta operación hace que un problema que tiene el cliente VDI para finalizar la copia de seguridad varias veces durante la operación de copia de seguridad. Esto no es posible que algunos clientes VDI. Además, si el cliente VDI responde a un comando VDC_Flush sin garantizar la copia de seguridad es reforzado cuando está llegando más datos después de la VDC_Flush, SQL Server puede truncar el registro de transacciones. Sin embargo, si la copia de seguridad no se completa en el cliente VDI, y también se trunca el registro de transacciones, podría producirse pérdida de datos.

Esta actualización agrega un nuevo comando VDI VDC_Complete que indica a SQL Server ha completado el envío de datos al cliente VDI. Por lo tanto, el cliente VDI podrá finalizar la copia de seguridad antes de enviar la respuesta a SQL Server.

Esta funcionalidad permite al cliente VDI a fallar la copia de seguridad en caso de que algo salga mal y también evita que el registro de transacciones se trunque por error.

Nota: Para admitir el nuevo comando VDC_Complete , esta actualización también agrega dos nuevas características VDI, VDF_RequestComplete y VDF_CompleteEnabled.
Información de actualización
Esta mejora se incluye en la siguiente actualización acumulativa para SQL Server:

Acerca de las actualizaciones acumulativas de SQL Server
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de la seguridad que se incluyeron en la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:
Más información
Para utilizar el nuevo comando VDC_Complete , las siguientes implementaciones tienen que aplicarse a su cliente VDI:
  1. Solicitar la nueva característica VDI VDF_RequestComplete. SQL Server admite el comando VDC_Complete, devolverá si no una respuesta NULL. De lo contrario, debería devolver una respuesta NULL para la función solicitada. Aquí el ejemplo de código muestra cómo solicitar la característica:
    m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);
  2. Determinar si el SQL Server admite el nuevo comando VDC_Complete mediante la función GetConfiguration .
    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. Cuando se procesan los mensajes VDI que se obtienen mediante la función GetCommand , agregue una instrucción case adicional para procesar el comando VDC_Complete .
    case VDC_Complete:              // Close the media and ensure that book keeping is completed.              backupMedia->Close();              completionCode = ERROR_SUCCESS;              break;
Nota: El mensaje VDC_Complete tiene que ser integrados en la aplicación de backup de tal manera que TI canuse la mejora.
Referencias
Obtenga información acerca de la terminología que utiliza Microsoft para describir las actualizaciones de software.

Propiedades

Id. de artículo: 3188454 - Última revisión: 09/22/2016 04:35:00 - Revisión: 2.0

Microsoft SQL Server 2012 Service Pack 3

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3188454 KbMtes
Comentarios