当前位置: 代码迷 >> SharePoint >> SharePoint 2013 RBS(Remote BLOB Storag) 装配、部署、垃圾回收
  详细解决方案

SharePoint 2013 RBS(Remote BLOB Storag) 装配、部署、垃圾回收

热度:582   发布时间:2016-05-02 06:53:26.0
SharePoint 2013 RBS(Remote BLOB Storag) 安装、部署、垃圾回收

SharePoint 承担着文件管理的工作,默认都是将它们以BLOB的数据形式存储在内容数据库当中;当文件大时,就很容易导致数据库容量被这些BLOB数据所快速消耗,而且频繁地对这些大数据量的BLOB数据进行读写访问,很容易在SQL端造成性能瓶颈。 继MOSS2007之后,SharePoint2010和2013可以使用SQL Server 2008及其以上版本提供的Remote Blob Storage (RBS) 这一新特性,可以将BLOB数据存储在文件系统当中或者是存储在其他专门用于存储BLOB数据的服务器上面。

示例采用sql server 2012 数据库。系统 windows 2008R2 SP1 。

  1. 启用FilesStream:打开Sql server 2012 的“配置工具”,然后打开“Sql Server 配置管理器”,选择“Sql Server 服务”,找到“SQL Server (MSSQLSREVER)”,右击“属性”,找到“FILESSTREAM”栏,操作如图:
  2. 通过SQL Server Configuration Manager,启用数据库的FileStream特性。然后通过以下语句,设置fielstream的可访问级别:
    EXEC sp_configure filestream_access_level, 2 RECONFIGURE
  3. 为SharePoint的内容数据库加增加主密钥
    use [WSS_Content] if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##') create master key encryption by password = N'输入密码'
  4. 为该内容数据库增加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
  5. 安装RBS:可通过直接执行RBS_X64.msi文件来安装程序,官方下载Sql Server2013 RBS.msi
  6. 通过下面语句检查是否安装成功select * from dbo.sysobjects where name like 'rbs%'
  7. 启用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()

     

  8. 垃圾回收机制   这篇文章已经说得很好了,可以点击阅读

  9. 我强调几点:
    1. 通常我们删除文档,并非真的删除,而是保存在SharePoint回收站里,回收站有两层,一层是用户操作,可以删除或者还原,跟PC 电脑差不多;第二层是网站集回收站,一般需要管理员才能操作,这层删除后,文件就不能通过sharepoint 还原了。

    2. 垃圾回收是一个持续缓慢的过程,可以隔段时间查看存放文件的文件夹大小来判断。

  10. 卸载RMS
    1. SharePoint中卸载
      $cdb=Get-SPContentDatabase <ContentDbName>$rbs=$cdb.RemoteBlobStorageSettings$rbs.GetProviderNames()$rbs.SetActiveProviderName("")$rbs.Migrate()$rbs.Disable()

       

    2. 管理员方式运行CMD,启动回收
      C:\Program Files\Microsoft SQL Remote Blob Storage 11.0\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe" -connectionstringname RBSMaintainerConnection -operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores -GarbageCollectionPhases rdo -ConsistencyCheckMode r -TimeLimit 120

       

    3. 点击RBS.msi安装文件以卸载RBS
    4. 在数据库中删除RBS
      exec mssqlrbs.rbs_sp_uninstall_rbs 0ALTER 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")

       

    5. 现在你可以删除文件和文件流filegroup:
      ALTER DATABASE yourdbname Remove file RBSFilestreamFile;ALTER DATABASE yourdbname REMOVE FILEGROUP RBSFilestreamProvider;

       

 

  相关解决方案