您的位置:首页 > 大数据

如何在SharePoint2010中实现大数据存储(四步完成RBS解决方案)

2013-07-25 10:08 363 查看
第一步、开启数据库的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中是否有新添加的文件。

转自:http://www.cnblogs.com/start4e/archive/2012/04/01/2428317.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