In this article, I’m walking through migrating from SharePoint 2007 to SharePoint 2010 using database attachment method.
- Run Preupgradecheck in MOSS 2007 server.
- Analyze & fix the issues.
- Take the back up of content database from MOSS 2007.
- Restore the content databases backup to SQL Server of SharePoint 2010.
- Create web application in SharePoint 2010.
- Attach the MOSS 2007 content databases to SharePoint 2010.
- Post Migration fixes
1. Run preupgradecheck in MOSS 2007 Server
This will be our primary analysis and reporting tool providing us with invaluable information regarding your SharePoint 2007 farm and actions that may be required to be taken prior to upgrading to SharePoint 2010. It is better to have October CU: http://support.microsoft.com/kb/976730/ where the preupgradecheck is enhanced further.
Run the preupgradecheck as below in command prompt:
stsadm.exe -o preupgradecheck
Once you get “Operation completed successfully”, it will launch the “SharePoint Products and Technologies Pre-Upgrade Check Report”. It can also be located under the following location;
%COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Logs\
1(a). Analyze the report and fix the following settings:
- I would strongly recommend you document your current environment first! See 25 Things to Document before You Start SharePoint Migration
- Identify any third-party components used and deploy them to SP2010. E.g. Nintex, 3rd party features, including web parts, solutions and custom workflows
- Setup Incoming/Outgoing email settings in SP2010 environment
- Modified Web.Config entries
- Alternate Access Mappings (AAM)
- Replicate Quota templates & Managed Paths to SP2010
- Fix Event Receivers: Fix “Event Receivers Missing” issue in SharePoint Migration
- Fix missing web parts Fixing “Missing Web Parts” issue in Migration
- Fix missing features Fix “Features Missing” issue in SharePoint Migration
- Find and Delete Orphaned Users
- Empty Recycle Bins Empty SharePoint Recycle Bins Programmatically with PowerShell
- Check-in All the checked-out files
- Fix orphaned sites: Find and Delete Orphaned site collections in SharePoint
- Limit and Cleanup Versioning
- Trim Audit log Trim audit log to Improve Performance
- Delete Closed Web Parts: Closed Web Parts in SharePoint – How to Find, Restore and Delete
- Fix “Content database with modified database schemas” issue when upgrading to SharePoint Server 2010: http://sharepointnomad.wordpress.com/2010/12/12/fix-content-database-with-modified-database-schemas-issue-when-upgrading-to-sharepoint-server-2010/
2. Take the Content Database Backup from MOSS 2007
Set the database to read-only before taking backups.
Set the database as read only:
- On the MOSS 2007’s database server, click Start, point to All Programs, Microsoft SQL Server, and then click SQL Server Management Studio.
- Traverse to Databases node by expanding the tree.
- Right-click the name of the database that you want to set to read-only, and then click Properties.
- In the Properties dialog box, click the Options tab.
- Under State, select the Database Read-only to True, and then click OK
Backup the database:
Follow these steps to take back-up:
- Traverse to Databases node by expanding the tree.
- Right-click the database you want to back up, point to Tasks and then click Backup Database
3. In the SQL Server Backup dialog box, specify a name for the backup, select Back-up type – Full, select a destination, and then Click OK to start the backup process.
4. Repeat these steps to back up the databases that are used by MOSS 2007 in the environment.
3. Restore the back up on SharePoint 2010’s SQL Server:
- Open the SQL Server Management studio, traverse to the “Databases” node. Then right-click the “Databases” node and choose “Restore Database…” from the context menu.
- Specify the Database name, Restore Source, Destination, File names in the screens.
3. Click “OK” to start the restore operation and Wait for the restore to complete! The time of restoring the database depends upon the database size and server’s capacity.
4. Create a web application in SharePoint 2010
- In the SharePoint Central Administration, click on “Application Management” and click on “Create or extend Web application” under “SharePoint Web Application Management”.
- Again, click on “Create Web application”. Set the settings according to the needs, say http://SharePoint2010.company.com
- Don’t create any site collection.
- Install & Copy the solutions, file system changes (like images, themes) from MOSS 2007 to MOSS 2007 servers.
Remove content database of the newly created web application in SharePoint 2010
Now, we need to delete the content db of the newly created web application in order to avoid any URL conflicts. Run the below stsadm command:
stsadm -o deletecontentdb -url http://SharePoint.company.com -databasename <MOSS2007_Migration_Content>
5. Attach restored database with the newly created web application in SharePoint 2010
Test the content database
Before attaching the content databases to the Web applications, use the Test-SPContentDatabase PowerShell cmdlet to verify that all of the custom components that you need for that database. It checks for all artifacts such as features, setup files, web parts, etc that are referred in the content database are installed on the farm and provide you with a report.
Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>
Delete the corrupted objects
stsadm -o databaserepair -url <URL of SharePoint site> -databasename <name of database> -deletecorruption
Finally, we need to attach the restored MOSS 2007 database to MOSS 2007 by running the STSADM
- The Content DB containing the root site collection is always attached first.
- The other content DBs can be applied in any order.
Attach the Content DB of the Root Site collection First. And then Attach the Content DBs of other Site Collections.
stsadm.exe -o addcontentdb -url http://SharePoint.company.com -databasename <MOSS2007_Portal_Content>
Or you can use the PowerShell cmd-let: Mount-SPContentDatabase
Mount-SPContentDatabase -Name <database-name> -DatabaseServer <server-name> -WebApplication <webapp-url>
Post Migration fixes
Once the content database attachment process is over, we have to manually fix the below things:
- Fix the List/Site templates: Migrating SharePoint 2007 Site/List Templates(.stp) into SharePoint 2010
- Remove any unused/classic web parts Remove a Webpart programmatically using PowerShell
- Fix the alerts: Fix Alerts after URL Change in SharePoint Migration
- Fix Incoming E-mail settings: Find All Incoming E-Mail Enabled Lists and Libraries in SharePoint
- Fix InfoPath form URLs: Migrate InfoPath Forms to SharePoint 2010
- Perform the Visual upgrade to get the SharePoint 2010 Look and Feel if needed. Visual Upgrade All Sites in a web application Using PowerShell
Browse the migrated sites in SharePoint 2010 and check their look& feel and functionality.
Before and After:
Last but not least: How to Migrate from SharePoint 2007 to SharePoint 2013? Well, if you use the Out-of-box database attachment method, you need to migrate to SharePoint 2010 first and then migrate to SharePoint 2013. Here is my other article Migrate from SharePoint 2010 to SharePoint 2013 – Step by Step Or you can use Migration tools to directly migrate from SharePoint 2007 to SharePoint 2013 or SharePoint 2016!
- Tech-net guide – Perform a database attach upgrade: http://technet.microsoft.com/en-us/library/cc303436.aspx
- Resolving Migration issues: http://technet.microsoft.com/en-us/library/cc262967.aspx