在 SharePoint Server 伺服器陣列中使用 FILESTREAM 來安裝和設定 RBS

 

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

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

**摘要:**了解如何使用 FILESTREAM 提供者,在 SharePoint Server 2016 和 SharePoint 2013 伺服器陣列中啟用遠端 Blob 儲存 (RBS)。

SharePoint Server 使用 RBS 功能將二進位大型物件 (Blob) 存放在內容資料庫的外部。如需 RBS 的詳細資訊,請參閱 SharePoint Server 中的 RBS 概觀

除非特別指定,否則本文中的資訊都是專指使用 FILESTREAM 提供者的 RBS。如需其他提供者專屬的指導,請連絡提供者製造商。

提示

本解決方案會使用隨附於 SQL Server 2014、SQL Server 2014 Service Pack 1 SP1、SQL Server 2014 SP2、SQL Server 2016、SQL Server 2016 SP1 和 SQL Server 2008 的 FILESTREAM RBS 提供者。如果您想要使用不同的提供者來安裝和設定 RBS,請使用為 SharePoint Server 使用第三方提供者安裝及設定 RBS中的程序。

本文內容:

  • 開始之前

  • 啟用資料庫伺服器上的 FILESTREAM

  • 為每個內容資料庫佈建 BLOB 存放區

  • 在每個前端或應用程式伺服器上安裝 RBS 用戶端程式庫

  • 為每部內容資料庫啟用 RBS

  • 將 db_owner 權限指派給 Web 應用程式

  • 測試 RBS 安裝

開始之前

您只需為伺服器陣列安裝及設定一次 FILESTREAMY 提供者的 RBS。但若要為特定內容資料庫啟用不同提供者的 RBS,必須將 RBS 設定為使用這些提供者。如需此作業的詳細資訊,請參閱<為 SharePoint Server 使用第三方提供者安裝及設定 RBS>。

開始此作業之前,請先檢閱下列必要條件的相關資訊:

  • 用來執行為每個內容資料庫佈建 BLOB 存放區一節中步驟的使用者帳戶,必須是要設定 RBS 之各資料庫上的 db_owner 固定資料庫角色成員。

  • 使用在每部網頁伺服器上安裝 RBS 用戶端程式庫一節中的步驟安裝用戶端程式庫的使用者帳戶,必須是安裝程式庫所在之所有電腦的 Administrators 群組成員。

  • 為每部內容資料庫啟用 RBS 一節中啟用 RBS 的使用者帳戶,必須具備足以執行 Microsoft PowerShell 的權限。

啟用資料庫伺服器上的 FILESTREAM

FILESTREAM 功能預設會在安裝 SQL Server 時安裝,但不會加以啟用。您必須在執行 SQL Server 及代管 SharePoint Server 資料庫的電腦上啟用及設定 FILESTREAM。您必須:

  1. 啟用 Transact-SQL 存取的 FILESTREAM

  2. 啟用 FILESTREAM 的檔案 I/O 資料流存取。

  3. 如果您需要遠端用戶端存取,請允許遠端用戶端擁有 FILESTREAM 資料的資料流存取權。

若要啟用檔案 I/O 的 FILESTREAM 以及允許用戶端存取,請遵循啟用及設定 FILESTREAM 中的指示。您只需要針對要使用 RBS 的每部資料庫伺服器進行一次這些設定即可。

為每個內容資料庫佈建 BLOB 存放區

當您啟用及設定 FILESTREAM 之後,必須依照下列程序在檔案系統上佈建 BLOB 存放區。每一個要使用 RBS 的內容資料庫都必須佈建 BLOB 存放區。

