Comment déployer des Service Packs SQL Server gratuitement avec PowerShell

Contenu

Déploiement d'un service pack sur plusieurs serveurs.

Comme tout autre logiciel, Microsoft SQL Server doit être tenu à jour. Microsoft publie régulièrement des service packs pour SQL Server qui doivent être installés. Pour installer un service pack, peut se connecter à une console SQL Server distante, lancez le programme d'installation et cliquez sur l'assistant, ou tu peux le faire facilement.

Chaque programme d'installation du Service Pack SQL Server prend en charge les installations silencieuses. Ce type d'installation permet d'utiliser la ligne de commande pour démarrer une installation. En même temps, Il vous permet également d'automatiser la procédure d'installation du service pack en un seul, des dizaines ou des centaines de serveurs SQL en même temps.

Une fois que vous avez compris comment installer un service pack silencieusement via la ligne de commande, vous pouvez créer un outil d'automatisation avec PowerShell pour implémenter des service packs rapidement et efficacement.

Conditions préalables

Ce tutoriel explique comment implémenter les Service Packs SQL Server avec PowerShell à partir d'un ordinateur distant. Pour aller de l'avant, assurez-vous d'avoir les éléments suivants:

  • Un serveur SQL à mettre à niveau (la version n'a pas d'importance)
  • Autorisations utilisateur pour installer un service pack sur SQL Server
  • Télécommande PowerShell disponible sur le serveur SQL distant
  • Un programme d'installation du service pack téléchargé (vous pouvez trouver tous les forfaits de services ici.)
  • Une connaissance de niveau intermédiaire des scripts PowerShell

Si vous avez tout en ordre, Commençons!

Pour installer un service pack silencieusement et à distance, il faut environ cinq étapes:

  1. Assurez-vous que le serveur n'a pas de redémarrage en attente.
  2. Copiez le programme d'installation du service pack sur le serveur SQL distant.
  3. Extraire le programme d'installation compressé.
  4. Lancer le programme d'installation en silence.
  5. Nettoyer l'installateur.

Test de redémarrage en attente

Parce qu'un service pack ne peut pas être installé à moins que Windows Server n'attende d'être redémarré, vous devriez vérifier cette situation à l'avance. Un moyen rapide de le faire est d'utiliser PowerShell. Je préfère utiliser une fonction appelée Test en attente de redémarrage. En pointant cette fonction vers un serveur, renvoie un simple True / Faux, qui permet de savoir si le serveur attend d'être redémarré.

Copiez le programme d'installation du Service Pack sur SQL Server

Ensuite, copier le programme d’installation que vous avez téléchargé à partir de Microsoft vers le serveur SQL Server distant. Je suppose que l’ordinateur à partir duquel vous copiez le programme d’installation se trouve dans le même domaine Active Directory que SQL Server. Si les deux ordinateurs se trouvent dans le même domaine Active Directory, vous n’avez pas à vous soucier de fournir d’autres informations d’identification à vos commandes PowerShell.

Prendre en charge que le Service Pack est sur votre disque dur local est C: SQLServerServicePacks SQL2016SP2.exe et votre serveur SQL distant est nommé SQLSRV, ouvrir une console PowerShell et exécuter:

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

vous devez maintenant avoir le programme d’installation du Service Pack à la racine du lecteur c sur votre serveur SQL Server.

Extraire le programme d'installation compressé

Une fois que le programme d’installation est sur le serveur, vous pouvez extraire le contenu du programme d’installation. Pour extraire le programme d’installation, utiliser les arguments /extract:"C:TempSQLSP" /quiet. Avec le nom de fichier de l’exemple précédent, exécuter le code suivant dans SQL Server:

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

Malgré cela, car vous installez un Service Pack à distance, vous n’avez pas besoin d’ouvrir une session de console rdp sur le serveur pour le faire. À sa place, vous pouvez utiliser une fonction appelée Programme d’appel, qui est la fonctionnalité powershell qui vous permet d’exécuter des processus distants.

vous pouvez exécuter extraire le contenu du Service Pack sur le serveur SQL Server distant, en utilisant le code suivant:

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

Exécuter le programme d’installation du Service Pack

En ce point, vous êtes prêt à commencer la procédure d’installation. En utilisant le Invoke-Program Fonction PowerShell à nouveau, exécuter le configuration.exe programme d’installation qui a été extrait du fichier d’origine et fournir /q et /allinstances changements à lui. Indique au programme d’installation du Service Pack de ne pas ouvrir une fenêtre d’installation et de corriger toutes les instances de SQL sur le serveur.

Vous pouvez voir un exemple de la façon de démarrer le programme d’installation ici:

Invoke-Program -ComputerName SQLSRV -FilePath "C:TempSQLSPsetup.exe" -Liste d’arguments "/q /allinstances"

Nettoyez le programme d’installation

Si tout va bien, vous aurez un serveur SQL Server mis à jour une fois le programme d’installation terminé. Malgré cela, vous avez une dernière tâche à effectuer: propre.

En supposant que vous ne souhaitez pas laisser les fichiers que vous avez précédemment transférés sur le serveur, supprimez-les à l’aide de la commande Remove-Item PowerShell. Malgré cela, vous devez fournir le chemin d’accès au dossier qui a extrait le fichier d’origine et le programme d’installation d’origine. Voici comment faire:

Remove-Item -Chemin d’accès "SQLSRVc$SQLServerServicePacksSQL2016SP2.exe","SQLSRVc$tempSQLSP" -Récursivité -Force

résumé

Vous avez installé avec succès à distance un Service Pack SQL Server en utilisant rien de plus qu'un script et un fichier PowerShell. Maintenant que vous avez les compétences nécessaires pour mettre à niveau un serveur SQL pour un serveur, vous pouvez facilement étendre ce code à plusieurs serveurs.

Pour implémenter un service pack sur plusieurs serveurs, utiliser les constructions PowerShell comme boucle foreach. Mettez le code que vous avez appris dans cet article dans une boucle foreach pour traiter rapidement un ou une centaine de serveurs SQL en même temps !!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.