Existe-t-il un moyen intéressant d'effectuer des mises à jour CU pour SQL Server sur des centaines de machines?

19

Mon entreprise est passée de 50 serveurs SQL à plus de 200 du jour au lendemain dans le cadre d'une acquisition par fusion. AIDEZ-MOI!

Mes questions sont:

  • Comment puis-je effectuer des mises à jour CU sur ces nombreux serveurs tout en ayant une vie et en gardant ma raison? SCCM ne semble pas être en mesure d'effectuer des mises à jour CU.

  • Quelqu'un d'autre a-t-il pu effectuer des mises à jour CU sur des centaines de serveurs?

  • Quelles sont les autres alternatives?

Russ Starksen
la source
La méthode de Shawn est certainement une méthode cool pour le faire. WSUS est beaucoup moins cool, mais plus pris en charge. Les deux sont de bonnes solutions.
Ali Razeghi
5
Quelles sont vos fenêtres d'interruption autorisées sur ces machines? Pouvez-vous prendre des arrêts à tout moment ou devez-vous planifier des machines spécifiques? Les clusters sont-ils impliqués? Mise en miroir et réplication? Groupes de disponibilité AlwaysOn? Les travaux par lots qui pourraient devoir être arrêtés, comme les sauvegardes ou les travaux de chargement ETL?
Brent Ozar
"Cool" n'est pas une manière objective de décrire quelque chose. = / J'allais suggérer une modification, mais je n'ai pas pu trouver quoi que ce soit qui fonctionne.
jpmc26
Il y avait une excellente réponse à cette question postée sur le site de Bret Ozars dans son article. "Pourquoi personne ne patche jamais ses serveurs SQL". brentozar.com/archive/2015/08/…
Russ Starksen

Réponses:

15

Il cool ways'agit d'utiliser un script d'installation sans assistance qui est simplement appelé depuis chaque serveur, où le support pour l'installation se trouve dans un répertoire central de votre réseau, accessible depuis chaque serveur. Vous devrez exécuter le script en mode élevé, ce qui est assez facile dans PowerShell.

Vous devrez utiliser la CLI pour extraire le correctif, je l'ai trouvé ici . Ensuite, les options CLI pour le correctif SQL Server peuvent être trouvées ici .

Les commandes suivantes sont celles que j'ai utilisées pour appliquer le correctif CU6 à l'instance SQL Server 2012 SP2 locale sur mon ordinateur portable. J'ai changé pour le répertoire dans lequel j'ai téléchargé le correctif:

.\SQLServer2012-KB3052468-x64.exe /X:E:\Software\SQL_Server\2012\SP2_CU6\Extracted
cd Extracted
.\setup.exe /action=patch /instancename=SQL12 /quiet /IAcceptSQLServerLicenseTerms

entrez la description de l'image ici

entrez la description de l'image ici

Vous travaillez à peu près simplement à écrire ceci en tant que script pour chaque serveur, puis à tirer cette partie du journal récapitulatif (ou tout simplement le journal entier) à un emplacement central afin de pouvoir revenir en arrière et déterminer le statut. L'option 2 serait d'inclure simplement quelques lignes de code pour se connecter à chaque instance et vérifier le numéro de build.

Shawn Melton
la source
9

L'installation sans assistance est la voie à suivre - comme l' a mentionné @ShawnMelton . Pour déployer CU sur 100 serveurs, vous pouvez explorer les options ci-dessous (testez-les pour savoir ce qui fonctionnera pour vous et votre environnement):

  1. Sysinternals - PsExecvous permettra de lancer l'installation sur des machines distantes.
  2. PowerShell - Utilisez la fonctionnalité d'accès distant dans PowerShell 3.0 et versions ultérieures pour effectuer l'installation. par exempleEnter-PSSession -ComputerName <COMPUTERNAME>
  3. Old is Gold - à l'aide d'un .batfichier. <== cela fonctionne définitivement avec SCCM car vous pouvez déployer des .batfichiers sur plusieurs serveurs à l’aide de SCCM.

    Ci-dessous un exemple d'installation SQL2008_SP2_and_CU_2k8_64bit (modifiez selon vos besoins) . Vous pouvez alimenter le fichier bat vers SCCM afin qu'il puisse effectuer une installation en masse.

    REM starting SQL SP2 cu install.
    "C:\temp\SQL2008_SP2_and_CU_2k8_64bit\CU\SQLServer2008-KB2467239-x64.exe" /allinstances /quiet
    REM SQL SP2 cu install complete
    
    REM optional   STEP to reboot your machine 
    REM Reboot the host before kicking off the install
    shutdown.exe /r /f /c "DBA scheduled reboot" /t 30

En note (Attention!):

Je ne ferais jamais ce type de mise à jour en masse sur ces nombreux serveurs (100) en une seule fois. Au lieu de cela, regroupez-les en groupes gérables, puis corrigez-les en groupes.

De cette façon, vous pouvez facilement déterminer si quelque chose ne va pas - par exemple, s'il y a un bogue dans la CU que vous installez, et qu'il est corrigé dans une CU ou un SP ultérieur. Ou en ce qui concerne l'installation également, si vous corrigez 100 serveurs en une seule fois et que 5 ou 7 serveurs n'ont pas été correctement corrigés, comment allez-vous comprendre cela?

Je gère plus de 300+ serveurs dans mon entreprise et je préfère les patcher en lots plus petits sur une base hebdomadaire. Donc, vous commencez avec un petit nombre et une fois que vous avez gagné en confiance, vous répétez la même chose.

ÉDITER:

Désormais, dbatools Update-DbaInstance.ps1peut effectuer l'installation des Service Packs SQL Server et des mises à jour cumulatives sur les serveurs locaux et distants.

Kin Shah
la source