设为首页 收藏本站
查看: 709|回复: 0

[经验分享] Moss/Sharepoint 看RBS如何解决二进制文件的存储(BLOB)

[复制链接]

尚未签到

发表于 2019-2-5 06:18:18 | 显示全部楼层 |阅读模式
  首先我们要了解什么是RSB?
  即Remote Blob Storage,翻译成中文即远程大对象存储。BLOB,即二进制大对象。这个数据可以是文本格式的或二进制格式的。当在SQL Server中使用BLOB数据时,每条记录的数据量一般都远远超过了一个单独记录的8K的限制。
  近段时间,我花了很多时间有点试图找到一个能够真正处理SharePoint 2010和RBS 互动的方法.这里我发表一遍文章作为总结,我还是介绍codelplex上面的一个解决方案吧,这样大家能够对这样的问题有一个整体的把握。解决这个问题对于我个人来说,也增加了了解有关SQL Server 2008,RBS框架,和SharePoint 2010中的相关知识。
  Sharepoint对FILESTREAM 提供程序是有非常多的限制的,这点你可以阅读相关的SDK来获取相关知识。首先,它只能用于在SQL Server的本地卷。所以,你不能廉价的储存的二进制文件。必须支付高昂的微软授权费用。此外,默认情况下,FILESTREAM的供应商似乎把所有的二进制存在一个文件里。 NTFS格式曾经当一个文件特别大的时候有一些问题。这可能是在较新的平台已经解决了,但总的来说,拥有超大文件的系统多多少少会有一些问题的。我坚信,绝大部分人是不会愿意在自己的系统中出现超大型文件的。
  为了让sharepoint能够按照我们的意愿来工作,我们需要自己定义一个provider。本文章所使用的程序源代码我会全部打包成附件给你。你可以在RBS解决方案下载
  在我们开始之前,你必须对你的sharepoint服务器的物理结构有一定的了解。确定有多少个前端服务器,这有一个专属名词叫Web Front-End服务器(WFE),如果你有多个WFE,那么你就必须在每台WFE上重复2到9步的操作。
  现在我们开始:
  1.在SQL的企业管理器里面运行下面的语句
  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'
  2.下载 rbs_x64.msi 并且保存到你的每一台WFE上面
  3.运行下载的程序
  这里再介绍一下安装步骤。
  注意:以下过程只是解决那些安装不成功的一个例子罢了,具体项目里面,还需具体情况具体分析。
  (1)FileStream一般是没有必要安装的

  (2)这里我们使用default
      
(3)这里没什么讲的


  (4)配置log,我这里把所有的log都设为警告,你可以根据你的实际情况来填写

  (5)这一步,你需要谨慎,因为RBS将会在你的内容数据库运行相应的脚本,当然你还可以设立一个任务,在将来的某个时刻运行,这一点对于部署到真实环境是非常重要的。一般都会选择在夜深人静的时候。。·#%¥
  (6)当程序运行完脚本之后,你的内容数据库将会变成下面这个样子

  4.下载 RBS解决方案当然你也可以自己写一个,不管怎么样,这都是一个很好的例子
  5.看在这篇文章的份上,创建一个文件夹吧,这里为了掩饰,我创建为  c:\CodePlex_RBS_Provider
  6.将附件中Binaries文件夹拷贝到c:\CodePlex_RBS_Provider 下面
  7.现在用记事本来写一段命令,我这里创建一个c:\CodePlex_RBS_Provider\InstallProvider.cmd

  不用着急我这里没有复制代码,代码已经在附件里面了,这里只是一个演示而已。
  8.以管理员身份(非常重要)运行这些命令
  这里附上一张运行良好的截图

  10.以管理员身份运行 SharePoint 2010 Management Shell.
  11.运行下列命令让我们的RBS PROVIDER来处理我们的内容数据库
  $site = get-spsite http://siteurl/      
$rbss = $site.ContentDatabase.RemoteBlobStorageSettings      
$rbss.Enable()      
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])      
$rbss
  同样,为了避免大家出错了还不知道,我这里附上一张运行良好的截图

  OK ,你已经完成了所有的操作!
  说了这么久,还没有让大家看看我的最后效果。下面我来证明一下这个方法是哦真正有效的。
  未装RBS之前,我运行如下命令得到如下结果。

  安装好若RBS之后,来看看我的成就

  那么究竟哪些数据到哪里去了呢?此时,你不会怀疑我把你的所有数据都搞掉了吧。。。那你岂不是要恨上我一小会?呵呵,答案马上揭晓:

  你的数据都在这里好好的存着呢.下面再来谈到两个问题,免除你使用这个方案的后顾之忧。
  
  
  如何使用已有的BLOB内容
  如果你要使用已有的BLOB内容,你运行下面的 PowerShell 就可以了
  $rbss.Migrate() ;
  这条命令将会把所有的已有的BLOB内容传送到当前活动的RBS Provider存储。
  如何将所有的BLOB数据返回到数据库中
  如果我们需要遗弃blob的存储方式或者换一个更好的BLOB provider,我们需要PowerShell 运行一下命令
  $rbss.SetActiveProviderName("")   
$rbss.Migrate()
  这句代码会将你所有的blob数据返回到数据库中存储。
  有了以上两个解决办法,真可谓是退可守,进可攻。你还在犹豫什么呢?赶快试试吧。
  OK 终于写完了这篇文章,今天博客园好像有点问题,中途页面访问不了,提交错误等等。不过,即使如此,我还是完成了这篇文章。
  附件:sharepoint的RBS解决方案 如果你觉得这篇文章有价值,请点击推荐




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-671914-1-1.html 上篇帖子: SharePoint 2010 大中小架构的部署 下篇帖子: 对象模型创建SharePoint2010选项(Choice)SPFieldChoice字段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表