SharePoint 2010 Remote BLOB Storage

Remote BLOB Storage 

RBS is a set of standardized APIs that allow storage/retrieval of BLOBs outside of your main SQL database where a dedicated BLOB store is desirable for various reasons. This uses a provider model for plugging in any dedicated BLOB store that implements these RBS APIs. 

What is BLOB ? 

FILESTREAM provides a storage option that allows storage, efficient streaming and integrated management of large BLOBs in a SQL database by utilizing the underlying NTFS file system for BLOB storage/streaming. It offers fully transactional access and compatible operations as varbinary(max). 
B: Binary 
L: Large 
OB: Object 
BLOB (Binary large object): Unstructured data (IMG, OFF 2010 files, MEDIA) 

Using RBS in SharePoint will improve the performance of the FARM

RBS may be used when: 
  1. You have huge content database for document archiving so you want to reduce storage cost (terabytes of data) 
  2. You have large media files to stream to the audience 
  3. You need to use RBS to integrate 3rd party storage/archiving solutions to SharePoint. (For example EMC Documentum(JAVA Document management)) 
  4. FILE> 100 KB Stored in file system 
  5. BLOB could be Store in file Remote File System,  Shared Files location etc.
Open SQL Server instance make sure the following option are enabled

Steps to implement the RBS to your SharePoint FARM.

1. To implement the RBS to your SharePoint Content DATABASE run the following SQL Scripts

This will create the database encryption key 

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'

This will create the database filegroup name RBSFilestreamProvider 

use [WSS_Content]
if not exists 
(select groupname from sysfilegroups 
where groupname=N'RBSFilestreamProvider')
alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestream
This will alter database and add new file with specific system drive path. 

use [WSS_Content] 
alter database [WSS_Content]
add file (name = RBSFilestreamFile, filename = 
to filegroup RBSFilestreamProvider

2. Install RBS_64.msi package 

Using the following command to install the package

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

Note: Replace WSS_Content with the database name, and replace DBInstanceName with the SQL Server instance name. 

3. To enable RBS by using Windows PowerShell 
  1. On the Start menu, click All Programs. 
  2. Click Microsoft SharePoint 2010 Products. 
  3. Click SharePoint 2010 Management Shell. 
At the Windows PowerShell command prompt, type the following command: 

$cdb = Get-SPContentDatabase <ContentDatabaseName>
$rbss = $cdb.RemoteBlobStorageSettings

Note: Where <ContentDatabaseName> is the name of the content database. 

4. Test the RBS installation 
  1. Make sure your RBS Data directory empty. 
  2. Go to the SharePoint Document library where you enabled the RBS to your content database. 
  3. Upload a file that is at least 100 kilobytes (KB) to a document library. 
  4. Browse to the RBS data store directory. 
  5. Browse to the file list and open the file that has the most recent modified date. This should be the file that you uploaded.


Popular posts from this blog

SharePoint RPC Protocols Examples Using OWSSVR.DLL

STS CryptographicException Error : Key set does not exist

Query suggestions in SP 2013 Using Rest API (/_api/search/suggest)