La importancia de los Updates para SQL Server
¡Hola! Bienvenidos/as a un nuevo post en el mejor blog de Data. En la entrada de hoy hablaremos sobre la importancia de mantener al día las actualizaciones en SQL Server.
Hoy en día, una de las mayores recomendaciones es mantener actualizados nuestros sistemas y aplicaciones, con el objetivo de eliminar bugs, vulnerabilidades u obtener nuevas mejoras y características.
También hay que tener claro que, estamos en una evolución constante, es decir, los malwares también se actualizan o nacen nuevos que tienen como propósito poder aprovechar nuevas vulnerabilidades de nuestros sistemas.
Tenemos que ser conscientes que todos los programas no son al 100 % seguros, puede haber errores dentro del código, los cuales el fabricante todavía no ha detectado. Esta vulnerabilidad es tan bien conocida como Zero-day.
Zero-Days
Los Zero-days son vulnerabilidades que están presentes, pero no son conocidas por el fabricante, lo cual le permite a un atacante aprovechar esta vulnerabilidad a su antojo hasta que es detectada y posteriormente se implementa una actualización para solventarlo.
Soluciones a problemas
Por otro lado, también debemos de tener en cuenta, que posiblemente durante el uso de nuestros sistemas, encontremos errores que no nos permitan trabajar correctamente, ya sea problemas mínimos, como problemas graves que afecten nuestro rendimiento y nos den dolores de cabeza. Por ello, normalmente el fabricante se da cuenta de estos errores que nos afectan y crea una nueva actualización con el fin de solucionar ese problema en concreto o varios a la vez.
Entonces la pregunta sería ¿A qué esperamos para actualizar nuestro SQL Server?
Aunque las actualizaciones siempre son recomendables, hay que tener en cuenta ciertos aspectos para que en vez de solucionar varios problemas, no produzca más.
- No solo actualices el SQL Server, también el S.O., ya que puede haber dependencias o características necesarias. También puede haber problemas de compatibilidad.
- Revisa las notas de la actualización que vas a instalar, para comprobar que incidencias hay y como te pueden afectar. También puedes apoyarte de páginas web, que te aporten información adicional o más especifica sobre cada Update, por ejemplo: https://sqlperformance.com/latest-builds/sql-server-2019
- En caso de que no sea una emergencia o un parche de seguridad critico, intenta actualizar con parches que tengan antigüedad de 2 a 3 meses, esto es, para que tengas información de incidentes por parte de la comunidad y estés más prevenido ¡MUY IMPORTANTE!.
- Siempre que sea posible, realiza un correcto flujo de despliegue de cambios: DEV → PRE → PRO
- Antes de implementar la actualización, realiza un Snapshot de máquina virtual, porque una mala actualización puede dejarte sin poder levantar el servicio de SQL Server.
- En caso de que se trate de un entorno de replicación como ALways On o mirroring, los nodos tienen que ser siempre idénticos, es decir, las actuaciones tienen que realizarse en todos los nodos. En este caso siempre actualiza primero los nodos secundarios, luego haz failover y actualiza el primario, y finalmente haz failback.
- Seguir el siguiente flujo para SQL Server:
- Analizar las notas de actualizaciones del SQL Server que vayamos a instalar.
- Realizar Snapshot de máquina virtual.
- Aplicar el Service Pack más reciente. Este punto solo hay que realizarlo para SQL Server 2016 y versiones anteriores
- Aplicar el Cumulative Update (CU) que hayamos elegido. Como su nombre indica, esta actualización es acumulativa, por lo que no hace falta instalar los CU anteriores.
- Aplicar los Security Update posteriores al CU. Estos no son acumulativos, por lo que hay que instalarlos uno a uno.
- Comprobar el correcto funcionamiento de la instancia y aplicaciones.
- Eliminar el Snapshot
- Si quisiéramos actualizar S.0:
- Realizar Snapshot de máquina virtual.
- Utilizar Windows Update para descargar y aplicar las actualizaciones.
- Comprobar el correcto funcionamiento de la instancia y aplicaciones.
- Eliminar el Snapshot
Por último, no nos olvidemos nunca de tener una planificación a cualquier tipo de cambios y esto no es un excepción.
Planificación de Cambios
Para tener una buena gestión respecto al cambio tendremos en cuenta los siguientes pasos:
1º Crear un plan de gestión del cambio: Es necesario crear un plan de gestión del cambio que incluya los pasos necesarios para la implementación del cambio, así como una descripción detallada de los roles y responsabilidades de las personas involucradas en el proceso.
Para esto es fundamental tener claro los siguientes puntos:
- Definir el objetivo del cambio: Antes de crear un plan de gestión del cambio, es importante definir claramente el objetivo del cambio. ¿Por qué se está implementando el cambio? ¿Qué se espera lograr con el cambio?
- Identificar los pasos necesarios para implementar el cambio: Una vez que se ha definido el objetivo del cambio, es necesario identificar los pasos necesarios para implementar el cambio. Estos pueden incluir la identificación de los recursos necesarios, la identificación de los impactos en otros sistemas y procesos, la asignación de roles y responsabilidades, etc.
- Establecer un cronograma: Es importante establecer un cronograma para el proceso de cambio. El cronograma debe incluir fechas límite claras para cada uno de los pasos necesarios para implementar el cambio.
- Definir los roles y responsabilidades: Es importante definir claramente los roles y responsabilidades de las personas involucradas en el proceso de cambio. Esto incluye identificar quién será responsable de liderar el proceso de cambio, quién será responsable de comunicar el cambio a las partes interesadas, quién será responsable de realizar pruebas y verificaciones, etc.
- Establecer un proceso de aprobación: Se debe establecer un proceso formal de aprobación para el cambio propuesto. Esto puede incluir la revisión del cambio por parte de un comité de cambio o un gerente de cambio.
- Documentar el plan: Una vez que se han identificado todos los pasos necesarios para implementar el cambio y se ha establecido un cronograma, roles y responsabilidades, y un proceso de aprobación, es importante documentar el plan. El plan debe incluir todos los detalles necesarios para llevar a cabo el proceso de cambio de manera efectiva.
2º Evaluación después de su implementación: La evaluación del cambio después de su implementación es un paso crucial en el proceso de gestión del cambio. Esta evaluación tiene como objetivo verificar que el cambio se haya implementado de manera satisfactoria y que no haya generado problemas adicionales.
Para llevar a cabo la evaluación del cambio, se deben seguir los siguientes pasos:
- Verificar el funcionamiento del cambio: se debe verificar que el cambio se esté ejecutando correctamente y que esté cumpliendo con los objetivos establecidos y comunicarlo a todas las partes.
- Evaluar el impacto del cambio: se debe evaluar el impacto que ha tenido el cambio en los servicios de TI, en los usuarios finales y en el negocio en general. Si el impacto ha sido negativo, se deben tomar medidas para corregirlo.
- Identificar y resolver problemas: se deben identificar cualquier problema que haya surgido como resultado del cambio y tomar medidas para resolverlo. Esto puede incluir la implementación de cambios adicionales o la reversión del cambio original si es necesario.
- Actualizar la documentación: se debe actualizar la documentación del cambio para reflejar cualquier cambio realizado durante la implementación y la evaluación posterior.
Y con estas recomendaciones terminamos el post de hoy.
Si trabajas con BBDD SQL Server puede que te interesen nuestros últimos posts:
Accede a tablas virtuales desde Microsoft Dataverse con SQL Server
Descubre SQL Server 2022 Query Store Hints
Change Data Capture en SQL Server
Y, si necesitas ayuda para mejorar el rendimiento y optimizar tus bases de datos, contacta con nosotros.
I am a data engineer with experience in SQL Server and data analysis. I am certified in database administration and specialized in designing efficient and secure environments for database applications. My approach includes the application of analysis techniques to extract valuable information and support strategic decision making.