Cómo implementar los Service Packs de SQL Server de forma gratuita con PowerShell

Contenidos

Implementación de un paquete de servicios en varios servidores.

Como cualquier otro software, Microsoft SQL Server debe mantenerse actualizado. Microsoft lanza de forma rutinaria paquetes de servicios para SQL Server que deben instalarse. Para instalar un paquete de servicio, puede conectarse a una consola remota de SQL Server, ejecutar el instalador y hacer un clic en el asistente, o puede hacerlo de la manera más fácil.

Cada instalador de Service Pack para SQL Server admite instalaciones silenciosas. Este tipo de instalación le posibilita usar la línea de comandos para iniciar una instalación. Al mismo tiempo, además le posibilita automatizar el procedimiento de instalación del paquete de servicios en uno, decenas o cientos de servidores SQL al mismo tiempo.

Una vez que descubra cómo instalar un paquete de servicio de forma silenciosa a través de la línea de comandos, puede crear una herramienta de automatización con PowerShell para poner en práctica paquetes de servicio de manera rápida y eficiente.

Prerrequisitos

Este post de tutorial cubre cómo poner en práctica los Service Packs de SQL Server con PowerShell desde un equipo remoto. Para seguir adelante, asegúrese de tener lo siguiente:

  • Un SQL Server para actualizar (la versión no importa)
  • Permisos de usuario para instalar un paquete de servicios en SQL Server
  • Comunicación remota de PowerShell disponible en el servidor SQL remoto
  • Un instalador de paquetes de servicios descargado (puede hallar todos los paquetes de servicios aquí.)
  • Un conocimiento de nivel intermedio de secuencias de comandos de PowerShell

Si dispones de todo en orden, ¡comencemos!

Para instalar un paquete de servicio de forma silenciosa y remota, se necesitan aproximadamente cinco pasos:

  1. Asegúrese de que el servidor no tenga un reinicio pendiente.
  2. Copie el instalador del paquete de servicios en el servidor SQL remoto.
  3. Extraiga el instalador comprimido.
  4. Inicie el instalador de forma silenciosa.
  5. Limpia el instalador.

Prueba de reinicio pendiente

Debido a que un paquete de servicio no se puede instalar a menos que Windows Server no esté pendiente de reiniciarse, debe verificar esta situación por adelantado. Una forma rápida de hacerlo es utilizar PowerShell. Prefiero utilizar una función llamada Prueba pendiente de reinicio. Al apuntar esta función a un servidor, devuelve un simple Verdadero / Falso, lo que le posibilita saber si el servidor está pendiente de reiniciarse.

Copie el instalador de Service Pack en SQL Server

A continuación, copie el instalador que ha descargado de Microsoft en el servidor SQL remoto. Supongo que la computadora desde la que está copiando el instalador está en el mismo dominio de Active Directory que SQL Server. Si ambos equipos están en el mismo dominio de Active Directory, no necesita preocuparse por proporcionar credenciales alternativas a sus comandos de PowerShell.

Hacerse cargo que el paquete de servicio está en su disco duro local es C: SQLServerServicePacks SQL2016SP2.exe y su servidor SQL remoto se llama SQLSRV, abra una consola de PowerShell y ejecute:

Copy-Item -Path C:SQLServerServicePacksSQL2016SP2.exe -DestinationPath SQLSRVc$

Ahora debería tener el instalador del paquete de servicios en la raíz de la unidad C de su servidor SQL.

Extraiga el instalador comprimido

Una vez que el instalador está en el servidor, puede extraer el contenido del instalador. Para extraer el instalador, use los argumentos /extract:"C:TempSQLSP" /quiet. Con el nombre de archivo del ejemplo anterior, ejecute el siguiente código en SQL Server:

C:SQLServerServicePacksSQL2016SP2.exe /extract:"C:TempSQLSP" /quiet

A pesar de esto, debido a que está instalando un paquete de servicio de forma remota, no necesita abrir una sesión de consola RDP en el servidor para hacerlo. En su lugar, puede usar una función llamada Programa de invocación, que es la función de PowerShell que le posibilita ejecutar procesos remotos.

Puede ejecutar extraer el contenido del Service Pack en el SQL Server remoto, usando el siguiente código:

Invoke-Program -ComputerName SQLSRV -FilePath 'C:SQLServerServicePacksSQL2016SP2.exe' -ArgumentList "/extract:"C:TempSQLSP" /quiet"

Ejecute el instalador de Service Pack

En este punto, está listo para comenzar el procedimiento de instalación. Usando el Invoke-Program Función de PowerShell nuevamente, ejecute el setup.exe instalador que se extrajo del archivo original y proporcionar /q y /allinstances cambia a él. Le dice al instalador del paquete de servicio que no abra una ventana de instalación y que parchee todas las instancias de SQL en el servidor.

Puede ver un ejemplo de cómo iniciar el instalador aquí:

Invoke-Program -ComputerName SQLSRV -FilePath "C:TempSQLSPsetup.exe" -ArgumentList "/q /allinstances"

Limpiar el instalador

Si todo va bien, tendrá un SQL Server actualizado una vez que finalice el instalador. A pesar de esto, tienes una última tarea que realizar: limpiar.

Suponiendo que no desea dejar los archivos que había transferido previamente al servidor, elimínelos con el comando Remove-Item PowerShell. A pesar de esto, debe proporcionar la ruta a la carpeta que extrajo el archivo original y el instalador original. He aquí cómo hacerlo:

Remove-Item -Path "SQLSRVc$SQLServerServicePacksSQL2016SP2.exe","SQLSRVc$tempSQLSP" -Recurse -Force

Resumen

Ha instalado con éxito de forma remota un Service Pack de SQL Server usando nada más que un archivo y un script de PowerShell. Ahora que tiene las habilidades para actualizar un SQL Server para un servidor, puede extender fácilmente este código a varios servidores.

Para poner en práctica un paquete de servicio en varios servidores, use construcciones de PowerShell como un bucle foreach. ¡Coloque el código que aprendió en este post dentro de un bucle foreach para procesar rápidamente uno o cien servidores SQL al mismo tiempo!

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.