SharePoint 2010 Cookbook: How to Migrate a SharePoint 2007 Site to SharePoint 2010 Using Database Attach

Change is never easy! Whether it’s going to college, getting married, or just getting the new, cool haircut you’ve always wanted, there will be something that you’ll miss not having (freedom of the single life, anyone?). Moving to SharePoint 2010 is no exception. Although upgrading is rewarding, with improvements in many areas, you will still need the precious content that exists in your current SharePoint 2007 environment. In this article, I’ll demonstrate how to migrate a site to SharePoint 2010 using the database attach method.

Challenge:

How can I migrate the site/site collection I want from SharePoint 2007 to SharePoint 2010?

Moving the entire farm to SharePoint 2010 could take much time, bordering on seeming forever. Sometimes, however, we want to get the contents of a specific site/site collection up and running on the new platform as soon as possible.

Solutions:

Using the database attach method, we can migrate a site/site collection to SharePoint 2010 following these basic steps:

Step 1: Move the needed site to a new Web application.
Step 2: Copy the content database backup to the SharePoint 2010 SQL server.
Step 3: Mount that content database to the SharePoint 2010 server.

Notes before migrating

  • Always backup your content database to be on the safe side.
  • The SharePoint 2007 server must have SharePoint Service Pack 2 installed.
  • Run the upgrade check program on your SharePoint 2007 server, stsadm -o preupgradecheck. Fix any issues reported before moving on to the next step.

Step 1: Move the site to a new web application in SharePoint 2007

Let’s say we want to migrate the SharePoint site at http://duyfarm/TeamSite.

    1. First, create a new Web application and blank site collection (for example: http://duyfarm:6789).
    1. Open Command Prompt and change directory to %COMMONPROGRAMFILES%Microsoft shared web server extensions12bin, then run the following STSADM commands:

stsadm -o export -url <URL name> -filename <export file name> -includeusersecuritystsadm -o import -filename <import file name> -url <URL name> -includeusersecurity   

The imported Web application might look like this:

Step 2: Copy the content database backup to the SharePoint 2010 SQL server

    1. Open Microsoft SQL Server Management Studio. Right-click on the content database and select Tasks > Backup…
    2. Enter the Backup Name, select Destination, and click OK to start.
    3. Copy this backup file to the SharePoint 2010 SQL server.

Step 3: Mount the content database to the SharePoint 2010 server

    1. On the SharePoint 2010 server, create a new empty Web application. For example, http://duyfarm2010:6789.
    2. If you have any custom components on the original site, install them to this Web application now.
    3. After that, we can restore the SharePoint 2007 backup to SharePoint 2010 SQL Server. Open Microsoft SQL Server Management Studio. Right-click on Databases and select Restore Database…
    4. Enter the new database name, ensuring you don’t overwrite the original content database. Select the Source and click OK to start.
    5. Open SharePoint 2010 Management Shell and dismount the current SP2010 content database.
      Dismount-SPContentDatabase <ContentdBName>
    6. Verify that we have all the needed custom components. If there are any errors, make sure you correct them before mounting the SP2007 content database.
      Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>
    7. My test shows no error, so we are ready to run the Mount-SPContentDatabase cmdlet. This cmdlet also upgrades the SP2007 content to SP2010.
      Mount-SPContentDatabase <ContentDb> -WebApplication http://SiteName
    8. After completing this process, you need to review the log files (the upgraded log file and error log file) to ensure there are no errors. The log files are located at %COMMONPROGRAMFILES%Microsoft Shared web server extensions14LOGS. The logs are named in the following format: Upgrade-YYYYMMDD-HHMMSS-SSS-error.log and Upgrade-YYYYMMDD-HHMMSS-SSS.log, where YYYYMMDD is the date and HHMMSS-SSS is the time (hours in 24-hour clock format, minutes, seconds, and milliseconds). If there are errors at this time, they will most likely be due to some customization done on the SharePoint 2007 server.

We have finally finished the migration process. Notice that after our upgrade is completed, the new site looks exactly like it was in SharePoint 2007. In SharePoint 2010, a feature called Visual Upgrade gives you an option to switch between SharePoint 2007 look and feel or the SharePoint 2010 view.  Note that if you have customized themes on the old site, you must re-create the new theme on the new site before you can switch.  To switch over to the new SharePoint 2010 look, do this:

    • Log in as Site Owner and select Site Actions > Visual Upgrade.
    • Select Update the user interface. Click OK.

Here is the SharePoint 2010 look and feel:

Notes:

See Also:


jstander
wrote
re: SharePoint 2010 Cookbook: How to Migrate a SharePoint 2007 Site to SharePoint 2010 Using Database Attach
on Wed, Nov 16 2011 6:25 PM

This is a great article, but I do have a question regarding this:

By adding more databases to your Sharepoint 2010 installation for every site you migrated and added from Sharepoint 2007….does this not cause issues with global searching within Sharepoint 2010 since there are not multiple databases?

Thanks

knlee
wrote
re: SharePoint 2010 Cookbook: How to Migrate a SharePoint 2007 Site to SharePoint 2010 Using Database Attach
on Wed, Dec 14 2011 7:20 AM

When I restore the database and create a new Web Application, do I have to create a blank site? I tried to create a blank site, and it didn’t work. And when I made the same steps (without creating any site), the site didn’t open. Appears: HTTP/1.1 200 OK Connection: close.

Could you give a little help?

Thanks!

Blog de los hermanos Marchena Sekli – Tecnología Microsoft, música y mucho mas!
wrote
Migrando sites de SharePoint 2007 a SharePoint 2010
on Wed, May 9 2012 8:34 PM

Debido a la gran acogida que ha tenido la nueva versión de SharePoint “SharePoint 2010”

Marlib
wrote
re: SharePoint 2010 Cookbook: How to Migrate a SharePoint 2007 Site to SharePoint 2010 Using Database Attach
on Mon, Oct 15 2012 8:41 AM

Hi there,

Thank you for the great article!!

I want to know if I can follow the same processes described here when I want to go from SharePoint 2007 (using SQL Server 2008) to SharePoint 2010 (using SQL Server 2012).  Or must I do the SharePoint migration and upgrade the SQL database?

Thank you,

Marli