Since I have not yet decided on anything specific on this blog other than, it’s me, I will probably occasionally post interesting challenges I ran into in my work as an IT Professional. When I post something, there will be some reason behind it, this one being, I wanted a way to document a victory outside of a paragraph in a closed ticket. Since this is my first post of this type I feel as though i should start with a little bit of background.

In my current role, I am a jack of all trades. I do a lot of different things in a lot of different areas, and while I have tried to push my knowledge to grow in certain areas, there are just things that I am going to encounter that I either don’t know anything about or don’t encounter frequently enough to easily fix. Of course much of the problem solving process involves googling for what others have done, reading, tossing out what is not applicable, and trying what might work. I spent a lot more time on this than I probably should have but it was a challenge that I could not let go.

The Problem

An end-user asks me about recovering a file. The file is is an Open Issues Matrix in a Document Library on a SharePoint subsite for his department. The document was overwritten by someone else, and the replacement document was a completely different document. It was gone. This is running on a local server with SharePoint Foundation 2010. The Document Library was a feature that was included by a former department manager. The way we got here was, I setup the subsite and then showed features to the department manager, who implemented what he wanted. At no point did we get into smaller details and I did not really check back to make sure he was considering things like protecting the documents. I accept some blame in not foreseeing this problem. Clearly, we did not have any type of versioning or this would be a shorter write-up.

Step 1

The challenge was on. I was fairly certain that the file was gone and that SharePoint, in itself, was not going to have another copy or a backup. I did some reading to confirm. The next step was to consider our backups and what could be done. The server that SharePoint runs on is regularly backed up with AppAssure. So, I mount a recovery point in AppAssure and then start looking for files. Unfortunately, I have no idea where they are so I go back to Google. Eventually I find that the files are stored as information in a database, not as simple files on the drive somewhere and from there I find that the database for SharePoint content is located here:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Data\MSSQL10.SHAREPOINT\MSSQL\DATA.

I have the data. Now how do I get it out?

Step 2

This part took longer than I would have wanted. I found some info on some scripts that might have helped. I found something that might have worked if I were on a different version of SharePoint. I ended up settling on Veeam Backup and Replication, that I got to from SpiceWorks. A few things to note:

  • Veeam Backup and Replication is a bunch of different products bundled into one really awesome tool. The specific tool is Veeam Explorer for Microsoft SharePoint. You will have to install the whole package.
  • Veeam’s Backup and Replication tool comes with a 30 day trial. I believe there are portions that are free after it expires but I don’t remember and don’t feel like looking for a definite answer.
  • When you install, click the big green install button on the left. The install on the right is not needed. If you do install it, you can get where you need to go but will then get errors. You don’t have to install any of the other pieces.
  • This is the 2nd time I have used a Veeam product during the license period to get me out of a jam, the first being to move VMware Virtual Servers to different hosts after a vCenter license had expired. I am not looking for reasons to give this company money.

Veeam Backup and Replication Install

So, what did I do with Explorer for SharePoint?

  1. Spin up a Windows Server to install it on (I used Windows Server 2008r2 Standard.)
  2. Install the product (you might have to install some roles manually for it to work.)
  3. Copy the folder, containing the database that you want to extract the file from to that server (I say folder because if you only copy the database file, WSS_Content, it will not open. Veeam is looking for another file. It’s probably WSS_Content_log but I didn’t test and didn’t care to confirm.)
  4. Double click your Content file (the icon should have changed to Veeam’s icon after install.)
  5. Find the file you want in the GUI
  6. Export/Save

Final Thoughts

  1. Man this would have been a lot faster had I known some of the things I knew before.
  2. Veeam makes good products.
  3. Don’t ever leave integrity or backups in the hands of an end-user, no matter how disconnected you want to be or how unimportant