Today I faced a problem very weird, suddenly one of the crawl databases of the farm stuck in “Recovering Status”. So what happened? No idea, but I have to fix it 🙂 One advantage was that the farm was a preproduction environment so I could work without installation windows and son on. The first thing I checked was the free space on the hard drive, were remaining 4 gb of space, but my suspicious about the hard drive were there. I tried to shrink the log file, but how the database was in recovering It has been blocked by SQL. For my surprise when I access to the search application service on the front-end I discovered that was not possible to connect t the crawl component, so… I thought: Has to be the free space in disk drive… How was enough space in the hard drive were the databases were stored, I decided to take Offline the Crawl database and take it online again…. Problem solved!! So keep in mind, if you do not have enough space in disk, the crawl database will stuck in recovering… But my action do not ends here, I was thinking about if it was not possible to have more space, what could I do? TechNet has the answer: If the SQL Server runs out of space during a crawl, use the following steps to resume the crawl processing:
- From each server with a SharePoint Crawl Component, stop the ‘SharePoint Server Search 14’ and ‘SharePoint 2010 Timer’ services from either the Services snap-in (services.msc) or from a command prompt using ‘net stop osearch14’ and ‘net stop spTimerV4’
- From SQL Server Management Studio, detach the affected Crawl Store DB(s)
- Move the database and/or log (e.g. the .mdf, .ldf, and .ndf) files for the affected Crawl Store DB(s) to a drive path that provides sufficient space for growth
- From SQL Server Management Studio, re-attach the affected Crawl Store DB(s)
- From each server with a SharePoint Crawl Component, start the ‘SharePoint Server Search 14’ and ‘SharePoint 2010 Timer’ services from either the Services snap-in (services.msc) or from a command prompt using ‘net start osearch14’ and ‘net start spTimerV4’
After restarting the Search and Timer services on all servers running a crawl component as noted above, the crawl(s) should fully recover from the disk space condition and continue with normal processing. However, if the crawl was stopped as a troubleshooting measure, it is advised to let the ‘Stopping’ process complete as usual (which may require a significant amount of time for large crawls). Hope it helps!