Does Native SQL Server Backup/Restore support Local FileStream RBS

  • Hi,

    We have implemented local Filestream RBS for Share Point 2010 database.

    Question:

    Does Native SQL Server backup/restore support when Filestream is enabled?

    But from Microsfot document SQL_Server_2008_R2_Remote_Blob_Storage , it says SQL Server backup only backups the blob references but NOT the BLOB store

    High Availability Considerations

    •SQL Server Backup/Restore. SQL Server backup and restore operations are supported for only the BLOB references in the database. BLOB data in the BLOB store does not get backed up. A separate solution, implemented at the scope of the BLOB store, must be implemented to ensure the availability of BLOB data.

    But from another Microsfit link http://technet.microsoft.com/en-us/library/bb933993.aspx

    , it says that native SQL Server backup backsup the Filestream data

    Integrated Management

    Because FILESTREAM is implemented as a varbinary(max) column and integrated directly into the Database Engine, most SQL Server management tools and functions work without modification for FILESTREAM data. For example, you can use all backup and recovery models with FILESTREAM data, and the FILESTREAM data is backed up with the structured data in the database

    From the Microsoft artical,FILESTREAM Design and Implementation Considerations, It says that sql server backup is supported.

    Backup and Restore

    All backup and recovery models are available with FILESTREAM data, and the FILESTREAM data is backed up with the structured data in the database. If you do not want to back up FILESTREAM data with relational data, you can use a partial backup to exclude FILESTREAM filegroups

    .

    Please advice..

  • Yes, filestream data is backed up in a sql.

    No, RBS only backs up the blob references, not the blob data.

    both are correct.

    http://blogs.msdn.com/b/sqlrbs/archive/2009/11/18/sql-server-remote-blob-store-and-filestream-feature-comparison.aspx

    RBS is a client library that allows for store of blobs outside of the database.

    RBS Providers implement that functionality. (filestream just is one example)

    Imagine a hypothetical RBS provider that used Amazon's S3 cloud as a blob store for your sharepoint blobs. you take a sql backup of the content database, only blob references get backed up, not the data in the cloud.

    now replace amazon s3 with a remote sql server using the filestream RBS provder. (now we've got 2 sql servers). take a backup of your content db on server1, only the blob references get backed up. connect to the server2, take a sql backup there, and you'll get all the blob data within the filestream.

    now ditch the remote server, and have RBS configured to use local filestream in your content database. Both the blob references and the blob data get backed up. that's not a function of RBS, it's a function of FILESTREAM storage.

    did this clear it up?

    thanks

  • Thank you..It somewhat cleared my confusion.

    But to be specific, we followed the below link to configure FileStream RBS for Share point databases.

    In this case, does native sql server backup will backup the blobs too?

    Thanks for your help.

  • gmamata7 (10/5/2011)


    Thank you..It somewhat cleared my confusion.

    But to be specific, we followed the below link to configure FileStream RBS for Share point databases.

    In this case, does native sql server backup will backup the blobs too?

    Thanks for your help.

    Easy fix to solve your most important problem.

    Create the db, insert some data, backup the db and restore after having deleted some data.

    You'll have your answer then and more importantly you'll have your restore script which is as valuable as the backup itself, if not more.

  • Easy fix to solve your most important problem.

    Create the db, insert some data, backup the db and restore after having deleted some data.

    You'll have your answer then and more importantly you'll have your restore script which is as valuable as the backup itself, if not more.

    Yes..I tested backing the content database with BLOBS and restored it another server and I'm able to see all blobs.

    But I just want to make sure which MS artical is correct as different articals have conflicting information about native sql server backup support to Filestream RBS.

    Thanks

  • As I said above, both articles are correct.

    ...A separate solution, implemented at the scope of the BLOB store, must be implemented to ensure the availability of BLOB data.

    If you're using local filestream for your RBS, the scope of the blob store is the content database.

  • If you're using local filestream for your RBS, the scope of the blob store is the content database.

    Native sql server backup is supported and it also backups the blobs when you use local filestream

    Native sql server backup NOT supported and it will NOT backup the blobs when you use Remote filestream

    Are the above statements correct?

    Thanks

  • I am just posting because I just finished a DR test with a native FULL backup. We are using Sharepoint 2010 with RBS and filestream enabled, essentially following the the documents that describe turning this on. There were a lot of questions with us as well about what was happening.

    So our sql data files are on drive M: , our root of RBS respository is on R:. When we do a native full backup, the backup file is essentially the size of the sql db itself plus the blobs...so in our case around 350GB. Clearly, it "merges" the db/files into the .bak. I am going to confirm soon, but looking at the size of the tx logs, it seems clear that tx backups do this same merge of new files/row changes.

    If you restore without any MOVE clauses, the full .bak simply expands back to your M: and R: locations. However, if you are testing on a DR server, you will need to make sure you have the rbs.msi installed, toggled on in sql config mgr, filestream turned on in your advanced instance properties (EXEC sp_configure filestream_access_level, 2) , and make sure your target server sql service acct has FC to the R: folder structure etc...

    It is my understanding that you can do a PARTIAL backup, essentially excluding the filstream file if you only want the db and no blobs. This isn't recommended, and I would definitely not do that for something as dynamic as sharepoint. But the question in my mind is answer in that you are indeed getting a full backup using the native backup command, unless you are going out of your way with the partial backup of particlar database files. (as talked about here... http://social.msdn.microsoft.com/Forums/en-US/sqldisasterrecovery/thread/bcd5dddf-5a66-42a9-acf4-a63136f3658a )

  • Just to follow up on my other post. As part of our DR test, I did also confirm that the transaction log backup when using RBS(as long as you are using native SQL backup and not explicitly doing a partical backup) does include the blob data from the Filestream folder etc.

    We did a full, added a few files, then make a transaction log BU. The TX log BU was about 1GB in site so obviously included the files we added. To be really sure we knew it was working, we completely dropped the db(which also dropped the Filestream folder/files). We then did a restore and applied the TX to the full. The new files were there confirming the TX log did contain the blobs.

    Note: We use RBS with a local R: drive on teh SQL server. So our test was done with that mind. It is my understanding with sophisticated distributed Sharepoint installs the RBS folder can be remote on another server. I would assume the native SQL backup would still merge it back to the .bak and .trn backups etc...of course if so...that really would raise a lot of network bandwidth issues whenever you were doing a native sql backup that was doing this.

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply