Wednesday, July 10, 2013

RBS FILESTREAM Installation for Sharepoint 2013

I am breaking down the RBS FILESTREAM Installation for SharePoint 2013 into 7 steps :

1. Enabling FILESTREAM on the database server
2. Provision a BLOB store for content database
3. Install the RBS client library on the on the first web server
4. Install the RBS client library on all additional web and application servers
5. Confirm the RBS client library installation
6. Enable RBS for the Content Database
7. Test the RBS Installation




1. Enabling FILESTREAM on the database server

Login to the SQL Server 2012 with the highest privileged account.

1. On the Start menu, point to All Programs, point to Microsoft SQL Server Code-Named 2012, 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. 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 [In this case it was BLOBSTORE].
8. Uncheck the Allow remote client’s access to FILESTREAM data. Click Apply.
9. In SQL Server Management Studio, click New Query to display the Query Editor.
10. In Query Editor, enter the following Transact-SQL code:

EXEC sp_configure filestream_access_level,2
RECONFIGURE

11. Click Execute.
12. Restart the SQL Server service.







2. Provision a BLOB store for content database

Note
·         The user account provisioning RBS stores must be a member of the db_owner fixed database role on each database that you are configuring RBS for.
·         For best performance, simplified troubleshooting, and as a general best practice, we recommend that you create the BLOB store on a volume that does not contain the operating system, paging files, database data, log files, or the tempdb file.

1. Click Start, click All Programs, click Microsoft SQL Server 2012, and then click SQL Server Management Studio.
2. Connect to the instance of SQL Server that hosts the content database.
3. Expand Databases.
4. Click the content database[DB1_RBSExp] for which you want to create a BLOB store, and then click New Query.
5. Paste the following SQL queries in Query pane, and then execute them in the sequence listed.

use [DB1_RBSExp]
if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##')
begin
create master key encryption by password = N'1zqa2xws!'
Select 1
end

use [DB1_RBSExp]
if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')
alter database [DB1_RBSExp] add filegroup RBSFilestreamProvider contains filestream


use [DB1_RBSExp]
alter database [DB1_RBSExp]
add file (name = RBSFilestreamFile, filename = 'E:\BlobStore') to filegroup RBSFilestreamProvider

6. Blob folder was created in E:\BlobStore.


Note
Download the file: ENU\x64\RBS.msi
  •  RBS client library should be installed on all servers in the SharePoint farm. The RBS client library is installed only one time per web server, but RBS is configured separately for each associated content database. The client library consists of a client-side dynamic link library (DLL) that is linked into a user application, and a set of stored procedures that are installed on SQL Server.
  • Do not install the RBS client library by running the RBS.msi file and starting the Install SQL Remote BLOB Storage wizard. The wizard sets certain default values that are not recommended for SharePoint 2013.







3. Install the RBS client library on the on the first web server

1. Login to WebServer1 as domain\sp_setup
2. Copy the RBS executable to C:\RBSClient\
3. Click Start, click Run, type cmd into the Run text box, and then click OK. Browse to C:\RBSClient\.
4. Run the below command
msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=" DB1_RBSExp" DBINSTANCE="DBSERVERNAME" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

5. After this step verify that the RBS component is installed on the server by going to Control Panel.






4. Install the RBS client library on all additional web and application servers

Note - Confirm that the user account performing these steps is a member of the Administrators group on the computer where you are installing the library. [domain\sp_setup]

1. Login to the other servers (WebServers and AppServers) in the farm servers as domain\sp_setup .
2. Copy the RBS executable to C:\RBSClient\ 
3. Click Start, click Run, type cmd into the Run text box, and then click OK. 
4. Run the below command
msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi DBNAME=" DB1_RBSExp" DBINSTANCE="DBSERVERNAME" ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer








5. Confirm the RBS client library installation

 1. The rbs_install_log.txt log file is created in the same location as the RBS.msi file. Open the rbs_install_log.txt log file by using a text editor and scroll toward the bottom of the file. Within the last 20 lines of the end of the file, an entry should read as follows:
Product: SQL Remote Blob Storage – Installation completed successfully.
2. On the computer that is running SQL Server 2012, verify that the RBS tables were created in the content database. Several tables should be listed under the content database[DB1_RBSExp] that have names that are preceded by the letters "mssqlrbs".
            








6. Enable RBS for the Content Database

1. Login to WebServer1 as domain\sp_setup

Note - The user account enabling RBS must have sufficient permissions to run Windows PowerShell.

2. Open SharePoint 2013 Management Shell as Administrator and perform the steps below:

$cdb = Get-SPContentDatabase DB1_RBSExp
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()  [returns true]
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])


Executing $rbss.Installed() should return true, if false this may be due to the reason that RBS is not installed properly or RBS is not installed on other Web servers.


3. Type $rbss and verify that ActiveProviderName is not Null. See below.







7. Test the RBS Installation

1. Open the Site Collection where blob store is enabled.
2. Open a library or list where we can upload documents. Upload a document whose size limit is more than 100 KB.
3. Browse to Blob Store Folder on the SQL server and verify the latest modified folder. The document should be present in it.

Note

·         The SharePoint Set up account (domain\sp_setup) was made as sysadmin before running the RBS.msi.
·         Added SharePoint Set up account (domain\sp_setup) as dbowner for RBS content database
·         There were issues to upload the file to site after RBS Installation. To fix this issue, the Web Applications’ Application Pool Account (domain\sp_web) was made the dbowner for the content database where RBS was activated
·         The SharePoint Setup account (domain\sp_setup) was added to the local administrator group on the SQL DB Server
·         Average size of a BLOB is between 60-65 KB


After uploading the first document to your RBS Enabled Site collection, this is what you see in your content database tables.


No comments:

Post a Comment