佈建 BLOB 存放區

  1. 確認執行這些步驟的使用者帳戶是要設定 RBS 之各資料庫上的 db_owner 固定資料庫角色成員。

  2. 開啟 SQL Server Management Studio

  3. 連線到代管內容資料庫的 SQL Server 執行個體。

  4. 展開 [資料庫]。

  5. 按一下要建立 BLOB 存放區的內容資料庫,然後按一下 [新增查詢]。

  6. 將下列 SQL 查詢貼至 [查詢] 窗格,然後依所列的順序執行。請以內容資料庫名稱取代每個案例中的 [WSS_Content],再以 BLOB 存放區建立位置的「磁碟區\目錄」取代 c:\BlobStore。佈建程序便會在您指定的位置建立資料夾。請注意,您只可佈建 BLOB 存放區一次。若嘗試多次佈建相同的 BLOB 存放區,將會收到錯誤。

    提示

    為能發揮最大效能及簡化疑難排解的程序,通常會建議您在不含作業系統、分頁檔案、資料庫資料、記錄檔或 tempdb 檔案的磁碟區上建立 BLOB 存放區。

    use [WSS_Content]
    if not exists 
    (select * from sys.symmetric_keys 
    where name = N'##MS_DatabaseMasterKey##')
    create master key encryption by password = N'Admin Key Password !2#4'
    
    use [WSS_Content]
    if not exists 
    (select groupname from sysfilegroups 
    where groupname=N'RBSFilestreamProvider')
    alter database [WSS_Content]
    add filegroup RBSFilestreamProvider contains filestream
    
    use [WSS_Content] 
    alter database [WSS_Content]
     add file (name = RBSFilestreamFile, filename = 
    'c:\Blobstore') 
    to filegroup RBSFilestreamProvider
    

在每個前端或應用程式伺服器上安裝 RBS 用戶端程式庫

您必須在 SharePoint 伺服器陣列的所有前端或應用程式伺服器上安裝 RBS 用戶端程式庫。每部 web 伺服器只需要安裝一次 RBS 用戶端程式庫。用戶端程式庫包含連結到使用者應用程式的用戶端動態連結程式庫 (DLL),以及 SQL Server 上所安裝的一組預存程序。

警告

請勿藉由執行 RBS_amd64.msi 檔案以及啟動 [安裝 SQL 遠端 BLOB 儲存] 精靈來安裝 RBS 用戶端程式庫。此精靈會設定某些不建議用於 SharePoint Server 的預設值。

在第一個前端或應用程式伺服器上安裝 RBS 用戶端程式庫

  1. 確認執行這些步驟的使用者帳戶是安裝程式庫所在之電腦的系統管理員群組成員。

  2. 在任何前端或應用程式伺服器上,根據 SQL Server 版本和您所使用的 SharePoint 層級,下載正確的 RBS 用戶端。

    注意

    SharePoint Server 2016 支援 SQL Server 2014、SQL Server 2014 SP1、SQL Server 2014 SP2、SQL Server 2016 和 SQL Server 2016 SP1 中所包含的 FILESTREAM 提供者。
    SharePoint 2013 支援所有 SQL Server 2008 R2、SQL Server 2012 和 SQL Server 2014 版本中所含的 FILESTREAM 提供者。
    您只需要從 Feature Pack 下載 RSB.msi 檔案,但請確定您下載的是伺服器 (x86 或 x64) 適用的正確處理器類型。

    針對 SharePoint Server 2016,從下列清單中選擇正確的安裝︰

    針對 SharePoint 2013,從下列清單中選擇正確的安裝︰

  3. 複製下列命令並將之貼至「命令提示字元」視窗。以資料庫名稱取代 WSS_Content,再以 SQL Server 執行個體名稱取代 DBInstanceName。您只可使用指定的資料庫名稱與 SQL Server 執行個體名稱執行此命令一次。整個動作應在大約一分鐘之內完成。

    msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
    

