Есть ли классный способ выполнения обновлений CU для SQL Server на сотнях машин?

19

Моя компания выросла с 50 SQL Server до более чем 200 за одну ночь в результате слияния. ПОМОГИТЕ!

Мои вопросы:

  • Как я могу выполнять обновления CU на этом множестве серверов, и при этом иметь жизнь и сохранять здравомыслие? SCCM, похоже, не в состоянии выполнять обновления CU.

  • Кто-нибудь еще мог выполнять обновления CU на сотнях серверов?

  • Какие есть другие альтернативы?

Расс Старксен
источник
Метод Шона, безусловно, классный способ сделать это. WSUS намного менее крутой, но более поддерживаемый. Оба являются хорошими решениями.
Али Разеги
5
Какие у вас разрешенные окна отключения на этих машинах? Можете ли вы отключить электричество в любое время, или вам нужно составить расписание для конкретных машин? Кластеры вовлечены? Зеркальное отображение и репликация? AlwaysOn Группы доступности? Пакетные задания, которые, возможно, необходимо остановить, например резервные копии или задания загрузки ETL?
Брент Озар
«Круто» не является объективным способом описания чего-либо. = / Я собирался предложить редактирование, но не смог придумать ничего, что сработало.
jpmc26
Был отличный ответ на этот вопрос, размещенный на сайте Брета Озарса в его статье. Msgstr "Почему никто никогда не исправляет свои sql серверы". brentozar.com/archive/2015/08/…
Расс Старксен

Ответы:

15

Это cool wayиспользование сценария автоматической установки, который просто вызывается с каждого сервера, где носитель для установки находится в центральном каталоге вашей сети, который доступен с каждого сервера. Вам придется запускать сценарий в режиме с повышенными правами, что довольно просто в PowerShell.

Вам нужно будет использовать CLI для извлечения исправления, я нашел это здесь . Тогда параметры CLI для исправления SQL Server можно найти здесь .

Следующие команды используются для применения исправления CU6 к локальному экземпляру SQL Server 2012 SP2 на моем ноутбуке. Я перешел в каталог, в который я скачал исправление:

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

введите описание изображения здесь

введите описание изображения здесь

Вы в значительной степени просто отрабатываете написание этого сценария для каждого сервера, а затем вытягиваете этот бит сводного журнала (или всего журнала целиком) в центральное место, чтобы вы могли вернуться и определить статус. Вариант 2 состоит в том, чтобы просто включить несколько строк кода для подключения к каждому экземпляру и проверить номер сборки.

Шон Мелтон
источник
9

Автономная установка - путь, как упомянул @ShawnMelton . Чтобы развернуть CU на сотнях серверов, вы можете изучить следующие варианты (протестировать их, чтобы знать, что будет работать для вас и вашей среды):

  1. Sysinternals - PsExecпозволит вам порождать установку на удаленных машинах.
  2. PowerShell - используйте функцию удаленного взаимодействия в PowerShell 3.0 и более поздних версиях для выполнения установки. напримерEnter-PSSession -ComputerName <COMPUTERNAME>
  3. Old is Gold - используя .batфайл. <== это определенно работает с SCCM, так как вы можете развертывать .batфайлы на нескольких серверах, используя SCCM.

    Ниже приведен пример установки SQL2008_SP2_and_CU_2k8_64bit (изменить в соответствии с вашими потребностями) . Вы можете передать файл bat в SCCM, чтобы он мог выполнить массовую установку.

    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

В качестве примечания (Внимание!):

Я бы никогда не сделал этот тип массового обновления для этих многих серверов (100) за один раз. Вместо этого группируйте их в управляемые группы, а затем объединяйте их в группы.

Таким образом, вы можете легко выяснить, если что-то идет не так, например, если есть ошибка в CU, которую вы устанавливаете, и она исправлена ​​в более позднем CU или SP. Или же в случае установки, если вы исправляете 100 серверов за один раз, и из них 5 или 7 серверов не были исправлены должным образом, как вы собираетесь это выяснить?

Я управляю более чем 300+ серверами в своей компании и предпочитаю обновлять их небольшими партиями еженедельно. Поэтому вы начинаете с небольшого числа и, как только вы обретаете уверенность, вы повторяете то же самое.

РЕДАКТИРОВАТЬ:

Теперь в dbatools есть Update-DbaInstance.ps1возможность установки пакетов обновления SQL Server и накопительных обновлений на локальных и удаленных серверах.

Кин Шах
источник