在SharePoint 2010中部署RBS (转)
一、RBS(Remote BLOB Storage)简单介绍
在SharePoint的大部分企业应用案例中,SharePoint都是要承担着非常繁重的文件管理工作,这些文件类型包含了Word文档,Excel文档甚至是数据量庞大的音频、视频文件。对于这些文件,SharePoint默认都是将它们以BLOB的数据形式存储在内容数据库其中。这就非常easy导致SharePoint的数据库容量被这些BLOB数据所高速消耗,并且用户在使用SharePoint进行文件的管理的时候,须要频繁地对这些大数据量的BLOB数据进行读写訪问,非常easy在SQL端造成性能瓶颈。
针对这一问题,MOSS 2007在SP1之后提供了ISPExternalBinaryProvider接口,用户能够通过这个接口开发自己定义应用,将BLOB数据存储在Content DB之外,以降低SQL Server的负载。而在SharePoint 2010中,能够使用SQL Server 2008及其以上版本号提供的Remote Blob Storage (RBS) 这一新特性。通过RBS内置的FILESTREAM Provider,我们仅仅须要通过简单的配置,就能够将BLOB数据存储在文件系统其中或者是存储在其它专门用于存储BLOB数据的server上面,全然不须要做进行开发。同一时候,这些存储在文件系统其中的BLOB数据还能够接受数据库的事务管理,可进行数据备份以及数据恢复。
RBS将SharePoint 中的BLOB数据分离存储
可见,RBS在不减少数据的可管理性的同一时候,还能为我们提高SharePoint数据服务的性能以及可拓展性,无疑是企业在部署SharePoint时一项不可缺少的工具。下文将主要介绍怎样进行RBS的安装,怎样启用RBS的垃圾文件回收,以及怎样卸载RBS。
二、安装RBS
通过RBS中自带的FILESTREAM Provider,我们能够将SharePoint中的BLOB文件保存在本地的文件系统中,也能够通过远程的数据库server将这些数据保存在其它的文件系统中。
A. BLOB保存在本地文件系统
- 通过SQL Server Configuration Manager,启用数据库的FileStream特性。然后通过下面语句,设置fielstream的可訪问级别。
EXEC sp_configure filestream_access_level, 2
RECONFIGURE - 为SharePoint的内容数据库加添加�主密钥
use [WSS_Content]
if not exists (select * from sys.symmetric_keys where name =
N'##MS_DatabaseMasterKey##') create master key encryption by password =
N' password01' - 为该内容数据库添加�FILESTREAM文件组和文件
use [WSS_Content]
if not exists (select groupname from sysfilegroups where
groupname=N'RBSFilestreamProvider') alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestreamuse [WSS_Content]
alter database [WSS_Content] add file (name = RBSFilestreamFile,
filename = 'c:\blobstore') to filegroup RBSFilestreamProvider - 安装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通过以下语句检查是否成功安装
select * from dbo.sysobjects where name like 'rbs%'
- 在SharePoint的Power Shell中启用RBS
$cdb = Get-SPContentDatabase "WSS_Content"
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$pvdName = $rbss.GetProviderNames()[0]
$rbss.SetActiveProviderName($pvdName)$rbss.Migrate()//该命令能够将SharePoint内容数据库中原有的BLOB迁移到文件系统中
$rbss.MinimumBlobStorageSize = 1048000 //该命令用于设置存于文件系统中的文件最小值,当文件小于该值的时候,将还是照常保存在数据库中。
$cdb.Update()
B. BLOB保存在远程文件系统
要想通过RBS FILESTREAM Provider将BLOB保存在远程的文件系统中,基本过程和保存在本地文件系统过程相似,但还必须保证两个前提,一个是SharePoint数据库和远程数据库的版本号都必须使用企业版或开发人员版,还有一个是这两台server必须保证存储在同一个域环境中,以保证SharePoint的系统管理员可以通过Windows身份认证连接上远程的数据库。
- 通过SQL Server Configuration Manager,启用远程数据库的FileStream特性。然后通过下面语句,设置fielstream的可訪问级别。
EXEC sp_configure filestream_access_level, 2
RECONFIGURE - 为SharePoint的内容数据库和远程数据库都加添加�主密钥
if not exists (select * from sys.symmetric_keys where name =
N'##MS_DatabaseMasterKey##') create master key encryption by password =
N'password01!' - 为该远程的数据库添加�FILESTREAM文件组和文件
use [Remote_Content]
if not exists (select groupname from sysfilegroups where
groupname=N'RBSFilestreamProvider') alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestreamuse [Remote _Content]
alter database [WSS_Content] add file (name = RBSFilestreamFile,
filename = 'c:\blobstore') to filegroup RBSFilestreamProvider - 安装RBS,通过直接运行RBS_X64.msi,截图例如以下:
- 在SharePoint的Power Shell中启用RBS
$cdb = Get-SPContentDatabase "WSS_Content"
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$pvdName = $rbss.GetProviderNames()[0]
$rbss.SetActiveProviderName($pvdName)$rbss.Migrate()
通过以上的步骤就完毕了将SharePoint中的BLOB文件存于文件系统的功能。我们能够在SharePoint中加入�超过1MB的文件来測试实验效果。
三、 启动垃圾回收
- 在RBS安装文件夹下的Matainer文件夹中,我们通过记事本打开Microsoft.Data.SqlRemoteBlobs.Maintainer.exe文件,以完毕垃圾回收器的配置。当中关键在于连接字符串:
<add name ="WSS_Content_ConnStr" connectionString="Data Source=localhost\sharepoint; Initial Catalog=WSS_Content; Integrated Security=True" providerName="System.Data.SqlClient"/>
- 为了立即进行清除,我们通过下面3条SQL指令将这3个时间间隔參数都设置为0。
exec mssqlrbs.rbs_sp_set_config_value 'delete_scan_period','time 00:00:00'
exec mssqlrbs.rbs_sp_set_config_value 'orphan_scan_period','time 00:00:00'
exec mssqlrbs.rbs_sp_set_config_value 'garbage_collection_time_window','time 00:00:00'
- 通过在CMD中找到RBS安装文件夹下的Matainer文件夹,通过运行下面的命令启动RBS文件的回收
Microsoft.Data.SqlRemoteBlobs.Maintainer.exe -ConnectionStringName WSS_Content_ConnStr -Operation GarbageCollection -GarbageCollectionPhases rdo
- 强制FILESTREAM进行"垃圾收集
CHECKPOINT
四、 卸载RBS
在使用RBS过程中,往往会因为需求的变动而进行RBS的卸载重装,假设卸载不恰当的话,往往会使得数据库中残留着一些垃圾数据,甚至会导致下一次安装无法顺利进行。所以,以下将介绍怎样对RBS进行完整的卸载。
- SharePoint中卸载
$cdb=Get-SPContentDatabase <ContentDbName>
$rbs=$cdb.RemoteBlobStorageSettings
$rbs.GetProviderNames()
$rbs.SetActiveProviderName("")
$rbs.Migrate()
$rbs.Disable()
- 启动回收
"C:\Program Files\Microsoft SQL Remote Blob Storage 10.50\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe" -connectionstringname RBSMaintainerConnection -operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores
-GarbageCollectionPhases rdo -ConsistencyCheckMode r -TimeLimit 120 - 点击RBS.msi安装文件以卸载RBS
- 在数据库中删除RBS
exec mssqlrbs.rbs_sp_uninstall_rbs 0
ALTER TABLE [mssqlrbs_filestream_data_1].[rbs_filestream_configuration] DROP column [filestream_value]
ALTER TABLE [mssqlrbs_filestream_data_1].[rbs_filestream_configuration] SET (FILESTREAM_ON = "NULL")
Now you can remove the file and filegroup for filestream:
ALTER DATABASE yourdbname Remove file RBSFilestreamFile;
ALTER DATABASE yourdbname REMOVE FILEGROUP RBSFilestreamProvider;
-----------------------------------------------------------------------------------------------------------------------------------
SharePoint 2013安装RBS
http://docshare.pingan.com.cn/sites/admin/sharepoint/eCloud/在%20SharePoint%202013%20server场中安装和配置%20RBS.mht
在SharePoint 2010中部署RBS (转)的更多相关文章
- SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)
由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...
- 在Sharepoint 2010中启用Session功能的说明文档
在Sharepoint 2010中启用Session功能的说明文档 开发环境:Windows 7系统,SharePoint Server 2010,Visual Studio 2010 按以下步骤进行 ...
- 在 SharePoint 2010 中访问数据
转:http://blog.banysky.net/?p=81001 数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ ...
- 为SharePoint 2010中的FBA创建自定义登录页面
SharePoint 2010中默认的FBA登录页面非常简单,只提供了一个Asp.Net的Login控件,让用户输入用户名和密码.在大多数情况下,我们需要定制这个页面以满足一些安全需求,比如为登录页面 ...
- 关于SharePoint 2010中不能使用AjaxControlToolkit的解决办法
因为项目中有一个需求需要使用calendar控件,而且样式要和Reporting Service中的尽量一致,搜索了很久发现还是微软的AjaxControlToolkit提供的CalendarExte ...
- 在SharePoint 2010中创建网站的权限级别
转:http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能,使我们对权限的设置又提高了一个层 ...
- VSTO学习笔记(四)从SharePoint 2010中下载文件
原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...
- SharePoint 2010 中创建超链接到Pop-Up对话框
SharePoint 2010 中创建超链接到Pop-Up对话框 SharePoint 2010 推出了新式的带有阴影的弹出对话框,你感觉怎么样?我感觉倒是挺酷的.这样少打开了一个页面 ...
- 手动将自定制的WebPart部署到 SharePoint 2010 中
1.搭建好开发环境,建立webpart工程,写代码. 2.修改assembly.cs文件 在部署前,需要修改assembly文件,增加以下两句: using System.Security; [a ...
随机推荐
- Servlet 实现文件的上传与下载
这段时间尝试写了一个小web项目,其中涉及到文件上传与下载,虽然网上有很多成熟的框架供使用,但为了学习我还是选择了自己编写相关的代码.当中遇到了很多问题,所以在此这分享完整的上传与下载代码供大家借鉴. ...
- android 配置环境变量
在创建AVD时,在DOS下输入android list targets 会出现android不是内部或外部命令,如图-1.这主要是没有配置好android sdk环境变量所致的. 图-1 andr ...
- Python 文本解析器
Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...
- C#游戏框架uFrame
C#游戏框架uFrame兼谈游戏架构设计 c#语言规范 阅读目录 1.概览 2.基本概念 3.依赖注入 4.Manager of Managers 5.利用UniRX实现响应式编程 6.研究总结 回到 ...
- WCF技术剖析之十一:异步操作在WCF中的应用(上篇)
原文:WCF技术剖析之十一:异步操作在WCF中的应用(上篇) 按照操作执行所需的资源类型,我们可以将操作分为CPU绑定型(CPU Bound)操作和I/O绑定型(I/O Bound)操作.对于前者,操 ...
- QUrl不同版本之间的坑
在项目中使用了native application + html的方式构建界面. 之前在4.8.4用QUrl直接加载相对路径一点问题都没有.但是切换到5.1编译之后却发现本地的html文件全部没有加载 ...
- 动手学Javascript(1)——PopStar
PopStar是一款很流行的手机游戏.它的基本规则是在某个方块上单击,如果该方块周围有和它颜色一样的方块,那么这些方块都被选中.之后在选中方块的某一个上再次单击,所有选中的方块就会消失. 如下图所示, ...
- 在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)
// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- maven生成war包的两种方式
war包即对WEB应用程序进行打包,用于应用容器的部署.如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了.打包方式有很多中,很多工具本身就支持此功能.下面主要介绍通过maven ...
- 【UML九种图系列】之如何利用三层来绘制类图、时序图?
UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...