开发者社区> 技术小牛人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MOSS2010之大文件存储方案,即直接文件存储方案

简介:
+关注继续查看

本文转载自:http://www.cnblogs.com/luking/archive/2012/09/12/2680417.html

 

这篇文章说明问题:

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 功能开启。

wKiom1OijGGjPfHzAAKrmXoVaHI369.jpg

第二步,配置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文件夹,如下图,这样第二步基本完成。

wKioL1OijDPB5YJKAAFpqfisE_o230.jpg

 第三步,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实例进行替换。

wKiom1OijGKjyyqHAAKxuoayLNE573.jpg

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

wKiom1OijGKB1rZXAAHNVvuWlCI557.jpg

 看到这个界面,基本部署完成了,剩下的工作,就是测试部署的效果了,可以往MOSS2010 的文档库中上传一下文件,这个时候,你会发现,在Blobstore文件夹下多出一些文件,这些文件就是刚刚上传的文件,但是,我们看不到文件的名称等等信息,我们可以将文件拷贝出来,给它加上后缀名,再打开,这个时候,就会发现,原来MOSS只是将文件的后缀名称和文件名称去掉了,存在SQL数据库中,主体的文件实体放在了文件夹中。到此,本实验圆满成功。

您的支持,我的动力!

本文转自    yuxye   51CTO博客,原文链接:http://blog.51cto.com/fishvsfrog/1428211

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于云上分布式NoSQL的海量气象数据存储和查询方案
气象数据是一类典型的大数据,具有数据量大、时效性高、数据种类丰富等特点,每天产生的数据量常在几十TB到上百TB的规模,且在爆发性增长。如何存储和高效的查询这些气象数据越来越成为一个难题,本文针对气象领域中海量模式数据的存储和查询问题,分别介绍了传统方案和采用表格存储(TableStore)的方案,并对方案优缺点进行了一些总结。
10158 0
App Store被拒绝后的解决方案中心
3.8 Details The rating you’ve selected, 4+, is inconsistent with the content of your app.
923 0
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一、ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二、应用沙盒 每个iOS应用都有⾃己的应⽤沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。
801 0
5723
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载