Wie jede andere Software, Microsoft SQL Server muss aktuell gehalten werden. Microsoft veröffentlicht routinemäßig Service Packs für SQL Server, die installiert werden müssen. So installieren Sie ein Service Pack, kann eine Verbindung zu einer Remote-SQL Server-Konsole herstellen, Führen Sie das Installationsprogramm aus und klicken Sie auf den Assistenten, oder du machst es ganz einfach.
Jedes SQL Server Service Pack-Installationsprogramm unterstützt unbeaufsichtigte Installationen. Diese Art der Installation ermöglicht es Ihnen, die Befehlszeile zu verwenden, um eine Installation zu starten. Gleichzeitig, Es ermöglicht Ihnen auch, den Installationsvorgang des Service Packs in einem zu automatisieren, Dutzende oder Hunderte von SQL-Servern gleichzeitig.
Sobald Sie herausgefunden haben, wie Sie ein Service Pack im Hintergrund über die Befehlszeile installieren, Sie können mit PowerShell ein Automatisierungstool erstellen, um Service Packs schnell und effizient zu implementieren.
Voraussetzungen
In diesem Tutorialbeitrag wird beschrieben, wie Sie SQL Server Service Packs mit PowerShell von einem Remotecomputer aus implementieren. Weiter machen, Stellen Sie sicher, dass Sie Folgendes haben:
- Ein SQL Server zum Aktualisieren (die version ist egal)
- Benutzerberechtigungen zum Installieren eines Service Packs auf SQL Server
- PowerShell-Remoting verfügbar auf Remote-SQL-Server
- Ein heruntergeladenes Service Pack-Installationsprogramm (finden Sie alle Servicepakete Hier.)
- Kenntnisse auf mittlerem Niveau in PowerShell-Skripting
Wenn alles in Ordnung ist, Lasst uns beginnen!
So installieren Sie ein Service Pack im Hintergrund und aus der Ferne, Es dauert ungefähr fünf Schritte:
- Stellen Sie sicher, dass der Server keinen ausstehenden Neustart hat.
- Kopieren Sie das Service Pack-Installationsprogramm auf den Remote-SQL-Server.
- Extrahieren Sie das komprimierte Installationsprogramm.
- Starten Sie das Installationsprogramm im Hintergrund.
- Reinigen Sie das Installationsprogramm.
Neustarttest ausstehend
Da ein Service Pack nicht installiert werden kann, es sei denn, Windows Server wartet nicht auf einen Neustart, Sie sollten diese Situation im Voraus überprüfen. Eine schnelle Möglichkeit, dies zu tun, ist die Verwendung von PowerShell. Ich bevorzuge eine Funktion namens Ausstehender Neustart testen. Indem Sie diese Funktion auf einen Server verweisen, gibt ein einfaches True zurück / Gefälscht, wodurch Sie wissen, ob der Server auf einen Neustart wartet.
Kopieren Sie das Service Pack-Installationsprogramm auf SQL Server
Nächste, Kopieren Sie das Installationsprogramm, das Sie von Microsoft heruntergeladen haben, auf den Remote-SQL-Server. Ich gehe davon aus, dass sich der Computer, von dem Sie das Installationsprogramm kopieren, in derselben Active Directory-Domäne wie SQL Server befindet. Wenn sich beide Computer in derselben Active Directory-Domäne befinden, 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.
Extrahieren Sie das komprimierte Installationsprogramm
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
Trotz dieses, 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. Stattdessen, 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
In diesem Punkt, está listo para comenzar el procedimiento de instalación. Verwendung der Invoke-Program
Función de PowerShell nuevamente, führe die setup.exe instalador que se extrajo del archivo original y proporcionar /q
und /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
Wenn alles gut geht, tendrá un SQL Server actualizado una vez que finalice el instalador. Trotz dieses, tienes una última tarea que realizar: sauber.
Suponiendo que no desea dejar los archivos que había transferido previamente al servidor, elimínelos con el comando Remove-Item PowerShell. Trotz dieses, debe proporcionar la ruta a la carpeta que extrajo el archivo original y el instalador original. So geht's:
Remove-Item -Path "SQLSRVc$SQLServerServicePacksSQL2016SP2.exe","SQLSRVc$tempSQLSP" -Recurse -Force
Zusammenfassung
Sie haben ein SQL Server Service Pack erfolgreich remote installiert und dabei lediglich eine Datei und ein PowerShell-Skript verwendet. Jetzt verfügen Sie über die Fähigkeiten, einen SQL Server für einen Server zu aktualisieren, Sie können diesen Code problemlos auf mehrere Server erweitern.
So implementieren Sie ein Service Pack auf mehreren Servern, PowerShell-Konstrukte als foreach-Schleife verwenden. Fügen Sie den Code, den Sie in diesem Beitrag gelernt haben, in eine foreach-Schleife ein, um schnell einen oder hundert SQL-Server gleichzeitig zu verarbeiten!!