SharePoint on-premise Backup and Restore is a big topic of its own but in SharePoint online you don’t have such options. On-prem version you could use PowerShell to do perform nightly jobs to take Backup or you can take SQL backups which can be used to restore later.
Nothing like this is possible in SharePoint Online, because you don’t have servers and there are no PowerShell commands to take back up or export a site , list or library.
So question is how we safeguard ourselves with scenarios which can happen and might have happened in on-prem.
- User claims a file has been deleted as he / she can’t find it
- User deletes a file and realizes after long time that he / she needs it back
- Lot of permission settings have been changed and mistakes have been done, so how to see what it was like 1 day before so that same can be replicated again
Well what are the options with us
- Enable version history: Although it does not solve your backup and restore concerns but it can be helpful is certain scenarios such as user updated the document wrongly if version history is not enabled you end up losing earlier version. Of course you can ask Microsoft for a restore which they keep for 14 days but note that it is not a granular restore which means whole site collection is restored and you might have duplicates
- Use Recycle Bin: To lot of extent this solves a lot of worries of Backup and Restore. Each file, item , list or library, site deleted will be stored in Recycle Bin for 90 days. You can always restore your own files for 90 days and if deleted from own recycle bin it will be stored in site collection recycle bin. Also we have second stage recycle bin which can be accessed by site administrators. If a site collection is deleted then it can be restored within 30 days as it depends your Office 365 storage.
- Request Microsoft for a restore: Microsoft keeps 14 days backup and it can be restored by making a request to Microsoft. So if you do the math if a file was deleted 105 days back it can still be restored as you can go 14 days back with backup and considering that deleted file might be in Recycle bin so you can restore it from there. But this is not very ideal as you will have duplication of data and it can be only done on site collection level and both old and new files will be presented to user.
So what are other alternatives, you can go for some third-party tools which are available in market, they allow you to take backups, do granular restores much like you were doing in on-premise SharePoint but of course it drives cost due to licenses and storage costs in Azure or some other services or cheap in house storages.
Another thing I can think of is taking backup on your own and storing it in some cheap storage locally / in-house. I have not built any solution like this but it can be done as below
- You already have Recycle bin and Microsoft 14 days backup which can save you in most of the scenarios
- But what if there are some business critical data which you want to safeguard beyond what you are getting and you don’t want to spend more money on third party tools etc.
- You can write a script using REST API which download data for business critical sites and stores locally. Download list data to excel. REST API supports downloading of data which can easily structured as backup if the script is written that ways. Frequency can be once a week so we have some extra cushion or daily depending on how long it takes to run, you can run parallel or multi threaded scripts to execute parallel.
If you like the idea of REST API let me know I can help you provide a solution based on that. Leave a comment and we can take it from there.