標籤:
第一步、開啟資料庫的FILESTREAM支援
實際環境為Sharepoint2010 和 SQL Server2008 R2;資料庫預設安裝的時候可能沒有開啟FILESTREAM,此時需要我們核實是否已經開啟。開啟SQL組態管理員,如所示
在開啟FILESTREAM之後,在資料庫中執行下列語句
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
第二、配置內容資料庫與檔案系統的映射
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:\SharePointData\FileData‘) to filegroup RBSFilestreamProvider
其中[WSS_Content]為你sharepoint內容資料庫的名稱,‘C:\SharePointData\FileData’為需要將BLOB檔案儲存體的位置。
第三、安裝RBS提供者
將RBS_x64.msi複製到場中得每個伺服器(如果有多個伺服器),以管理員身份運行CMD,將命令提示行路徑定位到安裝檔案目錄下運行下面代碼。
msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="sp2010" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
其中 WSS_Content 為內容資料庫名稱 ,sp2010為資料庫執行個體名。
不建議直接運行安裝RBS提供者(RBS_x64.msi),因為如果直接運行此程式,程式會安裝一個30天得執行計畫,因此建議採用上述提示行的方式安裝。
如果只有一個伺服器則安裝好上面的就可以了,如果有多個伺服器,則必須在每個伺服器上均安裝此提供者,不過安裝代碼有所區別,如下:
msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi DBNAME="WSS_Content" DBINSTANCE="sp2010" DDLOCAL="Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer"
在安裝完成上述操作後可檢查內容資料庫中是否多出以“mssqlrbs”開頭的表,如果有說明安裝成功,如果沒有則需要將RBS_X64卸載,重新執行上述步驟。
第四、為內容資料庫啟用RBS
啟動sharepoint shell
運行下列代碼:
(1) $cdb = Get-SPContentDatabase "WSS_Content"
擷取到指定的內容資料庫(SPContentDatabase)對象執行個體,綠色所標註的"WSS_Content"需要更換成在你的環境中,實際的內容資料庫名稱。
(2) $rbss = $cdb.RemoteBlobStorageSettings
擷取內容資料庫的RBS設定(SPRemoteBlobStorageSettings)對象執行個體。
(3) $rbss.Installed()
檢查在內容資料庫上是否安裝了RBS,如果需要,更新相應的屬性值。
(4) $rbss.Enable()
在內容資料庫上啟用RBS。
(5) $pvdName = $rbss.GetProviderNames()[0]
擷取第一個註冊到內容資料庫上的RBS Provider的名稱。
(6) $rbss.SetActiveProviderName($pvdName)
為內容資料庫設定要啟用的RBS Provider。
然後,你可以執行"$rbss"來查看它的一些屬性值,如果設定正確,它輸出的內容應該如所示。
如果你啟用RBS FILESTREAM Provider的內容資料庫中,已經儲存了一個網站集合,那麼在你啟用了RBS Provider之後,網站集合裡面的文檔,並不會自動的馬上通過FILESTREAM,轉存到NTFS檔案系統上。只有新增的文檔才會被儲存到NTFS檔案系統上,網站集合裡面之前上傳的文檔,仍然會儲存在內容資料庫裡面。如果你希望現在將那些舊的文檔,統統轉存到我們所指定的NTFS檔案系統中,那麼可以繼續在SharePoint 2010 Management Shell中執行下面這個指令:
(7) $rbss.Migrate()
如果你希望設定一個文檔大小閾值,只有大小超過此閾值的文檔,才通過RBS FILESTREAM Provider儲存到NTFS檔案系統上,而小於此閾值的文檔,仍然儲存在內容資料庫中,那麼可以在SharePoint 2010Management Shell中繼續執行下面的指令(假設閾值是1048000位元組,也就是1M):
(8) $rbss.MinimumBlobStorageSize = 1048000
(9)$rbss.Update()
上述步驟操作成功後,可在文件庫上傳一個超過100KB (如果設定了閾值,則上傳超過閾值的大小)的文檔,然後檢查C:\SharePointData\FileData中是否有新添加的檔案。
如何在SharePoint2010中實現大資料存放區(四步完成RBS解決方案)