Ok, so i just finished configuring Remote Blob Storage with FILESTREAM for SharePoint Foundation. I hit a few glitches hence thought I will share the steps with you.

First, why RBS??

For all of you guys who has WSS 3.0 running on Windows Internal Database, when you install SharePoint Foundation 2010, it installs SQL 2008 Express which has the 4 GB limit. So when you are thinking about upgrading to 2010 and have a Content DB larger than 4 GB you got a few options:

    • Move the full blows SQL
    • Move to SQL 2008 R2 Express (10 GB Limit)… Read more here.
    • Install and Configure Remote BLOB Storage.

In this post I will talk about how to configure SharePoint Foundation (similar steps for SharePoint 2010 as well) with RBS and FILESTREAM.

  • Configure FILETREAM - http://msdn.microsoft.com/en-us/library/cc645923.aspx 
    1. Step 7 in the above article is particularly important:
      If you want to read and write FILESTREAM data from Windows, click Enable FILESTREAM for file I/O streaming access. Enter the name of the Windows share in the Windows Share Name box.
    2. Run this script in SQL MGMT Studio:

      EXEC sp_configure filestream_access_level, 2
      RECONFIGURE
  • Download RBS (SQL 2008 R2 Nov CTP at the time of this post) from here.
  • Run the 3 SQL commands on your Content DB from here.

image

  • Run the following command (Note: My App and SQL are both on the same box) from an elevated command prompt:

C:\>msiexec /qn /lvx* rbs_install_log.txt /i c:\downloads\RBS_X64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=WSFContent DBINSTANCE=SQL01 FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=RBSFSStore

Underlined words in the above command can be replaced with your own values.

image

This will take a couple of mins to complete and the log size is approx 1200 to 1400 KB. This is where i got stuck a couple of times. The log file may state Installed successfully, but that doesn't mean it will work for SharePoint. To ensure that the installation was successful, open up the Content DB and you should see a bunch of tables starting with “rbs_” :

image

  • If you have additional servers, use this command after running the above one:

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

Once you see these tables, you know for sure that the RBS is working. Now open up SharePoint 2010 Management Shell and type the commands in the order below:

$cdb = Get-SPContentDatabase –WebApplication http://YourSiteName
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed() – This should result in True. Else the next command will fail.
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss

image

Now when you upload files to SharePoint Doc Lib that will reside in the File system and not in the DB. You can upload a file more than 100 KB and test it out. The same will be available in the Folder (BLOB Store). The File Name will not match but they are not encrypted and will open fine in the client apps. To change the file size Limit (say only files with 1 MB or more will go to the BLOB) enter the following command:

$cbd = Get-SPContentDatabase “WSS_Content”
$cbd.RemoteBlobStorageSettings.MinimumBlobStorageSize=1048576
$cdb.Update()

The above is from Jei Li’s post at - http://blogs.msdn.com/opal/archive/2009/12/07/sharepoint-2010-beta-with-filestream-rbs-provider.aspx . Read it for more information on RBS and SharePoint.

Good luck!!

This posting is provided "AS IS" with no warranties, and confers no rights.