**適用版本:**SharePoint Server 2016
**上次修改主題的時間:**2017-06-29
**摘要:**安裝軟體更新,在執行 SharePoint Server 2016 的伺服器上進行「組建至組建」升級。
本文內容:
開始之前
決定更新策略
監視安裝進度
初始狀態
將就地製作方法與回溯相容性搭配使用
在裝載 Search 元件的伺服器上安裝軟體更新
開始之前
開始軟體更新程序之前,請先檢閱下列關於權限、硬體需求、軟體需求,以及更新程序的資訊。
若要執行本文的 Microsoft PowerShell 程序,您必須具備下列的成員資格和角色:
SQL Server 執行個體上的 securityadmin 固定伺服器角色
所有要更新之資料庫上的 db_owner 固定資料庫角色
在要執行 Microsoft PowerShell Cmdlet 的伺服器上,為本機系統管理員
安裝更新之前,請先確認已符合下列條件:
所有前端網頁伺服器皆連同負載平衡器,並與負載平衡器輪替。
陣列中的所有伺服器皆正常運作。若使用 Search,您可以使用 Microsoft PowerShell Cmdlet Get-SPEnterpriseSearchStatus 或移至 [管理中心] > [管理服務應用程式] > [Search_service_application_name] 檢視伺服器狀態。
所有資料庫皆在使用中並正常運作。
如果不符合上述任一情況,請勿啟動更新。請先解決所有問題,再繼續進行。
SharePoint Server 2016 可以在修補階段完成之後處理某些升級失敗。不過,如果組建至組建的升級失敗,您可能需要從備份還原。因此,請務必在開始更新程序之前執行完整備份。完成還原之後,您可以繼續更新。已完成的工作無法再次執行。如需詳細資訊,請參閱下列資源:
決定更新策略
開始部署軟體更新之前,請確定您計劃要使用的更新策略對 SharePoint Server 2016 環境是最好的。決定部署軟體更新所使用的策略有幾個因素,例如成本和複雜性。
注意
本文中的某些連結會連至「版本至版本」升級的內容,而不是「組建至組建」升級。不過,這兩種升級的一般程序很相似。例如,「組建至組建」升級和「版本至版本」升級的資料庫升級階段本質上是相同的。
監視安裝進度
監視部屬更新的程序以確認更新如期進行。可能會發生問題阻礙更新,或造成具備元素之更新的伺服器陣列無法如預期般運作。請特別注意資料庫的同步處理與自訂。
建議您使用 管理中心 中的「升級與移轉」頁面,作為檢視產品與即時修補程式安裝狀態、資料狀態,以及更新狀態的主要工具。
執行安裝程式之後,您也可以檢視記錄檔,並使用 Microsoft PowerShell 查看安裝進度。
初始狀態
下圖顯示本文所述之每一個修補案例作為範例的伺服器拓撲。
將就地製作方法與回溯相容性搭配使用
這種案例利用 SharePoint Server 2016 的回溯相容性優點以及順延升級功能,來避開部署軟體更新所需要的伺服器陣列停機時間。
這個更新案例在伺服器陣列中的伺服器上分兩個階段安裝更新。兩個階段分別是:
在伺服器陣列中的伺服器上安裝更新。
執行組建至組建的升級完成修補程序。
如需詳細資訊,請參閱<SharePoint Server 2016 的軟體更新概觀>中的<軟體更新程序>一節。
更新階段
下圖顯示在伺服器陣列上安裝更新所需的步驟。您可以將這張圖當作指引,在進行接下來的「安裝更新」程序的步驟時對照參考。
安裝更新
執行 sts2016-kb3115088-fullfile-x64-glb.exe 檔案 (即 sts.msp)。
執行 wssloc2016-kb2920690-fullfile-x64-glb.exe 檔案 (即 wssmui.msp)。
注意
您可能需要將安裝在伺服器陣列上的每一種語言的 wssmui.msp 檔案解壓縮。
從負載平衡器中的輪替中移除第一個網頁伺服器 (WEB-1),或暫停負載平衡器以停止伺服器的傳入要求。
修補網頁伺服器 (WEB-1)。
將網頁伺服器 (WEB-1) 加回輪替。
對其餘的網頁伺服器 (WEB-2 至 WEB-4) 重複步驟 3 和 4。
在每一個不在負載平衡輪替中的網頁伺服器上,執行修補程式 (也就是 sts.msp 和 wssmui.msp 檔案) 進行安裝。此時請勿在這些伺服器上執行 SharePoint 產品設定精靈。檢視升級的記錄檔,確認兩個網頁伺服器皆已成功地更新。
在裝載 SharePoint 管理中心網站 的所有應用程式伺服器上安裝修補程式。此時請勿執行 SharePoint 產品設定精靈。
如果您的伺服器陣列中有其他未裝載 Search 元件的應用程式伺服器,請執行更新執行檔在這些伺服器上安裝更新。此時請勿在這些伺服器上執行 SharePoint 產品設定精靈。
檢視升級的記錄檔,確認這些應用程式伺服器皆已成功地更新。
程序進行到此,資料庫與其他元件 (例如設定、功能,以及網站層級資料) 仍必須升級,因為 [SharePoint 產品設定精靈] 並未在任何伺服器陣列中伺服器上執行。不過,伺服器陣列應該要可以在回溯相容性模式中執行。
升級階段
下圖顯示升級陣列中伺服器以完成修補程序的步驟。
您可以將上圖當作指引,在進行接下來的步驟時對照參考。
重要
依序升級下一部伺服器之前,監視每一部伺服器上的升級狀態。建議您先建立伺服器陣列的備份,然後再開始升級。
下列程序顯示升級伺服器陣列的所有步驟。
Services
如果軟體更新包含必須套用的服務更新,您可以升級服務,然後重新運作伺服器陣列 (以下程序中的步驟 8),直到它可能需要較長的伺服器陣列中斷時間來完成內容與伺服器陣列升級為止。
Content databases
您也可以針對極少數的內容資料庫同時升級個別的內容資料庫。不過,請勿嘗試同時升級過多的內容資料庫,因為這樣會減慢整個升級程序的速度。建議您不要在相同的 SQL Server 磁碟區上一次升級兩個以上的內容資料庫。同時在幾分鐘內分別開始升級每一個內容資料庫,以避免在升級程序開始時鎖定爭用。此外,限制在單一網頁伺服器或應用程式伺服器上升級的內容資料庫數目。每一個額外的升級程序將耗用大量的資源。每一部網頁伺服器或應用程式伺服器中可升級之內容資料庫的常用數目是四個資料庫。然而,無論是哪一部網頁伺服器或應用程式伺服器啟用升級,請確定不要超過每一個 SQL Server 磁碟區中要升級的資料庫數目。
升級伺服器陣列
使用 Windows PowerShell Upgrade-SPContentDatabase Cmdlet 來升級每個內容資料庫。如需詳細資訊,請參閱 Upgrade-SPContentDatabase。這是選用的步驟,但此步驟有助於確保先升級所有內容資料庫。它的好處是可讓部分並行處理避免中斷時間。如果未執行此步驟,當您執行 [SharePoint 2016 產品設定精靈] 升級伺服器陣列中伺服器時,會依序升級所有其餘未升級的內容資料庫。
注意
為每個資料庫執行 Upgrade-SPContentDatabase Cmdlet。您可以從任何已升級的網頁伺服器或應用程式伺服器執行此 Cmdlet。
在管理中心伺服器 (APP-1) 上,執行下列其中一項動作:
執行 SharePoint 2016 產品設定精靈。
在 Microsoft PowerShell 命令提示字元中執行下列命令。
cd \Program Files\Common Files\Microsoft Shared\web server extensions\16\bin .\psconfig.exe -cmd secureresources -cmd installfeatures -cmd upgrade -inplace b2b -force -wait -cmd applicationcontent -install
注意
如果更新程序因為任何原因而失敗,您可以執行 Copy-SPSideBySideFiles Cmdlet 來還原更新的狀態。如需「並存」檔案的詳細資訊,請參閱<Copy-SPSideBySideFiles>。
重要
「SharePoint 產品設定精靈」也會針對設定資料庫與未升級的所有其他資料庫啟動立即升級。因為如上一步驟中所述,很可能內容資料庫是唯一已升級的資料庫,所有服務應用程式資料庫也會在此步驟中升級。
從負載平衡器中的輪替中移除網頁伺服器 (WEB-1),或暫停負載平衡器以停止伺服器的傳入要求。
在已從輪替中移除的網頁伺服器 (WEB-1) 上,在 PowerShell 命令提示字元執行下列命令。
cd \Program Files\Common Files\Microsoft Shared\web server extensions\16\bin .\psconfig.exe -cmd secureresources -cmd installfeatures -cmd upgrade -inplace b2b -force -wait -cmd applicationcontent -install
將網頁伺服器 (WEB-1) 加回輪替。
對其他網頁伺服器 (WEB-2、WEB-3、WEB-4) 重複步驟 3-4。
視需要 Upgrade specific services。有些更新可能也需要您執行其他 PowerShell Cmdlet 來升級特定服務應用程式。軟體更新的附註可能會指出您需要升級特定服務,它才能在修補之後繼續運作。用於升級特定服務應用程式的其他 PowerShell Cmdlet,應該會在附註之中 (如果需要這樣做)。
在其餘的應用程式伺服器 (APP-2) 上執行 SharePoint 2016 產品設定精靈 或 PSConfig (如本程序的步驟 3)。
對 APP-3 和 APP-4 伺服器重複步驟 3 和 4。
確認更新是否完成與成功。
在裝載 Search 元件的伺服器上安裝軟體更新
只有在本文中的其他程序指定本節的程序時,才執行此程序。本節包括下列程序:
在伺服器陣列停機時間,更新裝載 Search 元件的伺服器
以最少的停機時間更新裝載 Search 元件的伺服器
決定伺服器可用性群組,以便以最少的停機時間進行更新
在伺服器陣列停機時間,更新裝載 Search 元件的伺服器
在 PowerShell 命令提示字元中輸入下列命令,以暫停 Search 服務應用程式:
$ssa=Get-SPEnterpriseSearchServiceApplication Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
在裝載一或多個 Search 元件的每個伺服器上,依下列順序停止與 Search 相關的 Windows 服務:
SPTimerV4
Osearch16
SPSearchHostController
重要
請確認前一個服務已停止了,再停止下一個服務。
在裝載一或多個 Search 元件的每個伺服器上,執行更新執行檔以安裝更新。
在裝載一或多個 Search 元件的每個伺服器上,依下列順序啟動與 Search 相關的 Windows 服務:
SPSearchHostController
Osearch16
SPTimerV4
在 PowerShell 命令提示字元中輸入下列命令,以確認在更新之後所有的 Search 元件皆為使用中:
Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -ne "Active"} | fl
重新執行命令,直到輸出中沒有列出任何 Search 元件。
在 PowerShell 命令提示字元中輸入下 列命令,以繼續 Search 服務應用程式:
Resume-SPEnterpriseSearchServiceApplication -Identity $ssa
確認伺服器陣列已編目更新後的內容,並且能夠索引新的和修改過的文件。做法是新增或修改網站集合中的一個項目,執行本機 SharePoint 網站內容來源的編目,然後搜尋該項目並確認它出現在搜尋結果中。
以最少的停機時間更新裝載 Search 元件的伺服器
將裝載 Search 元件的伺服器分成兩個可用性群組,以便在其更新和組建至組建升級期間將停機時間降到最低。(只要其中一個群組是使用中且運作正常,伺服器陣列就可以提供查詢以及編目和索引內容。)如需有關如何將伺服器分割成兩個可用性群組的指示,請參閱本文稍後的<決定伺服器可用性群組,以便以最少的停機時間進行更新>。
在 PowerShell 命令提示字元中輸入下列命令,以暫停 Search 服務應用程式:
Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
在伺服器可用性群組 1 的每個伺服器上,依下列順序停止與 Search 相關的 Windows 服務:
SPTimerV4
Osearch16
SPSearchHostController
重要
請確認前一個服務已停止了,再停止下一個服務。
在可用性群組 1 的每個伺服器上,執行更新執行檔以安裝更新。
在可用性群組 2 的每個伺服器上,依照前述停止可用性群組 1 伺服器的相同順序,停止與 Search 相關的 Windows 服務。同樣的,請務必確認前一個服務已停止了,再停止下一個服務。
在可用性群組 1 的每個伺服器上,依下列順序啟動與 Search 相關的 Windows 服務:
SPSearchHostController
Osearch16
SPTimerV4
請等到與可用性群組 1 關聯的所有 Search 元件都在使用中。若要判斷哪些元件為使用中,請在 PowerShell 命令提示字元輸入下列命令:
Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -eq "Active"} | fl
重複執行此命令,直到輸出中列出與可用性群組 1 關聯的所有 Search 元件。
在可用性群組 2 的每個伺服器上,執行更新執行檔以安裝更新。
在可用性群組 2 的每個伺服器上,依照前述啟動可用性群組 1 伺服器的相同順序,啟動與 Search 相關的 Windows 服務。
請等到與可用性群組 2 關聯的所有 Search 元件都在使用中。若要判斷哪些元件為使用中,請在 PowerShell 命令提示字元輸入下列命令:
Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -eq "Active"} | fl
重複執行此命令,直到輸出中列出與可用性群組 2 關聯的所有 Search 元件。
在 PowerShell 命令提示字元中輸入下 列命令,以繼續 Search 服務應用程式:
Resume-SPEnterpriseSearchServiceApplication -Identity $ssa
確認伺服器陣列已編目更新後的內容,並且能夠索引新的和修改過的文件。做法是新增或修改網站集合中的一個項目,執行本機 SharePoint 網站內容來源的編目,然後搜尋該項目並確認它出現在搜尋結果中。
決定伺服器可用性群組,以便以最少的停機時間進行更新
在伺服器陣列中的任何伺服器上啟動 SharePoint Server 2016 管理介面。
在 PowerShell 命令提示字元中輸入下列命令,決定主要的 Search 管理元件,以及裝載元件的伺服器:
$ssa=Get-SPEnterpriseSearchServiceApplication Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where { (($_.State -ne "Unknown") -and ($_.Name -match "Admin")) } | ForEach {if (Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Component $_.Name -Primary) { Get-SPEnterpriseSearchTopology -SearchApplication $ssa -active | Get-SPEnterpriseSearchComponent -identity $($_.Name) } }
決定可用性群組 1 中的伺服器集合。這些伺服器都必須符合下列三個需求:
集合必須包含一個或多個,但不是全部的下列 Search 元件類型:
內容處理元件
查詢處理元件
分析處理元件
編目元件
索引元件
集合必須包含一個或多個,但不是全部的各索引分割的索引元件。
集合必須包含一個 Search 管理元件,且不是在此程序步驟 2 找出的主要元件。
決定可用性群組 2 中的伺服器集合。這個集合必須包含裝載 Search 的所有其餘伺服器,包括裝載在此程序步驟 2 找出之主要 Search 管理元件的伺服器。