Windows Aware updating y SQL Server 2012 (Parte II) – Paso a Paso

Ya que en este punto tenemos claros los conceptos de Windows Aware Updating (CAU), en esta segunda parte revisaremos como podemos utilizar el plug-in Window.HotfixPlugin para instalar actualizaciones LDR, actualizaciones acumulativas y Service Packs, así como las opciones que provee para tener un mayor control del proceso. NOTA: CAU puede sólo puede ser utilizado a partir del Service Pack 1 de SQL Server 2012.

Como ejemplo instalaremos el Service Pack 1 de SQL Server 2012 en los nodos Win20121 y Win20122. (Este proceso es similar para cualquier acumulativa Update y Service Pack), utilizando la herramienta gráfica ya que permite una visualización más sencilla del proceso. Se usó un Clúster Windows Server 2012 de tres nodos con dos instancias SQL Server 2012 RTM que sólo ejecutan en los nodos win20121 y Win20122, y ejecutamos el modo self-updating.

Para evitar que el post sea muy largo se omiten capturas de pantalla para mostrar las versiones iniciales y finales de SQL, así como la configuración del Cluster. La idea principal es ver el proceso de CAU.

Ya que la actualización será instalada en dos de los tres nodos del clúster, utilizamos la siguiente estructura de directorios: 

\\WIN-0M99J4ILA2E\UpdatesDemo\Root5

        DefaultHotfixConfig.xml

        \<nodo 2 name>

               \SQL2012SP1

                       \<SQLServer2012SP1Package>.exe

\<nodo 4 name>

               \SQL2012SP1

                       \<SQLServer2012SP1Package>.exe

Así mismo, el archivo de configuración le agregué la siguiente sección en rojo.

<root>

<DefaultRules>

</DefaultRules>

  <FolderRules>

    <Folder name="SQL2012SP1">     

      <Template path="$update$" parameters=" /ACTION=PATCH /allinstances     

               /QUIET /IAcceptSQLServerLicenseTerms"/>

      <ExitConditions>

        <Success>

          <ExitCode code="0"/>

        </Success>

        <Success_RebootRequired>

          <ExitCode code="3010"/>

        </Success_RebootRequired>

          <NotApplicable>

            <ExitCode code=" -2068578302"/> <!-- ERROR_PATCH_TARGET_NOT_FOUND -->

        </NotApplicable>

          <AlreadyInstalled>

            <ExitCode code=" -2068643838"/> <!-- ERROR_PATCH_ALREADY_APPLIED -->

        </ AlreadyInstalled >

      </ExitConditions>

    </Folder>

  </FolderRules>

</root>

Como se describió en la primera parte del post, iniciamos la herramienta de Cluster-Aware updating.

Y hacemos click en “Configure cluster self-updating options”.

Hacemos click en Next.

Habilitamos el modo self-updating, y hacemos click en siguiente.

Luego configuramos la frecuencia de ejecución automática. Esto es útil especialmente con el plug-in Microsoft.WindowsUpdatePlugin para la instalación de actualizaciones de seguridad. El plug-in Microsoft.HotfixPlugin, al ser utilizado para la instalación de actualizaciones de no seguridad, requiere la configuración de la estructura de directorios y la descarga de instaladores por lo cual puede resultar más práctico su ejecución manual y supervisada, aunque una programación podría ser útil en algunos casos tales como la actualización de ambientes no productivos.

Hacemos click en Next.

 

Configuramos aspectos de la ejecución tales como:

  • Tiempo máximo de ejecución en minutos (StopAfter), tras el cual se detiene todo el proceso de actualización.

  • Tiempo de advertencia en minutos (WarmAfter), tras el cual se genera un mensaje de advertencia, el cual pueder ser utilizdao, por ejemplo, para advertir que la ventana de mantenimiento definida para la actividad está cercano.

  • El orden en el que los nodos deben actualizados (NodeOrder,)

  • El plug-in a utilizar (CaaPluginName), en este caso Microsoft.HotfixPlugin

  • Parámetros adicionales requeridos por el plug-in Microsoft.HotfixPlugin

  • Otros valores, los cuales pueden ser consultados en https://technet.microsoft.com/en-us/library/jj134224.aspx

Hacemos click en Next.

Establecemos las opciones para el Microsoft.HotfixPlugin tales como la raíz del fileshare que contiene la estructura de directorios y las actualizaciones a instalar.

NOTA: Para mayor información de las opciones de Microsoft.HotfixPlugin ver https://technet.microsoft.com/en-us/library/jj134213.aspx

Podemos ver un resumen de las opciones configuradas (que podemos utilizar en la opción descrita en la primera parte del post para pre visualizar las actualizaciones que serán instaladas durante la ejecución) y al hacer click en “Apply” finalizaremos la configuración de CAU.

Hacemos click en Close.

Una vez configurado el CAU, podemos iniciar la ejecución haciendo click en “Apply updates to this cluster”, lo que iniciará el wizard de ejecución.

Hacemos click en Next.

Aquí podemos visualizar el comando PowerShell que puede ser utilizado para iniciar la actualización. Así mismo podemos visualizar las actualizaciones que serán instaladas haciendo click en “Preview the updates that will be applied to the cluster nodes”.

Antes de iniciar, y para validar que el Service Pack sólo será instalado en los nodos especificados en la estructura de directorio hacemos click en “Preview the updates that will be applied to the cluster nodes”.

Se observa que el Service Pack 1 será instalado sólo en los nodos Win20121 y Win120122, tal y como se estableció en la estructura de directorios. Para salir hacemos click en Close.

Para iniciar el proceso de actualización hacemos click en “Update”.

Una vez iniciado el proceso hacemos click en Close.

Lo que permite ver el avance del proceso hasta que este finalice.

Los failover de servicios no se registran en esta ventana, sin embargo, se realizan luego de colocar cada nodo en modo de mantenimiento. Al finalizar el proceso, las instancias se encuentran en el nodo original.

Debemos tomar en cuenta que este proceso es diferente a lo recomendado en el documento SQL Server failover cluster rolling patch and service pack process disponible en https://support.microsoft.com/kb/958734, en cuanto a que la mitad de los nodos que se actualizan no se eliminan como posibles dueño de los recursos de SQL Server, así como el momento en que se hace el failover de las instancias a los nodos actualizados. Este es una funcionalidad que nos puede ayudar a facilitar el proceso y configurando correctamente las opciones del plug-in Microsoft.HotfixPlugin podemos tener un comportamiento similar en varios aspectos al recomendado en este documento, por lo que los invito a probarlo y encontrar la configuración que mejor se adapte a sus necesidades.

Existen algunas consideraciones a tomar en cuenta cuando usamos CAU en ambientes Always On con Grupos de Disponibilidad, así como diferentes escenarios de actualización, por lo que recomiendo leer el documento Patching SQL Server Failover Cluster Instances with Cluster-Aware Updating (CAU) disponible en https://www.youtube.com/watch?v=XhVbLgf3rqE

Espero que los dos post de esta serie les hayan ayudado a entender cómo podemos utilizar esta nueva funcionalidad de Windows Server 2012 para facilitarnos un poco la vida.

 

Otras lecturas recomendadas:

Cluster-Aware Updating Overview

https://technet.microsoft.com/en-us/library/hh831694.aspx

Requirements and Best Practices for Cluster-Aware Updating

https://technet.microsoft.com/en-us/library/jj134234.aspx