MOSS2010之大文件存儲方案


最近在項目中客戶提出了一個要求,要將企業內的文檔文件、視頻文件和設計工程文件等等統統放入到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 功能開啟。

 

 

第二步,配置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 '

  第二段腳本:

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

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

USE master
GO

EXEC sp_configure filestream_access_level,  2
RECONFIGURE

運行完這三段腳本,在服務器的C盤下,將出現一個Blobstore文件夾,如下圖,這樣第二步基本完成。

 

  第三步,MOSS的Web服務器上安裝 RBS ,首先我們需要從微軟網站下載一個軟件,RBS_x64.msi ,下載地址如下:http://go.microsoft.com/fwlink/?linkid=165839&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實例進行替換。

 

 

  第四步,啟用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

 

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM