針對 SharePoint 伺服器陣列 SQL Server 的最佳作法

適用于:yes-img-132013 yes-img-16 2016yes-img-192019 yes-img-se訂閱版本 no-img-sopMicrosoft 365 中的 SharePoint

當您在 SQL Server 2014 Service Pack 1 (SP1)、SQL Server 2016 或 SQL Server 2017 RTM 上設定及維護 SharePoint Server 2016 和 2019 關聯式資料庫時,必須選擇提能夠升效能和安全性的選項。 同樣地,當您設定及維護 SQL Server 2008 R2 Service Pack 1 (SP1)、SQL Server 2012、SQL Server 2014 上的 SharePoint Server 2013 關聯式資料庫,也必須選擇提升效能和安全性的選項。

本文中的最佳作法會依據應用順序排列,包括從安裝與設定 SQL Server、部署 SharePoint Server 以及維護伺服器陣列。 大部分的作法都會套用到所有版本的 SQL Server。 SQL Server 各版本專屬的作法將以獨立章節說明。

注意事項

[!附註] 如果您想要在 SharePoint Server 2016 伺服器陣列中使用 SQL Server 商業智慧元件,則必須使用 SQL Server 2016 CTP 3.1 或更新版本。 您現在可以下載 SQL Server 2016 CTP 3.1 或更新版本以使用 SQL Server Power Pivot for SharePoint 增益集。 您也可以透過在 SharePoint 整合模式中安裝 SQL Server Reporting Services (SSRS),以及從 SQL Server 安裝媒體安裝 SSRS 前端增益集來使用 Power View。

如需詳細資訊,請下載最新 Deploying SQL Server 2016 PowerPivot and Power View in SharePoint 2016白皮書。 如需在多部伺服器 SharePoint Server 2016 伺服器陣列中設定及部署商業智慧的詳細資訊,請下載 在多層 SharePoint 2016 伺服器陣列中部署 SQL Server 2016 PowerPivot 和 Power View

注意事項

[!附註] 如果您打算在 SharePoint Server 2013 伺服器陣列中使用 SQL Server 商業智慧元件,必須使用 SQL Server 2012 Service Pack 1 (SP1) 或SQL Server 2014。 如需有關 SQL Server 2012 SP1 商業智慧 (BI) 和 SharePoint Server 2013 的詳細資訊,請參閱<安裝具有 SharePoint 2013 的 SQL Server BI 功能 (SQL Server 2012 SP1)>。 如需有關 SQL Server 2014 和 SharePoint Server 2013 的詳細資訊,請參閱安裝 SQL Server 2014 商業智慧功能

重要事項

本文中的最佳作法適用於具有 SharePoint Server 之 SQL Server 的關聯式資料庫管理系統 (RDBMS)。

使用 SQL Server 的專用伺服器

為了確保伺服器陣列作業的最佳效能,建議您在未執行其他伺服器陣列角色或未裝載其他應用程式之資料庫的專用伺服器上安裝 SQL Server。 唯一的例外是在單一伺服器伺服器陣列角色中部署 SharePoint Server 2016 或 2019 或在獨立伺服器上部署 SharePoint 2013,這用於開發或測試,並不建議用於實際執行環境。 如需詳細資訊,請參閱 SharePoint Server 2016 和 2019 中 MinRole 和相關聯服務的描述在含 SQL Server 的單一伺服器上安裝 SharePoint Server 2016 或 2019

注意事項

針對關聯式資料庫使用專用伺服器的建議同樣適用於在虛擬環境中部署 SQL Server。

設定特定的 SQL Server 設定後再部署 SharePoint Server