將 RBS 用戶端程式庫安裝在所有其他前端及應用程式伺服器上

  1. 確認執行這些步驟的使用者帳戶是安裝程式庫所在之電腦的系統管理員群組成員。

  2. 在任何網頁伺服器上,根據 SQL Server 版本和您所使用的 SharePoint 層級,下載正確的 RBS 用戶端。使用下列其中一個清單來選擇正確的安裝。若要建立 X64 RBS.msi 檔案的安裝資料夾,請執行自我解壓縮下載套件。

    注意

    SharePoint Server 2016 支援 SQL Server 2014、SQL Server 2014 SP1、SQL Server 2014 SP2、SQL Server 2016 和 SQL Server 2016 SP1 中所包含的 FILESTREAM 提供者。
    SharePoint 2013 支援所有 SQL Server 2008 R2、SQL Server 2012 和 SQL Server 2014 版本中所含的 FILESTREAM 提供者。
    您只需要從 Feature Pack 下載 RSB.msi 檔案,但請確定您下載的是伺服器 (x86 或 x64) 適用的正確處理器類型。

    針對 SharePoint Server 2016,從下列清單中選擇正確的安裝︰

    針對 SharePoint 2013,從下列清單中選擇正確的安裝︰

  3. 複製下列命令並將之貼至「命令提示字元」視窗。 以資料庫名稱取代 WSS_Content,再以 SQL Server 執行個體名稱取代 DBInstanceName。整個動作應在大約一分鐘之內完成。

    msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer
    

    注意

    如果您嘗試在相同的 SQL Server 執行個體上安裝額外資料庫的 SQL Server 2012 遠端 Blob 存放區,則會收到錯誤。如需詳細資訊,請參閱 KB2767183

    收到此錯誤之後,請複製下列命令,並將其貼入 [命令提示字元] 視窗,而不需要使用 /qn 參數。這樣會開啟 [RBS 安裝程式] 視窗,您只能在其中變更資料庫名稱,然後遵循預設選項。接著您會看到在第二個資料庫中建立的 RBS 資料表。

    msiexec  /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content_RBS" DBINSTANCE="SQL2012SERVER" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider
    
  4. 針對 SharePoint 伺服器陣列中的所有前端伺服器和應用程式伺服器,重複此程序。

    注意

    如果您在 SharePoint Server 應用程式伺服器上安裝的 Visio web 服務尚未安裝 RBS 提供者,當您嘗試從這個伺服器開啟 Visio 圖表時,會出現 Visio 錯誤。如果您想要開啟該伺服器上的 Visio 圖表,必須在執行 Visio Graphics Service 的 SharePoint Server 伺服器上安裝 RBS 用戶端。

確認 RBS 用戶端程式庫安裝

  1. rbs_install_log.txt 記錄檔會建立在 RBS_amd64.msi 檔案所在的相同位置。請使用文字編輯器開啟 rbs_install_log.txt 記錄檔,然後捲動至檔案底部。檔案最後 20 行中應會包含下列項目:「產品:SQL 遠端 Blob 儲存 – 安裝已成功完成。」。

  2. 在執行 SQL Server 2014 Service Pack 1 (SP1) 或 SQL Server 2008 的電腦上,確認內容資料庫中是否已建立 RBS 資料表。內容資料庫下應列有數個名稱前加上 "mssqlrbs" 的資料表。

為每部內容資料庫啟用 RBS

您必須為 SharePoint 伺服器陣列中的每部網頁伺服器啟用 RBS。只要您已使用前述程序在網頁伺服器上安裝了 RBS,在何部網頁伺服器執行此動作便無太大差別。每個內容資料庫都必須執行此程序。

注意

您只可使用 Microsoft PowerShell 啟用 RBS。

使用 Windows PowerShell 啟用 RBS

  1. 確認您具備下列成員身分:

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

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

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

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

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

    $cdb = Get-SPContentDatabase <ContentDatabaseName>
    $rbss = $cdb.RemoteBlobStorageSettings
    $rbss.Installed()
    $rbss.Enable()
    $rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
    $rbss
    

    其中:

    • <ContentDatabaseName> 是內容資料庫的名稱。

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

將 db_owner 權限指派給 Web 應用程式

重要

請確定存取具有 RBS 功能之內容資料庫的 Web 應用程式是該資料庫的 db_owner 固定資料庫角色成員。

測試 RBS 安裝

您應測試 SharePoint 伺服器陣列之前端伺服器上的 RBS 安裝,以確定系統運作正常。

測試 RBS 資料存放區

  1. 在包含「RBS 資料儲存」的電腦上按一下 [開始],再按一下 [電腦]。

  2. 瀏覽至 RBS 資料儲存目錄。

  3. 確認資料夾是空的。

  4. 在 SharePoint 伺服器陣列上,上傳至少 100 KB 的檔案至文件庫。

  5. 在包含「RBS 資料儲存」的電腦上按一下 [開始],再按一下 [電腦]。

  6. 瀏覽至 RBS 資料儲存目錄。

  7. 瀏覽至檔案清單,然後開啟變更日期最新的檔案。這應該就是您剛才上傳的檔案。

See also

SharePoint Server 中的 RBS 概觀
決定在 SharePoint Server 中使用 RBS

安裝 SharePoint 2013
使用 SharePoint 2013 和 SQL Server 2012 安裝和設定 RBS
遠端 Blob 存放區 (RBS) (SQL Server)
啟用和設定 FILESTREAM