I’ve had an odd issue come up a few times now….
For one reason or another, a content database needed to be detached and then re-attached to the SharePoint farm.
The most recent need for this was so a specific content DB could me moved to a different disk on the SQL server.
In theory, the operation is pretty easy:
- Umount the Content DB – I did this from Central administration, Manage content databases
- have the DBA move the DB to a new disk.
- Mount the content DB – this is where trouble started….
Here’s what happened:
The Site collections in that DB were available on one WFE, but not the other one.
Hmm, now for the troubleshooting….
Using PowerShell, I used the command below on each WFE:
get-spcontentdatabase -webapplication http://myurl.com
Oddly, on the working WFE, my “moved” content database showed up in the list.
On the non-working WFE it was missing.
The fix:
I tried unmounting and remounting from Central admin – no luck. (though one time the “working” WFE flipped to the other WFE!)
Next I thought I would get clever and use powershell on the broken WFE to mount it there – this didn’t work- I got an error that said the Content DB was already attached.
I also tried things like restarting IIS, Restarting the SharePoint Timer Service and Restarting the SharePoint Admin Service – no luck.
I also tried clearing the SharePoint Timer Cache – no luck either!
So Finally I unmounted it from the farm (again from CA)
Then I ran the command below on ALL nodes (WFE and APP) to confirm that it wasn’t in the farm anywhere:
get-spcontentdatabase -webapplication http://myurl.com
Finally I ran the mount-spcontentdatabase command from the Central admin box:
Mount-SPContentDatabase -name mydbname -WebApplication http://myurl.com
Note that I only had to run this once – I confirmed the Content DB was visible on all 5 boxes by re-running the get-spcontentdatabase command on each of them and all was good!
As a side note, I was lucky – Because we moved the content database, I knew what site collection to validate. Also as a habit, I log into each WFE to validate – had I used the public URL and gone through the load balancer, would have had a 50/50 chance of seeing the problem.
To make matters worse, we have 18 content Databases in this web application. The Content database we moved was NOT the root site collection! Meaning uncaught issues would have gone unnoticed for a long time. And when the issues were discovered, they’d only apply to a single site collection and only then on a specific WFE would there be a problem. These kinds of situations are nearly impossible to figure out down the road.
So if you find yourself detaching & re-attaching content databases, be sure to test the site collections in those databases on each WFE, it could save you hours down the road.
(SharePoint 2010 SP1)