為了確保行為與效能一致,請先設定下列選項和設定後,再部署 SharePoint Server。

  • 由於維護多個 SQL 執行個體的潛在效能問題,建議您每個部署資料庫伺服器只使用單一部署的 SQL Server 執行個體。

  • 請不要在 SharePoint 內容資料庫上啟用自動建立統計資料功能。 SharePoint Server 不支援啟用自動建立統計資料功能。 SharePoint Server 會在佈建和升級期間進行必要設定。 手動啟用 SharePoint 資料庫的自動建立統計資料功能會大幅改變查詢的執行計畫。 SharePoint 資料庫可使用維護統計資料 (proc_UpdateStatistics) 的預存程序或仰賴 SQL Server 進行。

  • 針對 SharePoint Server 2013,維護計劃會由 SharePoint 管理:

    • SQL 統計資料是由健康情況規則「SharePoint 使用的資料庫具有過時的索引統計資料」來管理,該規則會呼叫 proc_updatestatics
    • 內容資料庫的自動更新統計資料屬性設定為 False
  • SharePoint Servers 2016 和 2019 SQL 系統管理員必須為 SharePoint 內容資料庫建立維護計劃

    • 「SharePoint 使用的資料庫有過時的索引統計資料」健康情況規則不會管理 SQL 統計資料
    • 內容資料庫的自動更新統計資料屬性設定為 True `
  • 針對代管 SharePoint 資料庫的 SQL Server 執行個體將平行處理原則 (MAXDOP) 的最大程度設為 1,確保單一 SQL Server 程序能夠因應每個要求。

    重要事項

    將平行處理原則的最大程度設成其他任何數字可能導致查詢計劃無法最佳化,進而降低 SharePoint Server 效能。

  • 若要協助簡化維護程序,例如輕鬆將資料庫移至其他伺服器,可針對 SQL Server 的所有執行個體建立指向 IP 位址的 DNS 別名。 如需 DNS 或主機名稱別名的詳細資訊,請參閱如何為 SQL Server 執行個體新增主機名稱別名 (英文)。

如需這些 SQL Server 設定和選項的詳細資訊,請參閱<設定 SQL Server 選項>。

強化資料庫伺服器後再部署 SharePoint Server

建議您先規劃並強化資料庫伺服器後,再部署 SharePoint Server。 如需詳細資訊,請參閱:

設定資料庫伺服器的效能與可用性

資料庫伺服器的設定與前端伺服器和應用程式伺服器相同,會影響 SharePoint Server 的效能。 有些資料庫必須和其他資料庫設置在同一台伺服器。 相反地,有些資料庫則無法和其他資料庫設置在同一部伺服器。 如需詳細資訊,請參閱 SharePoint Server 2016 和 2019 中 MinRole 和相關聯服務的描述規劃及設定儲存設備與 SQL Server 容量 (SharePoint Server)

如需使用鏡像的高可用性資料庫指引,請參閱資料庫鏡像 (SQL Server)

SQL Server 容錯移轉叢集和 Always On 可用性群組

SQL Server 2012 推出Always On可用性群組功能。 這項功能是高可用性和災害復原解決方案,為資料庫鏡像和記錄傳送解決方案的替代方案。 Always On可用性群組現在最多支援九個可用性複本。

注意事項

[!附註] SQL Server 的未來版本會取代資料庫鏡像。 建議使用 Always On 可用性群組。

Always On可用性群組需要 Windows Server 容錯移轉叢集 (WSFC) 叢集。 可為每個已建立的可用性群組建立 WSFC 資源群組。 如需詳細資訊,請參閱下列資源:

針對最佳傳送量和管理性設計儲存

建議您區隔資料庫伺服器磁碟機中的資料,並排定優先順序。 在理想的狀況下,應可將 tempdb 資料庫、內容資料庫、使用狀況資料庫、搜尋資料庫及交易記錄檔放在獨立的實體硬碟內。 下列清單將提供一些指引。 如需詳細資訊,請參閱<設定資料庫>。

  • 對於共同作業或更新頻繁的網站,可使用下列排名進行儲存散佈。

    最高排名項目應該在最快速的磁碟機中。

    排名 項目
    1 tempdb 資料檔案與交易記錄
    2 內容資料庫交易記錄檔案
    3 搜尋資料庫,但搜尋管理資料庫除外
    4 內容資料庫資料檔案
  • 在讀取密集的的入口網站中,依下列內容排定資料和交易記錄搜尋的優先順序。

    最高排名項目應該在最快速的磁碟機中。

    排名 項目
    1 tempdb 資料檔案與交易記錄
    2 內容資料庫資料檔案
    3 搜尋資料庫,但搜尋管理資料庫除外
    4 內容資料庫交易記錄檔案
  • 測試和使用者資料顯示,tempdb 的磁碟 I/O 不足會大幅妨礙整體伺服器陣列的效能。 若要避免此問題,請為儲存 tempdb 資料檔案的磁碟機配置專用磁碟。

  • 若要達到最佳效能,請針對儲存 tempdb 資料檔案的磁碟機使用 RAID 10 陣列。 tempdb 資料檔案的數量應與 CPU 核心的數量相同,而且每個 tempdb 資料檔案應設定成相同大小。

  • 區隔不同磁碟中的資料庫資料和交易記錄檔案。 若資料和記錄檔案因空間限制而必須共用磁碟,請將使用模式不同的檔案放在同一個磁碟,可減少同時存取的要求。

  • 針對使用頻繁的內容資料庫使用多個資料檔案,並將每個檔案放在其專屬的磁碟中

  • 若要改善管理性,請加以監控並視需求調整,將內容資料庫容量維持在 200 GB 以下,而非限制資料庫大小。

    注意事項

    若是在 SQL Server 中手動限制資料庫大小,當容量不足時會造成未預期的系統停機。

妥善設定 I/O 子系統對於達到 SQL Server 系統最佳效能與運作而言非常重要。 如需詳細資訊,請參閱監視磁碟使用量 (英文)。

提示

[!提示] 請考慮測量磁碟速度的方式會因資料檔案和記錄檔案而異。 對於資料庫資料而言速度最快的磁碟機,不一定對於記錄檔案也是如此。 請將使用模式、I/O 及檔案大小列入考量。

主動管理資料與記錄檔案的增長

下列是針對主動管理資料與記錄檔增長所提出的建議:

  • 儘量將所有資料檔案和記錄檔案提升到預期的最終尺寸,或是定期在設定期間提升尺寸,例如每個月或每六個月;或者在導入全新儲存頻繁的網站前進行,例如檔案移轉期間。

  • 將資料庫自動成長設為保護措施,可避免耗盡資料與記錄檔案的空間。 考慮下列事項:

    重要事項

    [!重要事項] 您必須將和使用自動成長功能有關的效能和操作問題列為重要因素。 如需詳細資訊,請參閱考慮 SQL Server 中的「自動成長」和「自動壓縮」設定

    • 新資料庫的預設設定是以 1 MB 的增量成長。 因為自動成長的這個預設設定會導致資料庫的大小增加,所以請勿依賴預設設定。 請改用設定SQL Server選項中提供的指引

    • 將自動成長值設為固定的 MB 數值,而非百分比。 資料庫越大,成長增量應該就越大。

      注意事項

      [!附註] 設定 SharePoint 資料庫的自動成長功能時請務必留意。 如果將資料庫設為依百分比自動成長,例如 10 個百分比 (%) 的成長率,則容量 5 GB 的資料庫每次就會成長 500 MB,資料檔案也必須隨之擴張。 此時磁碟空間可能就會不足。

      請考慮像下列這樣的情況:內容不斷增加,而且以 100 MB 為增量、自動成長設為 10 MB。 一個全新文件管理網站突然需要非常大量的資料儲存空間,初始大小可能就需要 50 GB。 對於這樣的大型新增容量,以 500 MB 為增量成長,會比以 10 MB 為增量成長更合適。

    • 對於受控生產系統,請將自動成長視為只是非預期成長的應變。 請勿使用自動成長選項來管理您的資料,並記錄日常成長。 相反地,請將自動成長設定為允許大約一年的大小,然後新增 20% 的誤差邊界。 同時設定警示,以在資料庫空間不足或接近大小上限時通知您。

  • 將磁碟機維持在至少 25% 的可用空間,方可適應成長與尖峰使用模式。 如果要為 RAID 陣列新增磁碟機,或是配置更多需管理的儲存體,請務必嚴密監控容量,避免空間不足。

持續監控 SQL Server 儲存與效能

建議您持續監控 SQL Server 儲存與效能,確保每部實際執行資料庫伺服器都能妥善處理增加的負載。 此外,持續監控也能讓您建立規劃資源時所使用的基準。

全面檢視資源監控。 請勿限制監控 SQL Server 特定的資源。 追蹤在執行 SQL Server 的電腦上的下列資源也同樣重要:CPU、記憶體、快取/點擊比率以及 I/O 子系統。

當一或多個伺服器資源似乎速度過慢或負荷過大時,請依據目前與預計工作量考慮下列效能指引。

使用備份壓縮加速備份作業並降低檔案大小

備份壓縮可以加速 SharePoint 備份作業。 它可在 SQL Server 標準版和企業版中使用。 如果您在備份指令碼中設定壓縮選項,或預設設定 SQL Server 進行壓縮,則可以大幅降低資料庫備份和傳送的記錄的大小。 如需詳細資訊,請參閱<備份壓縮 (SQL Server)>和<資料壓縮 >或<啟用資料表或索引的壓縮>。

致謝

SharePoint Server 內容發佈小組感謝下列人員對本文的貢獻:

  • Kay Unkroth,資深程式經理,SQL Server

  • Chuck Heinzelman,資深程式經理,SQL Server

另請參閱

概念

SharePoint Server 2016 和 2019 環境中的 SQL Server 概觀

規劃及設定儲存設備與 SQL Server 容量 (SharePoint Server)

其他資源

保護 SharePoint 的安全:強化 SharePoint 環境中的 SQL Server