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.
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. ***
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.
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.
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.
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)
Click on Install SharePoint Server when the prerequisites finish installing and enter your Product Key and agree to the license terms.
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.
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.
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.
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.
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.
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 2010 incorporates the concept of using a Paraphrase to add additional servers to the farm. Enter a paraphrase and remember it.
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:
Reboot the server or run iisreset /force from a CMD prompt when the configuration is complete.
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:
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.
I 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.
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.
Select your authentication mode, name of the site, port number, and the physical directory.
Customize to fit your setup.
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.
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>.
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.
Now there is not a Content Database associated with your Web Application. This is exactly what we want.
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.
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.
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.
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.
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.
- 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