zoukankan      html  css  js  c++  java
  • 如何在SharePoint2010中实现大数据存储(四步完成RBS解决方案)

     

     

    第一步、开启数据库的FILESTREAM支持

    实际环境为Sharepoint2010 和 SQL Server2008 R2;数据库默认安装的时候可能没有开启FILESTREAM,此时需要我们核实是否已经开启。打开SQL配置管理器,如下图所示

    SQLSetting

    在开启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:SharePointDataFileData') to filegroup RBSFilestreamProvider

    其中[WSS_Content]为你sharepoint内容数据库的名称,‘C:SharePointDataFileData’为需要将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:SharePointDataFileData中是否有新添加的文件。

    www.start4e.cn
  • 相关阅读:
    Android SDK Android NDK 官方下载地址
    编码转换工具 源码
    st_mode的剖析
    关于 python 字符编码的一些认识
    MFC中的argc和argv参数
    VC实现文件拖拽获取文件名
    CString 转 int
    《C语言程序设计实践教程》实验题源程序
    C语言 文件操作 结构体与文件 fgetc fputc fread fwrite
    C++语言 创建状态栏
  • 原文地址:https://www.cnblogs.com/ningang/p/4299449.html
Copyright © 2011-2022 走看看