Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

We have a SharePoint 2007 site collection that some permissions were accidentally deleted from. It was impossible to determine how it was originally setup, so we decided to do an STSADM restore from the backup.

The restore went fine and the site is back to normal... except that now nothing in the site can be crawled (incremental crawls).

In the crawl log, we see the following error:

http://server/sites/sitecollection The object was not found. (The item was deleted because it was either not found or the crawler was denied access to it.)

For all the items in the site, the error is:

Deleted by the gatherer (This item was deleted because its parent was deleted.)

What I know:

  1. The crawler definitely has access (other sites are crawled)
  2. It was working before the restore
  3. No weird errors in the ULS logs

Has anyone seen this before after a restore? Any idea how to fix it or get more information?

share|improve this question
    
Have you tried dropping the index and doing a full crawl? –  PirateEric Apr 4 '12 at 14:11
    
We definitely do NOT want to do that since this is production... if at all possible. –  Kit Menke Apr 4 '12 at 14:13
    
Does the site appear in the Content Source? –  Dave Wise Apr 4 '12 at 14:54
    
@DaveWise Yep. The content source should not have changed after the restore overwrote the site collection...? –  Kit Menke Apr 4 '12 at 15:11

1 Answer 1

up vote 1 down vote accepted

Some things to try first:

  • Running an incremental crawl again
  • Running a full crawl
  • Adding a crawl rule specifically for that site, then running an incremental crawl

In our case, we did not want to do full crawl in production because we didn't want to lose any more of the index (we have problems with the full crawl.. but that is another story). For most people, I think that is the recommended option.

Unfortunately, nothing was working so we had to take drastic measures.

First a warning.. Always have backups, use a non-production environment and do this at a time when you won't impact your users. 1

  1. Create a new content DB for the site collection in pre-production
  2. Create a BLANK site collection in the new content DB (so that it gets a new site ID)
  3. Restore using STSADM and overwrite the blank site collection with the backup
  4. Delete the site collection from production using STSADM
  5. Run STSADM -o enumsites to make sure the site is really deleted
  6. Restore the content database to production using SQL backup/restore
  7. Add the content database to production using addcontentdb (always use STSADM command, not central admin!)

Update #1:

Restoring the site didn't work because the site collection wasn't actually deleted. We ran into two issues:

  1. We couldn't see the site collection in the new content database. Turns out this was caused by #2...
  2. Deleting the site "failed" with HRESULT: 0x80070003 issue
  3. After getting the site actually deleted, restoring the site to the same URL resulted in the same crawl error

In retrospect, however, I think the addcontentdb command would have actually worked if the site collection was actually deleted. This is why I recommend running stsadm -o enumsites after deleting the site collection.

Update #2:

We then tried restoring the site to a different URL. Then it started working and we got results. However, restoring to a different URL is causing RDL reports to fail (the site is integrated with Report Server).

We had to setup all the data sources and upload all of the RDL reports again.

1. Technically you could do this directly in production without the need for the SQL restore between environments.. However, I think "better safe than sorry" applies here. Plus this way you can test it out first. :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.