sharepoint 2010中启用RBS及所遇问题

首先,介绍下环境

机器名 作用
RBS3 域控制器+sql server 2008 r2
RBS2 sharepoint 2010 前端
RBS1 sharepoint 2010 管理中心
web应用程序 网站集 内容数据库 是否启用RBS
sharepoint - 80 http://rbs1 WSS_Content
http://rbs1/sites/newOne WSS_Content_newOne

                                             

                                 
                                  

一.在数据库服务器上启用FileStream

  1.按照如下路径打开SQL Server配置管理器

  开始->所有程序->Microsoft SQL Server 2008 R2->配置工具->SQL Server 配置管理器

  2.右键单击“SQL Server 服务”->属性,切换到FILESTREAM 标签,将该属性页设置成如图所示的情景

点击“确定”后重启SQL Server 服务.

二。为每个需要启用RBS的内容数据库设置BLOB存储

     这里只需要给WSS_Content_newOne启用RBS。

    打开SQL Server Management Studio,新建查询,按顺序输入并执行以下脚本,实际应用时把下文中的WSS_Content_newOne替换成实际的内容数据库

1.  

EXEC sp_configure filestream_access_level, 2
RECONFIGURE

 2.

use [WSS_Content_newOne]
if not exists 
(select * from sys.symmetric_keys 
where name = N'##MS_DatabaseMasterKey##')
create master key encryption by password = N'p@ssw0rd'

3.

use [WSS_Content_newOne]
if not exists 
(select groupname from sysfilegroups 
where groupname=N'RBSFilestreamProvider')
alter database [WSS_Content_newOne]
add filegroup RBSFilestreamProvider contains filestream

4.

use [WSS_Content_newOne] 
alter database [WSS_Content_newOne]
 add file (name = RBSFilestreamFile, filename = 
'c:Blobstore') 
to filegroup RBSFilestreamProvider

三。在每台web服务器上安装RBS客户端。官网提供的RBS安装程序无效,我用这个版本的RBS.将RBS安装文件拷到web前端服务器和管理中心服务器的c盘

1.在管理中心服务器用管理员身份运行命令提示行,输入如下命令,(将WSS_ConentnewOne替换成实际的内容数据库,rbs3替换成实际的数据库实例)

msiexec /qn /lvx* c:
bs_install_log.txt /i c:RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content_newOne" DBINSTANCE="rbs3" FILESTREAMFILEGROUP=RBSFilestreamProvider  FILESTREAMSTORENAME=FilestreamProvider_1

注意c盘下的日志文件(rbs_install_log.txt)大小如果不在增大了,说明已经安装完毕。打开这个日志文件,在最后的20行,如果有“产品: SQL 远程 Blob 存储 – 已成功完成安装”等字样,说明安装成功。

2.在web前端等其他sharepoint服务器场的服务器重复执行以下命令(注意上下两条命令是不同的哦,将WSS_ConentnewOne替换成实际的内容数据库,rbs3替换成实际的数据库实例)

msiexec /qn /lvx* c:
bs_install_log.txt /i c:RBS.msi DBNAME="WSS_Content_newOne" DBINSTANCE="rbs3" ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer

四。为每个内容数据库启用RBS(注意替换内容数据库名称哦)

$cdb = Get-SPContentDatabase "WSS_Content_newOne"
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss.Migrate()
$rbss
View Code

五。验证
    上传一个1M左右的图片后,看看数据库服务器的c:Blobstore目录下的某个目录中是否有新文件,可以用图片编辑工具打开的

六。疑问

   我目前的环境(如上)是一个web程序下有多个网站集,每个网站集都对应一个内容数据库。我并不是把所有的内容数据库都启用RBS,我只给其中一个内容数据库启用RBS。

在启用RBS之前http://rbs1/sites/newOne和http://rbs2/sites/newOne都可以访问,但是在给WSS_Content_newOne启用了RBS之后,只有http://rbs1/sites/newOne能够访问,而http://rbs2/sites/newOne总是提示该页无法显示。如果一个web应用程序只用一个内容数据库的话,则不会出现此问题。该问题让我头疼不已,目前还没有解决。如有遇到相同问题,并且完美解决的大神,还望赐教啊!

原文地址:https://www.cnblogs.com/Percy/p/4500902.html