In this post I am going to walk you through how to migrate a SharePoint 2007 environment to a SharePoint 2010 environment.  We will be moving from Windows Server 2003 Standard to a newly built, Windows Server 2008 R2 Standard machine.  I have included screenshots in the walkthrough as well to make certain steps easier.

For this migration, we will have a web/application frontend server and a SQL database backend server.  If you have not done so already, stage an environment with the following hardware/software specs from Microsoft for your SharePoint 2010 environment.

Step 1:
Run the pre-upgrade check on your current SharePoint 2007 environment. (Make sure you are running SharePoint 2007 with Service Pack 2 installed).

Click Start -> Right click Command Prompt and “Run as administrator”

In the Command Prompt window navigate to the following directory:
%COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\bin

Type the following command and press Enter:
STSADM.EXE -o preupgradecheck

***After the upgrade check is finished running, it should automatically open a browser.  You can use this to troubleshoot any issues. ***

Step 2:
You’ll want to back up the content database of your SharePoint Web Application in SQL Server.  **Note:  if you cannot take your live database offline when backing up, then click the Copy-only Backup checkbox.
Backup Database Master
After the backup is finished, restore the backed up database to a new created database in SQL Server.

At this point your SharePoint Content Database has been checked for a valid upgrade and a new database has been created for your new SharePoint 2010 site.

Step 3:
We will now move to our new Windows Server 2008 R2 server and start the SharePoint 2010 installation.  Run setup.exe from your installation media and click on Install Software Prerequisites.

Microsoft SharePoint Server 2010
Software Prerequisites will install.  If you are curious as to all that is getting installed, here are the Roles and Features:

  • Web Server (IIS) role
  • Application Server role
  • Microsoft .NET Framework version 3.5 SP1
  • Microsoft Sync Framework Runtime v1.0 (x64)
  • Microsoft Filter Pack 2.0
  • Microsoft Chart Controls for the Microsoft .NET Framework 3.5
  • Windows PowerShell 2.0
  • SQL Server 2008 Native Client
  • Microsoft SQL Server 2008 Analysis Services ADOMD.NET
  • ADO.NET Data Services Update for .NET Framework 3.5 SP1
  • A hotfix for the .NET Framework 3.5 SP1 that provides a method to support token authentication without transport security or message encryption in WCF.
  • Windows Identity Foundation (WIF)

Step 4:
Click on Install SharePoint Server when the prerequisites finish installing and enter your Product Key and agree to the license terms.

Step 5:
Next you are greeted with the option of Standalone or a Server Farm.  For this environment we are going to select Server Farm as it gives us more extensibility to add additional servers and roles down the road.
Microsoft Sharepoint Server 2010 Installer
If you already have your own instance of SQL on another sever, as we do in this build, then select Complete and click Install Now.

Sharepoint Server 2010 Server Type

Step 6:
Once the install is complete (assuming that there is only one server in the Farm) run the SharePoint Products Configuration Wizard Now.  If you plan on adding additional server(s) to the Farm, stop here and run the installation on the other server(s) and then run the SharePoint Products and Configuration Wizard on the server that will host the Central Administration console.

Microsoft Sharepoint 2010 Configuration Wizard
The SharePoint Products Configuration Wizard will pop up.  Click Next.  You will be prompted with a warning that a few services that will be stopped and restarted during this configuration.  Since this is a fresh install on a new server, we are okay with IIS and the other services being stopped and restarted.

Step 7:
If this is your first server in your farm, click Create a new server farm.  If you are adding this server to a farm already created, then click the other.
Sharepoint 2010 Connect to Server Farm

Step 8:
Start keeping track of all your settings from here on out.  In the next few steps we are going to specify the Database Server and the Database Name, along with the Database Access Account.

Enter your appropriate settings:
Sharepoint Configuration Database Settings

Step 9:
SharePoint 2010 incorporates the concept of using a Paraphrase to add additional servers to the farm.  Enter a paraphrase and remember it.
Sharepoint Farm Security Settings

Step 10:
The next screen is about configuring the settings for your Central Administration Web Application.  Specify a port number (I used 9999) and use NTLM as your authentication provider.  If you are using Kerberos, then see this Microsoft article.

After clicking Next, you are prompted with a screen that displays your recent settings that you input.  Check over everything and click Next.  SharePoint 2010 will start its configuration.

You’ll see a progress bar as SharePoint runs through 10 installation tasks.  When completed, you will see a screen like the one below:
Sharepoint 2010 Configuration Successful
Reboot the server or run iisreset /force from a CMD prompt when the configuration is complete.

