Sql-Server

有沒有一種很酷的方法可以在數百台機器上為 SQL Server 執行 CU 更新?

  • February 6, 2019

通過一次併購,我的公司一夜之間從 50 個 SQL Server 增長到了 200 多個。幫助!

我的問題是:

  • 我怎樣才能在這麼多伺服器上執行 CU 更新並且仍然有生命並保持理智?SCCM 似乎無法執行 CU 更新。
  • 有其他人能夠在 100 台伺服器上執行 CU 更新嗎?
  • 還有哪些其他選擇?

cool way使用一個無人值守的安裝腳本,該腳本簡單地從每台伺服器呼叫,其中用於安裝的媒體位於網路上的中央目錄中,可從每台伺服器訪問。您必須在提升模式下執行腳本,這在 PowerShell 中相當容易。

您將需要使用 CLI 來提取修補程序,我在這裡找到了. 然後可以在此處找到SQL Server 更新檔的 CLI 選項。

以下命令是我用來將 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 是只包含幾行程式碼來連接到每個實例並驗證內部版本號。

正如@ShawnMelton 提到的那樣,無人值守安裝是可行的方法。要在 100 台伺服器上部署 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 Service Pack 和累積更新的安裝。

引用自:https://dba.stackexchange.com/questions/105810