Monday, March 29, 2010

Enable FILESTREAM (RBS) for SharePoint 2010

    Technet article:

    Run the following commands in SQL Server management query window. Change the database name as needed.

    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:\Blob')

    to filegroup RBSFilestreamProvider


    After activating this three commands you will find some files in the new folder c:\blob. Important. This folder will be created by the sql command.


    Install RBS


    Do not run the msi file directly.

    On the database and first SQL server run the following command:

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

    Fill in the SQL instance name for specific SQL server instances.

    Run the following command on all other SharePoint servers:

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

    Check rbs_install_log.txt after installation:

    >>>> Product: SQL Remote Blob Storage -- Installation completed successfully.

    To enable RBS on a specific web application open the SharePoint Management Shell on run this commands

    $cdb = Get-SPContentDatabase –WebApplication http://moss2010server

    $rbss = $cdb.RemoteBlobStorageSettings






    After the activation you can find additionals files and folder in the blob folder


    After uploading a file (in this example rbs_install_log.txt) in a document library


    You will find new folders and files (with guid names) in the blob directory structure.


    If you upload a new version of this file, the new file will be place in the same folder with a new name. SharePoint does not save the difference only.



imran said...

Hi Bernd,

Wonderfull post. I followed your post exactly and was able to Enable the RBS only on one Content DB, But I wanted to enbale RBS on more than one Content DB.

In step 2, I changed the Content Db name and run the command. the rbs_install_log.txt file shows the phrase "configuration completed successfully" but the Installed() method on RemoteBlobStorageSettings object shows 'false'.

Is enabling RBS restricted to one ContentDB in the SP 2010 farm? Or Am I missing something here?


PS: I have SharePoint 2010 RTM installed on my VM.

Happy Sing said...

Can we have same folder structure as in our library?

joe keyrouz said...

Can we have same folder structure as in our library?
pls i need to know if this is possible and in which table we can find the file's name the rbs gives in our local drive

PuneRoot said...

Excellent post. I followed your post, enabled RBS on one Content DB. It is working from one WFE; but it is not working from other WEF. even though I run following command on all WFEs

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

Looks like I missed some step?

sherlina s said...

Hi, probably our entry may be off topic but anyways, I have been surfing around your blog and it looks very professional.
Sharepoint Remote Blob Storage

naviathan said...

You sir, just saved me from an expensive license fee and angry management. Thank you.