Step 11:
After the server reboot or iisreset, browse to your SharePoint Central Administration Site.  http://servername:9999

From here I highly recommend using the wizard.  It will walk you through the basic steps of setting up account dependencies.  After the wizard completes, you should see a page like the one below:
Sharepoint 2010 Central Administration

Step 12:
With the farm configured, we’ll want to register a few accounts so that the SharePoint services can run appropriately.  To register accounts, click on Security –> Configure Managed Accounts.
Sharepoint 2010 Central Administration SecurityI would start with registering an account for your Web Application, User Profile Synchronization Service, and SharePoint Search/Crawl.  After you register your accounts, you can assign them to the appropriate service by going to Configure Service Accounts in the Security section.  Select the service you want from the top dropdown list, and then select the corresponding service account you want to tie that service to.

Step 13:
Now that your accounts are configured and associated with their service, we will create our new Web Application for our site.

Click on Application Management on the left-hand side, then Manage web applications.  Click on New in the ribbon.
Manage Web ApplicationSelect your authentication mode, name of the site, port number, and the physical directory.

Authentication
Customize to fit your setup.

Security Configurations
Create a new Application Pool and select an account for it to run under.  Network Service is fine, or if you have a specified Active Directory account, then you can select that.  The Database Server is running on a separate machine, so enter the name of the server or the IP address.  You can enter a Database Name here, but we will be removing this database later on, so it is not entirely important on what you name it.  Customize the remaining Service Application Connections as needed and click OK.

Application Pool
After clicking OK, your web application will be created.  When it is finished, you are greeted with the prompt below.  You can also open IIS Manager and view your site collection there.  It will be called SharePoint – <port number>.

Sharepoint Application Created

Step 14:
In the above step we just created the new web application for our SharePoint 2010 site instance and created a temporary database name.  We are now going to remove the temporary content database and start the process of attaching our SharePoint 2007 database.

Navigate to Application Management –> Manage Content Databases, and click on the current Database Name you see.  It is most likely called WSS_Content unless you change the name earlier.  In that case, click the database name that you input.  Scroll to the bottom of the screen and there is a checkbox to Remove content database.  Check that box and click OK.
Application ManagementNow there is not a Content Database associated with your Web Application.  This is exactly what we want.

Step 15:
Next we have to run the psconfig.exe utility in order to perform the upgrade.

Open an elevated CMD prompt and change the directory to:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN

From there run this command:
PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures

This will install additional features that allow the upgraded SharePoint 2007 database to be mounted on the 2010 platform.

Step 16:
After psconfig.exe is finished running, we’re now going to attach the content database using the SharePoint 2010 Management Shell.

Open the SharePoint 2010 Management Shell as Administrator and run this PowerShell Cmdlet:
Mount-SPContentDatabase -Name <contentDB> -DatabaseServer <serverDB> -WebApplication <webappname>

<contentDB> = upgraded SharePoint 2007 Content Database Name
<serverDB> = name or IP address of SQL Server
<webappname> = URL of web application, i.e. –> (http://oursite.com)

After running the above cmdlet, grab a cup of coffee because it takes ~20 minutes (depending on how big your database is) for the command to complete.

Step 17:

When the database finishes mounting you need to restart the server or run an iisreset from CMD prompt.  After doing one of the two, grab the latest hotfix from Microsoft here.

Step 18:

Now you will be able to navigate to your new SharePoint 2010 site via the URL you specified.  The site should look and feel just like the 2007 site because we have not applied the Visual Upgrade yet.  If you like the 2007 layout, then feel free to leave it as so.  If you did all this work and want to see what the 2010 layout looks like, you can follow these steps below:

Make sure that you are accessing your new SharePoint site with administrative credentials.  Go to Site Actions in the top left and at the bottom, select Site Settings.  Under Site Collection Administration there is an option to click on Visual Upgrade.
Sharepoint Administration
Click on Update All Sites and this will update all of your sites from the 2007 look and feel to the 2010 look and feel.

FINISHED!

To recap:

  • We ran a pre-upgrade check on our existing SharePoint 2007 environment
  • Backed up the original SharePoint 2007 database in SQL Server & then restored to a new database
  • Installed SharePoint 2010 Server on a newly built Windows Server 2008 R2 machine
  • Configured the necessary service accounts
  • Created a new Web Application
  • Mounted our SharePoint 2007 database into SharePoint 2010 using PowerShell

Written by Cory Granata Employee @ SherWeb