In SharePoint 2013 it is possible to restore a accidently deleted site collection. For more information, read this article: http://technet.microsoft.com/en-us/library/hh272537.aspx
You can use the Restore-SPDeletedSite cmdlet to restore a site collection.
However, if you removed the site collection using the Remove-SPSite cmdlet using PowerShell, the site collection will not be stored in a SPDeletedSite object.
This means you cannot restore a site collection that has been removed using PowerShell.
This post discusses the following error:
|Move-SPSite : Cannot insert duplicate key row in object ‘dbo.AllSites’ with unique index ‘Sites_Id’. The duplicate key value is <GUID>.
Let’s say you have 1 Web Application with 2 content databases:
– Database 1
– Database 2
Database 1 contains a site collection with the following URL: http://portal.contoso.com.
For some reason, you moved the site collection using the following cmdlet:
So far so good. Now let’s say you want to move this site collection back to Database 1.
You would run:
This produces the following error:
This is happening because the site collection has not been completely deleted from the content database.
When you run Move-SPSite, the site collection gets moved to the new content database.
However, the site collection in the source Content Database was not completely removed. The site collection "Deleted" flag was set to 1.
This means it is scheduled for deletion. The Gradual site delete timer jobs will delete the site collection from the content database. By default, this timer job runs once a day. To ensure the site is completely deleted, run the timer job. As this timer job runs for each Web Application, make sure you select the correct Web Application
After you ran the Gradual Site Delete timer job, you will be able to move the site collection back to Database 1.