Etiquetas

, , , , ,

The Remote Blob Storage is a technology that allows storing binary large objects (BLOB)   outside SQL Server keeping just a reference to the object in SQL. RBS is part of SQL Server and can be used by SharePoint to enhance the performance of every SharePoint application, RBS on SharePoint is highly recommended when you need to store files like videos, webcast, big images and other files that are greater than 10 MB of size.

We can say that RBS is designed to store unstructured data that’s mean data that doesn’t have a defined model or could not fit into a relational model. When we are using RBS SQL Server store de object on NTFS File system this way is easier get back the files when some application required.


Some limitations

In a SharePoint content data base the BLOB files can’t be greater than 2 GB, remote BLOB Storage does not provide a mechanism to exceed to the 2GB file size limit imposed by SharePoint.

Also data base mirroring is not supported when a database is configured to use FILESTREAM.

To start using RBS on SharePoint you need

  1. Enable FILESTREAM on the database server (By default, FILESTREAM components are installed but are not enabled).
  2. Provision a BLOB store for each content database (BLOB stores are folders where the BLOB data is stored on the file system. You must provision a BLOB store for each content database for which you want to use RBS).
  3. Install the RBS client library on each Web server (The RBS client library stores the BLOB data on the file system, enable fidelity checks, and perform other tasks).
  4. Enable RBS for each content database

Enabling FILESTREAM.

  1. On the Start menu, point to All Programs, point to Microsoft SQL Server 2008 R2, point to Configuration Tools, and then click SQL Server Configuration Manager.
  2. In the list of services, right-click SQL Server Services, and then click Open.
  3. In the SQL Server Configuration Manager snap-in, locate the instance of SQL Server on which you want to enable FILESTREAM.
  4. Right-click the instance, and then click Properties.

5.In the SQL Server Properties dialog box, click the FILESTREAM tab.

6.Select the Enable FILESTREAM for Transact-SQL access check box.

7.Click Enable FILESTREAM for file I/O streaming access. Enter the name of the Windows share in the Windows Share Name box.

8.Select Allow remote clients to have streaming access to FILESTREAM data.

9.Click Apply.

10.In SQL Server Management Studio, click New Query to display the Query Editor.

11.In Query Editor, enter the following Transact-SQL code:

EXEC sp_configure filestream_access_level, 2

RECONFIGURE

  1. Click Execute.
  2. Restart the SQL Server service.

Provision a BLOB storage

In SQL Server Management Studio for each content SharePoint data base execute.

Paste the following SQL queries in Query pane, and then execute them in the sequence listed. In each case, replace [WSS_Content] with the content database name, and replace c:\BlobStore with the volume\directory in which you want the BLOB store created. The provisioning process creates a folder in the location that you specify

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

Install the RBS client library

To install the RBS client library on the on the first Web server

  1. First download the RBS.msi file from http://www.microsoft.com/en-us/download/confirmation.aspx?id=16978
  2.  Open a cmd and copy and paste the following command into the Command Prompt window. Replace WSS_Content with the database name, and replace DBInstanceName with the SQL Server instance name. You should run this command by using the specific database name and SQL Server instance name only one time.

msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

To install the RBS client library on all additional Web and application servers

1.Copy and paste the following command into the Command Prompt window. Replace WSS_Content with the database name, and replace DBInstanceName with the name of the SQL Server instance. The operation should finish within approximately one minute.

msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer

On the computer that is running SQL Server 2008 Express, verify that the RBS tables were created in the content database. Several tables should be listed under the content database that have names that are preceded by the letters “mssqlrbs”.

Enable RBS for each content database

On SharePoint 2010 Management Shell execute the next commands

$cdb = Get-SPContentDatabase WSS_Content_RBS_Enable

$rbss = $cdb.RemoteBlobStorageSettings

$rbss.Installed()

$rbss.Enable()

$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])

$rbss

The result should be the next one:

If you want to configure the MinimumBlobStorageSize you should execute on SharePoint 2010 Management Shell

$database = Get-SPContentDatabase “WSS_Content”

$database.RemoteBlobStorageSettings.MinimumBlobStorageSize=1048576

$database.Update()

In this case only file greater than 1MB will use RBS.

Let’s make a test.

I will upload a file of 4,201 KB

Now if I go to the RBS storage directory and open the folder most resented modified I will find a file with the same size that the file I uploaded.

And that’s all you have a SharePoint site using RBS.

Also in the market there is several products that offer several product base on RBS or even more, products that are able to upload files to libraries and keep the structure and the file extension or can store your data on SQL Azure like the products offered by AvePoint.

See ya.