Come qualsiasi altro software, Microsoft SQL Server deve essere aggiornato. Microsoft rilascia regolarmente service pack per SQL Server che devono essere installati. Per installare un service pack, può connettersi a una console SQL Server remota, eseguire il programma di installazione e fare clic sulla procedura guidata, oppure puoi farlo nel modo più semplice.
Ogni programma di installazione di SQL Server Service Pack supporta installazioni silenziose. Questo tipo di installazione consente di utilizzare la riga di comando per avviare un'installazione. Allo stesso tempo, Consente inoltre di automatizzare la procedura di installazione del service pack in uno, decine o centinaia di server SQL contemporaneamente.
Una volta capito come installare un service pack in silenzio tramite la riga di comando, puoi creare uno strumento di automazione con PowerShell per implementare i service pack in modo rapido ed efficiente.
Prerequisiti
Questo articolo di esercitazione illustra come implementare i Service Pack di SQL Server con PowerShell da un computer remoto. Andare avanti, assicurati di avere quanto segue:
- Un server SQL da aggiornare (la versione non ha importanza)
- Autorizzazioni utente per installare un service pack su SQL Server
- Comunicazione remota PowerShell disponibile su server SQL remoto
- Un programma di installazione di service pack scaricato (puoi trovare tutti i pacchetti di servizi qui.)
- Una conoscenza di livello intermedio degli script PowerShell
Se hai tutto in ordine, Iniziamo!
Per installare un service pack in modalità silenziosa e remota, ci vogliono circa cinque passaggi:
- Assicurati che il server non abbia un riavvio in sospeso.
- Copia il programma di installazione del service pack sul server SQL remoto.
- Estrai il programma di installazione compresso.
- Avvia il programma di installazione in silenzio.
- Pulisci il programma di installazione.
Test di riavvio in sospeso
Perché un service pack non può essere installato a meno che Windows Server non sia in attesa di essere riavviato, dovresti controllare questa situazione in anticipo. Un modo rapido per farlo è usare PowerShell. Preferisco usare una funzione chiamata Test in attesa di riavvio. Puntando questa funzione a un server, restituisce un semplice True / Impostore, che ti permette di sapere se il server è in attesa di essere riavviato.
Copia il programma di installazione del Service Pack su SQL Server
Prossimo, copia il programma di installazione scaricato da Microsoft sul server 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.
Estrai il programma di installazione compresso
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
Nonostante questo, 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. Anziché, 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
A questo punto, está listo para comenzar el procedimiento de instalación. Usando il Invoke-Program
Función de PowerShell nuevamente, corri il setup.exe instalador que se extrajo del archivo original y proporcionar /q
e /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
Se tutto va bene, tendrá un SQL Server actualizado una vez que finalice el instalador. Nonostante questo, 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. Nonostante questo, debe proporcionar la ruta a la carpeta que extrajo el archivo original y el instalador original. Ecco come farlo:
Remove-Item -Path "SQLSRVc$SQLServerServicePacksSQL2016SP2.exe","SQLSRVc$tempSQLSP" -Recurse -Force
Riepilogo
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. Ora che hai le competenze per aggiornare SQL Server per un server, puoi facilmente estendere questo codice a più server.
Per implementare un service pack su più server, usa i costrutti PowerShell come un ciclo foreach. Inserisci il codice che hai imparato in questo post all'interno di un ciclo foreach per elaborare rapidamente uno o cento server SQL contemporaneamente!!