Showing posts with label The site collection could not be restored; Steps to identify the Orphan sites/Site Collection; powershell command to run orphaned site collection.. Show all posts
Showing posts with label The site collection could not be restored; Steps to identify the Orphan sites/Site Collection; powershell command to run orphaned site collection.. Show all posts

27 May, 2014

The site collection could not be restored - Resolved!

We have a sharepoint site in our staging environment & the exact replica in production. We made few change to the staging site and tried to restore that staging site to production. But restoration never got completed and we received the below.

Error: The site collection could not be restored. If this problem persists, please make sure the content databases are available and have sufficient free space.

Troubleshooting done:

-Check the disk space on the SQL server where LDF athe nd MDF files are stored.
-Check the partition on the SQL Server in reference to data files.
-Make sure the content database has enough space allocated.
-Make sure the database does not have restrictive growth.
-Make sure to check the disk space on the SP server where restore is running. Approximately it should be 2 times the DB Size.
-Also try doing the below
Go to “SQL Server Properties-> connections” and uncheck ‘Use query governor to prevent long running queries’. Also set ‘Remote Query timed out to 0’.
Stop and restart the “Windows SharePoint service timer”
Restart the IIS.

But still i received the same error.

Resolution: There would be a possibility of existing PRD site might be orphaned. If the site is orphaned and if we try to restore upon that site, it will throw the above error.

Steps to identify the Orphan sites/Site Collection:

Step 1: Execute the below command.
stsadm -o enumallwebs -databasename DatabaseName -databaseserver  Servername  > c:\ContentDatabaseNameOrphans.xml

Step 2: XML File will be generated. It will be  displaying all the site collections and sites present in the Content DB with their GUID’s

<Site Id="3d884a5a-e739-4e2c-a919-1837b27efdeb" OwnerLogin="domain\AdminAccount" InSiteMap="False" HostHeader="www.abc.com">
<Webs Count="5">
                                 <Web Id="371a4912-4c3b-445b-a746-8a20a6f85ab8" Url="/" LanguageId="1033" TemplateName="CMSPUBLISHING#0" TemplateId="39" />
                                <Web Id="85ab183b-9210-491c-bfb3-9f96560003e7" Url="/Subsite1" LanguageId="1033" TemplateName="CMSPUBLISHING#0" TemplateId="39" />
  <Web Id="0696a632-27bc-4002-a5a7-d1c56d2a8543" Url="/Subsite2" LanguageId="1033" TemplateName="CMSPUBLISHING#0" TemplateId="39" />
                                <Web Id="3397eeae-ff35-400d-8564-ce373492eace" Url="/Subsite3" LanguageId="1033" TemplateName="CMSPUBLISHING#0" TemplateId="39" />
                                 <Web Id="7c8ac45b-d9a5-4381-9067-b891d49e6b90" Url="/Subsite4" LanguageId="1033" TemplateName="CMSPUBLISHING#0" TemplateId="39" />
                </Webs>
</Site>

InSiteMap="False" indicates site collection (www.abc.com) is orphaned. If you try to restore upon the site collection www.abc.com , you will receive “site collection could not be restored again” error.

Step 3: To remove orphan objects , I tried running the below script.

$database = Get-SPContentDatabase “Content_DB”
$database.Repair($false)
$database.update()

Note : $false parameter is used to view the list of orphan object related to the Conten DB  and $true parameter will actually delete orphan objects.
But unfortunately all the orphan object related to the site collection www.abc.com are not removed completely.

Step 4: To verify the orphan site collection is completely removed or not,Go to your SQL Server and open your database and then tables àright click on the table “dbo.AllSites” à select top 1000 rows.


Step 5: It will display the list of Site Collection’s GUID present in the database.  You need to verify the existing orphaned site collection GUID in the database(Which we found out it in step2).If it is present,  remove that using the below command.
But before executing the below command , be sure that you are deleting the correct site.

stsadm -o deletesite -siteid  "SiteCollectionGUID" -databasename “ContentDB_Name" -databaseserver "DB_ServerName" –force

After executing the above command , you can verify the site GUID is removed from  “dbo.AllSites” table.

Then try to restore the Staging back up. Now this times, restoration got completed successfully :)