Czy istnieje fajny sposób wykonywania aktualizacji CU dla SQL Server na setkach komputerów?

19

Moja firma powiększyła się z 50 serwerów SQL do ponad 200 w ciągu jednej nocy w ramach przejęcia fuzji. WSPARCIE!

Moje pytania to:

  • Jak mogę przeprowadzać aktualizacje CU na tak wielu serwerach i nadal mieć życie i zachować zdrowie psychiczne? SCCM nie wydaje się być w stanie wykonywać aktualizacji CU.

  • Czy ktoś inny był w stanie wykonać aktualizacje CU na setkach serwerów?

  • Jakie są inne alternatywy?

Russ Starksen
źródło
Metoda Shawna jest z pewnością fajną metodą do tego. WSUS jest o wiele mniej fajny, ale bardziej obsługiwany. Oba są dobrymi rozwiązaniami.
Ali Razeghi,
5
Jakie są dozwolone okna przestojów na tych komputerach? Czy możesz zrobić przerwy w pracy w dowolnym momencie, czy musisz robić harmonogramy dla określonych maszyn? Czy zaangażowane są klastry? Kopia lustrzana i replikacja? Grupy dostępności AlwaysOn? Zadania wsadowe, które mogą wymagać zatrzymania, takie jak kopie zapasowe lub zadania ładowania ETL?
Brent Ozar
„Fajne” nie jest obiektywnym sposobem na opisanie czegoś. = / Chciałem zaproponować edycję, ale nie mogłem wymyślić niczego, co działałoby.
jpmc26
Świetna odpowiedź na to pytanie została zamieszczona na stronie Bret Ozars w jego artykule. „Dlaczego nikt nigdy nie załatał swoich serwerów SQL”. brentozar.com/archive/2015/08/…
Russ Starksen

Odpowiedzi:

15

Należy cool wayużyć skryptu instalacji nienadzorowanej, który jest po prostu wywoływany z każdego serwera, gdzie nośnik instalacji znajduje się w centralnym katalogu w sieci, dostępnym z każdego serwera. Będziesz musiał uruchomić skrypt w trybie podniesionym, co jest dość łatwe w PowerShell.

Musisz użyć CLI, aby wyodrębnić poprawkę, znalazłem to tutaj . Następnie opcje CLI dla poprawki SQL Server można znaleźć tutaj .

Następujące polecenia są tym, czego użyłem, aby zastosować poprawkę CU6 do lokalnej instancji SQL Server 2012 SP2 na moim laptopie. Zmieniłem katalog, w którym pobrałem poprawkę, do:

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

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Po prostu ćwiczysz pisanie tego jako skryptu dla każdego serwera, a następnie przeciągasz ten fragment dziennika podsumowania (lub tylko cały dziennik) do centralnego miejsca, abyś mógł wrócić i ustalić status. Opcja 2 polegałaby na umieszczeniu kilku wierszy kodu w celu połączenia się z każdą instancją i weryfikacji numeru kompilacji.

Shawn Melton
źródło
9

Najlepszym rozwiązaniem jest instalacja nienadzorowana - jak wspomniał @ShawnMelton . Aby wdrożyć CU na 100 serwerach, możesz przejrzeć poniższe opcje (przetestuj je, aby wiedzieć, co będzie działać dla Ciebie i Twojego środowiska):

  1. Sysinternals - PsExecpozwoli na odrodzenie instalacji na zdalnych komputerach.
  2. PowerShell - Użyj funkcji zdalnego w PowerShell 3.0 i nowszych, aby przeprowadzić instalację. na przykładEnter-PSSession -ComputerName <COMPUTERNAME>
  3. Old is Gold - używając .batpliku. <== to zdecydowanie działa z SCCM, ponieważ można wdrażać .batpliki na wielu serwerach za pomocą SCCM.

    Poniżej znajduje się przykład instalacji SQL2008_SP2_and_CU_2k8_64bit (zmodyfikuj zgodnie z własnymi potrzebami) . Możesz podać plik nietoperza do SCCM, aby mógł przeprowadzić masową instalację.

    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

Na marginesie (Uwaga!):

Nigdy nie zrobiłbym tego typu masowej aktualizacji na wielu serwerach (100) w jednym ujęciu. Zamiast tego podziel je na grupy, którymi można zarządzać, a następnie połącz je w grupy.

W ten sposób możesz łatwo dowiedzieć się, czy coś pójdzie nie tak - np. Jeśli w instalowanej jednostce jest błąd, który jest instalowany, i naprawiony w późniejszym CU lub SP. Lub jeśli chodzi o instalację, jeśli łatasz 100 serwerów w jednym ujęciu, a spośród nich 5 lub 7 serwerów nie zostało odpowiednio załatanych, jak to wymyślisz?

W mojej firmie zarządzam ponad 300 serwerami i wolę łatać je w mniejszych partiach co tydzień. Więc zaczynasz od małej liczby, a gdy zyskasz pewność siebie, powtórzysz to samo.

EDYTOWAĆ:

Teraz dbatools ma Update-DbaInstance.ps1możliwość instalowania dodatków Service Pack i aktualizacji zbiorczych programu SQL Server na lokalnych i zdalnych serwerach.

Kin Shah
źródło