Restore an individual SSRS report

So we are getting ready to have someone customize the appearance of a lot of our SSRS reports. Naturally I want the ability to restore to a previous version in case he messes one up or accidentally deletes one.

In Crystal, I just restore an .RPT file from a basic file backup. But from what I have learned today, the SSRS .RDL files don’t actually exist as files on the Report Server. They are instead a blob in the ReportServer database. I’ve found some convoluted ways to restore an individual report by restoring the entire ReportServer database and running some long SQL queries against it to get an .XML which I can rename to .RDL and import.

My question is, does anyone know of a tool that exists to restore individual SSRS reports? I’ve got to imagine there is a significant need for this that extends far beyond the Epicor community. We use Veritas Backup Exec and I can restore the database quickly and easily, but it does not have the ability to restore just one SSRS report. There has got to be a better way to do this than what I described above.

You can use a tool like ReportSync to mass-download all of the .RDL files either to your local machine or to store them on the server’s filesystem. Then, you can reupload any that you need to restore.

If these are standard reports that will be customized for the first time, then the standard versions should remain unchanged, and all changes should be made to a copy located in the CustomReports folder (this is automatically created if you use the Copy Report Style in the Report Style Maintenance > Actions menu).


Tyler, it looks like to use this tool I would have to launch it manually every evening to do a manual backup for all .RDL files. I want to keep my backups automated.

Currently I have a nightly backup of the ReportServerDB but I’m looking for a better way to restore them when I restore this database. An alternative method would be a scriptable version that lets me download all of the .RDL files nightly, because file level backups are already taking place.

I like to browse to the ssrs website and manipulate files there. In IE or Chrome, go to http://[servername]/Reports/

The servername is often the same as your Epicor server, but sometimes is a separate reporting or db server depending on your setup.

I often encounter security issues, but once you get that far, you can browse to, download, and upload files almost like using a normal windows folder.

Also, keep in mind that if the new report styles are created properly, they shouldn’t touch the base reports. You can also ask for new versions to have a new file name if you want to keep older versions.

In 10.2.300 (maybe 200?), the Report Style now has a Download and Upload under the Action Menu.

BTW, you must enable SSRS Report Designer in order to Upload the RDL.

Oh, when selecting the upload folder, use the Top Folder that contains the Report folder. So if your RDL file is in My Documents\reports\custom reports\myOrderAck, then use My Documents when uploading the files. The program will append the folder structure as listed in the Report Style. If you drill down to where the .rdl is, you’ll get a file not found error.

The Upload/Download options are available in 10.1.600 as well, but anyone with access to Report Style Maintenance could upload and download RDL files. This tripped us up while testing our upgrade to 10.2.300 since I suddenly couldn’t migrate over any of our existing reports.

1 Like

Upload/download within Epicor and navigating to the web interface are all handy things I’m aware of, but they don’t address my question. My question is, how I can I do nightly backups so that one week later I can restore an individual RDL file and not the whole ReportServer database?

In BackupExec I can do a granular restore of a individual file like a Crystal Report, and I can do a granular restore of an individual Outlook item, like an email or calendar event. But any kind of granular restore for an individual .RDL file is oddly missing for SSRS reports. They are all buried in the ReportServerDB.

So the Restore is easy since you can do that with the Report Style. It’s the backup you’re after?

You can’t, but what you can or should do is download the original rdl then upload and change reports on another system, then the rdls are reviewed in a qa system then uploaded to production. This will give you the before and after.

Dev, Qa , live should always be the process, then you have a rollback point.

It is about controlling the dev process.

@aaronssh I had a similar issue where I wanted to pull all the .RDL files down at once, I found some powershell that does the job. I run it manually as needed but you could setup a scheduled task to have it run nightly and get grabbed by your backups.

Uploading them back would be the same as deploying any individual Report.

edit: added references to original content creators but they don’t show in the preview pane on here.


Beautiful Sean! Thank you, that is exactly what I need!

Just gave it a try. Easy to set up. Only takes 60 seconds to complete. All RDL files are copied to a safe place for nightly back. Perfect!

1 Like

Awesome, honorable mention for the tool @tsmith posted I just tried that and it’s great!