在 SharePoint Server 中執行使用唯讀資料庫的伺服器陣列

 

**適用版本:**SharePoint Foundation 2013, SharePoint Server 2013, SharePoint Server 2016

**上次修改主題的時間:**2017-09-14

**摘要:**了解如何在部分或所有資料庫設為唯讀時,執行唯讀的 SharePoint Server 2016 和 SharePoint 2013 伺服器陣列。

您可以使用 Microsoft PowerShell 或 SQL Server 工具將 SharePoint Server 資料庫設為唯讀。所使用的工具取決於已部署的環境類型、排程需求以及您組織的服務等級協定而定。

本文內容:

  • 開始之前

  • 為使用者準備唯讀經驗

    • 使用唯讀內容資料庫的網站

    • 使用唯讀服務應用程式資料庫的伺服器陣列

  • 設定內容資料庫為唯讀

    • 使用 Windows PowerShell 確定建立哪個內容資料庫與網站集合的關聯

    • 使用 SQL Server 將內容資料庫設為唯讀

  • 設定服務應用程式資料庫為唯讀

    • 使用 SQL Server 將服務應用程式資料庫設為唯讀

開始之前

開始這項作業之前,請先檢閱下列如何建立唯讀伺服器陣列之設定的相關資訊:

如果下列任一條件為真,則伺服器陣列將被視為唯讀:

  • 設定所有內容資料庫為唯讀。

  • 設定服務應用程式資料庫為唯讀。

    注意

    當 Search Service 應用程式的資料庫設定為唯讀時,該應用程式無法作用。

唯讀伺服器陣列中的功能與使用者經驗取決於哪些資料庫設定為唯讀。

注意

使用唯讀內容與服務應用程式資料庫的伺服器陣列,很可能屬於損毀修復環境或高可用性的維護、更新或升級環境的一部分。

為使用者準備唯讀經驗

如果您打算向使用者提供存取唯讀網站或伺服器陣列的權限,則您應該要設定使用者能夠在此網站上完成哪些工作,以及使用者介面 (UI) 的行為。

使用唯讀內容資料庫的網站

使用設定為唯讀內容資料庫網站的使用者經驗具備下列特性:

  • 首頁上的陳述說明了網站是唯讀的。

  • 可完整使用不需要寫入內容資料庫的常見工作。

  • 需要寫入內容資料庫的常見工作無法使用,因為工作的 UI 不提供使用或因為使用者無法套用變更以完成工作。

  • 某些需要寫入內容資料庫的常見工作好像可以使用卻傳回錯誤。

使用唯讀服務應用程式資料庫的伺服器陣列

使用設定為唯讀的服務應用程式資料庫伺服器陣列的使用者經驗具備下列特性:

  • 可以完整使用不需要寫入服務資料庫的常見工作。

  • 所有需要寫入服務資料庫的常見工作好像可以使用卻傳回錯誤。

設定內容資料庫為唯讀

在設定內容資料庫為唯讀之前,可能需要確定建立哪個內容資料庫與特定網站集合的關聯。

使用 PowerShell 確定建立內容資料庫與網站集合的關聯

  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。

    注意

    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  2. 啟動 SharePoint 管理命令介面。

  3. 在 PowerShell 命令提示字元處,輸入下列命令:

    Get-SPContentDatabase -Site <Site URL>
    

    其中:

    • <Site URL> 是要了解其相關內容資料庫的網站集合 URL。

      此命令傳回與此網站相關聯的內容資料庫。

如需詳細資訊,請參閱<Get-SPContentDatabase>。

注意

建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

您可以遵循這些步驟透過 SQL Server Management Studio 將讀/寫內容資料庫設定為唯讀。還可以使用 Transact-SQL ALTER DATABASE 陳述式將內容資料庫設定為唯讀。如需詳細資訊,請參閱<ALTER DATABASE (Transact-SQL)>。

重要

請勿對容錯移轉環境中的記錄傳送資料庫或鏡像資料庫執行此程序。如果容錯移轉環境中的資料庫是記錄傳送或鏡像資料庫並被設為唯讀,不但無法執行更新,備份也會是無效的。

使用 SQL Server 將內容資料庫設為唯讀

  1. 確認執行此程序的使用者帳戶為每個資料庫之 db_owner 固定資料庫角色的成員。

  2. 啟動 SQL Server Management Studio。

  3. 以滑鼠右鍵按一下您要設為唯讀的內容資料庫,然後按一下 [內容]。

  4. 選取 [選項] 頁面,然後在 [其他選項] 清單中,捲動至 [狀態] 區段。

  5. 在 [資料庫唯讀] 列中,按一下 [False] 旁的箭頭,選取 [True],然後按一下 [確定]。

  6. 對所有其他內容資料庫重複此程序。

    注意

    在設定資料庫為唯讀後,將會停止所有連線 (但設定唯讀標幟的連線除外)。設定了唯讀標幟後,將會啟用其他連線。

如果與唯讀內容資料庫相關聯的網站集合鎖定狀態以前為 [無]、[禁止新增] 或 [唯讀],則網站集合會自動設定為唯讀。如果網站集合的鎖定狀態以前為 [禁止存取],則在資料庫鎖定狀態變更時,會仍然保持 [禁止存取] 狀態。

設定服務應用程式資料庫為唯讀

可以將任何服務應用程式資料庫設定為唯讀。但是,若將某些服務應用程式的資料庫 (例如與 Search 及 Project Server 相關聯的那些資料庫) 設定為唯讀,則部分應用程式將無法作用。

使用 SQL Server 將服務應用程式資料庫設為唯讀

  1. 確認執行此程序的使用者帳戶為每個資料庫之 db_owner 固定資料庫角色的成員。

  2. 啟動 SQL Server Management Studio。

  3. 以滑鼠右鍵按一下您要設為唯讀的資料庫,然後按一下 [內容]。

  4. 選取 [選項] 頁面,然後在 [其他選項] 清單中,捲動至 [狀態] 區段。

  5. 在 [資料庫唯讀] 列中,按一下 [False] 旁的箭頭,選取 [True],然後按一下 [確定]。

  6. 根據需要對其他服務應用程式資料庫重複此作業。

    注意

    在設定資料庫為唯讀後,將會停止所有連線 (但設定唯讀標幟的連線除外)。設定了唯讀標幟後,將會啟用其他連線。