Existe uma maneira legal de executar atualizações de CU para o SQL Server em centenas de máquinas?

19

Minha empresa cresceu de 50 servidores SQL para mais de 200 durante a noite em uma aquisição de fusão. SOCORRO!

Minhas perguntas são:

  • Como posso executar atualizações de CU nesses muitos servidores e ainda ter uma vida e manter minha sanidade? O SCCM não parece capaz de executar atualizações da UC.

  • Alguém mais conseguiu executar atualizações de CU em centenas de servidores?

  • Quais são algumas outras alternativas?

Russ Starksen
fonte
O método de Shawn é certamente um método interessante para fazer isso. O WSUS é muito menos interessante, mas mais suportado. Ambos são boas soluções.
Ali Razeghi
5
Quais são as janelas de interrupção permitidas nessas máquinas? Você pode interromper a interrupção quando quiser ou precisa programar horários para máquinas específicas? Os clusters estão envolvidos? Espelhamento e replicação? Grupos de disponibilidade AlwaysOn? Tarefas em lote que talvez precisem ser interrompidas, como backups ou tarefas de carregamento de ETL?
Brent Ozar
"Legal" não é uma maneira objetiva de descrever algo. = / Eu sugeriria uma edição, mas não consegui encontrar nada que funcionasse.
Jpmc26
Houve uma ótima resposta a essa pergunta postada no site de Bret Ozars em seu artigo. "Por que ninguém nunca corrige seus servidores sql". brentozar.com/archive/2015/08/...
Russ Starksen

Respostas:

15

O cool wayé usar um script de instalação autônoma que é simplesmente chamado de cada servidor, onde a mídia da instalação está em um diretório central na sua rede, acessível a partir de cada servidor. Você precisará executar o script em um modo elevado, o que é bastante fácil no PowerShell.

Você precisará usar a CLI para extrair o hotfix, que encontrei aqui . Em seguida, as opções da CLI para o patch do SQL Server podem ser encontradas aqui .

Os comandos a seguir são o que eu usei para aplicar o patch CU6 à instância local do SQL Server 2012 SP2 no meu laptop. Mudei para o diretório em que baixei o hotfix para:

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

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Você simplesmente escreve isso como um script para cada servidor e puxa esse trecho do log de resumo (ou apenas o log inteiro) para um local central para poder voltar e determinar o status. A opção 2 seria incluir apenas algumas linhas de código para conectar-se a cada instância e verificar o número da compilação.

Shawn Melton
fonte
9

A instalação autônoma é o caminho a seguir - como o @ShawnMelton mencionou . Para implantar a CU em centenas de servidores, você pode explorar as opções abaixo (testá-las, para saber o que funcionará para você e seu ambiente):

  1. Sysinternals - PsExecpermitirá gerar a instalação em máquinas remotas.
  2. PowerShell - Use o recurso de comunicação remota no PowerShell 3.0 e posterior para executar a instalação. por exemploEnter-PSSession -ComputerName <COMPUTERNAME>
  3. Old is Gold - usando .batarquivo. <== isso definitivamente funciona com o SCCM, pois você pode implantar .batarquivos em vários servidores usando o SCCM.

    Abaixo está um exemplo de instalação SQL2008_SP2_and_CU_2k8_64bit (modifique conforme suas necessidades) . Você pode alimentar o arquivo bat no SCCM para que ele possa fazer uma instalação em massa.

    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

Como nota lateral (Cuidado!):

Eu nunca faria esse tipo de atualização em massa para esses muitos servidores (100's) de uma só vez. Em vez disso, agrupe-os em grupos gerenciáveis ​​e, em seguida, remende-os em grupos.

Dessa forma, você pode descobrir facilmente se algo der errado - por exemplo, se houver um bug na UC que você está instalando e for corrigido em uma CU ou SP posterior. Ou também em termos de instalação, se você estiver executando o patch de 100 servidores de uma só vez e dos quais 5 ou 7 servidores não foram devidamente corrigidos, como você vai descobrir isso?

Gerencio mais de 300 servidores na minha empresa e prefiro corrigi-los em lotes menores semanalmente. Assim, você começa com um número pequeno e, quando ganha confiança, repete o mesmo.

EDITAR:

Agora, o dbatools possui Update-DbaInstance.ps1a capacidade de executar a instalação do SQL Server Service Packs e atualizações cumulativas em servidores locais e remotos.

Kin Shah
fonte