The time had come to upgrade Windows SharePoint Services 3.0 (WSS 3.0) to SharePoint Foundation 2010. Our server team was planning the migration to SQL Server 2008 and 64-bit servers. While this plan is scheduled to take place over the course of this year, I decided to upgrade now instead of waiting to be pressed for time.
At this point, you might be asking why we were still running WSS 3.0. Simple, it met user needs and worked well. While full-blown SharePoint offers a lot of rich features, the bulk of our demand was for a robust document library and workspace and project sites. The free version of SharePoint accomplishes all of that. I could not justify the cost.
What I will be recommending is the in-place upgrade of SharePoint Foundation 2010. There are alternatives and I encourage you to read up on them, but what I needed was a smooth migration of my existing document libraries, sites and user rights. The in-place upgrade accomplishes all of this with the only downside being that the production site has to be down during the upgrade. The entire upgrade itself can easily be done in an hour, so schedule two to be safe.
My instance of WSS 3.0 was using a Server 2008, 64-bit server as the application server, but a Server 2003 server with SQL 2005. In order for a smooth in-place upgrade, you will want your WSS 3.0 instance running on all 2008, 64-bit machines.
This means testing. If you are already on a fully 2008, 64-bit environment, go ahead and skip this part.
What you will need:
If you are not backing up your current SharePoint instance, stop here. Get your production environment backing up immediately. This is not only good practice, but you will need the backups to complete this migration.
Moving on, I created a duplicate of my application server (I cannot recommend virtual servers enough!) and then used the new database server. I installed WSS 3.0 and restored from my back up, which I have detailed here. This gave me an exact replica of the environment I would be using.
Here’s what we will be doing, first in the test environment and then production:
I ran through this process several times. I wanted to be comfortable with the process and to beat it up a bit to see what shook loose. Happily, it’s a pretty straightforward process. Move to your production environment when you are ready.
I ran into two issues after my installation: search did not immediately work and I needed to create a backup job.
Assign the site to an indexer to get search to work
This blog post explains it very well.
Use Powershell to back up the farm
Create a job using Powershell to back up your data. Details on creating the backup are on Technet and from there, you schedule your Powershell code to run by creating a job.