天天看點

MOSS2010之大檔案存儲方案,即直接檔案存儲方案

這篇文章說明問題:

1、将文檔以檔案形式存儲的方式,微軟術語叫RBS(Remote Blob Storage)

2、如何配置RBS

最近在項目中客戶提出了一個要求,要将企業内的文檔檔案、視訊檔案和設計工程檔案等等統統放入到MOSS2010中。這樣MOSS系統将成為一個檔案管理的大容器,即在統一的企業門戶平台内,實作現有企業的文檔統一管理的資訊化需求。

針對這一需求,微軟的MOSS2010 提供了一個套RBS(Remote Blob Storage)對大檔案的存儲解決方法。在 MOSS 2010 中,二進制大型對象 (BLOB) 是一個檔案,在預設情況下,這些 BLOB(又稱為非結構化資料)與中繼資料或結構化資料 一起内嵌存儲在 MOSS2010 内容資料庫中。因為 BLOB 可能非常大,是以将 BLOB 資料從 SQL Server 資料庫移動到商用或内容可尋址存儲中可能很有幫助,為此,微軟的MOSS2010 提供了 RBS,在MOSS2007的時候,微軟也提供過類似的借口。

閑話少說,開始進行逐漸的進行配置(有圖有真相,哈哈!),整個過程可以大概的分為四個步驟:

第一步,配置SQL2008的FILESTREAM 功能 :預設情況下,FILESTREAM 功能已在您安裝 SQL Server 2008 時安裝,但未啟用它。您必須在運作 SQL Server 2008(承載 SharePoint Server 2010 資料庫)的計算機上啟用并配置 FILESTREAM。打開SQL服務配置向導,找到SQL服務運作執行個體,右鍵屬性,如下圖,設定好後,這樣第一步驟就完成了,我們将SQL的 FILESTREAM 功能開啟。

<a href="http://s3.51cto.com/wyfs02/M01/2F/ED/wKiom1OijGGjPfHzAAKrmXoVaHI369.jpg" target="_blank"></a>

第二步,配置MOSS的内容資料庫的 BLOB 存儲:首先打開SQL Server Management Studio,找到内容資料庫(怎樣找内容資料庫,本章不再描述),建立查詢,然後依次執行如下的SQL script.

第一段腳本:

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'

第二段腳本:

(select groupname from sysfilegroups 

where groupname=N'RBSFilestreamProvider')

alter database [WSS_Content]

add filegroup RBSFilestreamProvider contains filestream

第三段腳本:

use [WSS_Content] 

add file (name = RBSFilestreamFile, filename = 

'c:\Blobstore') 

to filegroup RBSFilestreamProvider

在運作第二段腳本的時候,如果報“filestream 功能被禁用”這個錯誤,需要我們手工的運作腳本啟動FILESTREAM功能,

USE master

GO

EXEC sp_configure filestream_access_level, 2

RECONFIGURE

運作完這三段腳本,在伺服器的C槽下,将出現一個Blobstore檔案夾,如下圖,這樣第二步基本完成。

<a href="http://s3.51cto.com/wyfs02/M01/2F/ED/wKioL1OijDPB5YJKAAFpqfisE_o230.jpg" target="_blank"></a>

 第三步,MOSS的Web伺服器上安裝 RBS ,首先我們需要從微軟網站下載下傳一個軟體,RBS_x64.msi ,下載下傳位址如下:http://go.microsoft.com/fwlink/?linkid=165839&amp;clcid=0x804

打開指令行,運作如下的指令,見如下貼圖,大約等上一分鐘左右,指令行将運作完成,運作完成後指令行沒有任何提示,但是,你可以在資料中發現增加了許多新mssqlrbs_為表名頭的的表,這說明運作成功了。為了大家以後使用友善使用,我把指令行拷貝出來,如下:

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

“DBInstanceName”是伺服器SQL的執行個體名稱,需要根據你安裝的SQL執行個體進行替換。

<a href="http://s3.51cto.com/wyfs02/M00/2F/ED/wKiom1OijGKjyyqHAAKxuoayLNE573.jpg" target="_blank"></a>

第四步,啟用MOSS内容資料庫的 RBS,特别說明的是,RBS隻能使用 PowerShell 啟用它,微軟現在将 MOSS2010 産品與 PowerShell 緊密結合,将逐漸取締指令行的方式。話歸正題,我們将運作如下的PowerShell指令,也可以逐漸一行一行的運作,運作效果如下圖,為了以後使用友善,我将指令行指令貼在如下:

$cdb = Get-SPContentDatabase WSS_Content

$rbss = $cdb.RemoteBlobStorageSettings

$rbss.Installed()

$rbss.Enable()

$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])

$rbss

<a href="http://s3.51cto.com/wyfs02/M01/2F/ED/wKiom1OijGKB1rZXAAHNVvuWlCI557.jpg" target="_blank"></a>

 看到這個界面,基本部署完成了,剩下的工作,就是測試部署的效果了,可以往MOSS2010 的文檔庫中上傳一下檔案,這個時候,你會發現,在Blobstore檔案夾下多出一些檔案,這些檔案就是剛剛上傳的檔案,但是,我們看不到檔案的名稱等等資訊,我們可以将檔案拷貝出來,給它加上字尾名,再打開,這個時候,就會發現,原來MOSS隻是将檔案的字尾名稱和檔案名稱去掉了,存在SQL資料庫中,主體的檔案實體放在了檔案夾中。到此,本實驗圓滿成功。

您的支援,我的動力!

本文轉自    yuxye   51CTO部落格,原文連結:http://blog.51cto.com/fishvsfrog/1428211