Upgrade from MOSS 2007 to SharePoint 2010 has been very common these days. The migration can be dominated by many factors, few of them are listed below.
  •        Size of migration 
  •       Customization involved in application
  •       Third party tools used Ex: K2, Nintex, Telerik, Bamboo
  •       Custom database if any
Based on many such factors we need to finalize the approach for migration. There are many third party tools used which can be used for complex migration. These tools gives control of migration upto granular level Ex: Migrating specific lists, uses etc. Examples of tools can be Metalogix, AvePoint.

But each of tool can have its own limitations. These should be observed and understood well before migration.

The second approach for migration which is provided by platform itself i.e Content database attach and upgrade method.

This approach is very easy to implement if we have less customization i.e application is using Sharepoint OOTB features and configuration on top of that.

Things to consider in this approach are
             Customization if any needs to be rebuilt using  SharePoint 2010 API
             Workflows in 'In-Progress' state needs to be completed
             Third party features migration needs to be checked with vendor       
            Shared content database for multiple site collections ( This we will discuss in this article)

The MOSS application should be on SP2 is the requirement for this approach.

We can face few issues while such migration as many of the old solutions are not available for rebuit or the third party solutions does not have any SharePoint 2010 upgrade available. If such is the case then during upgrade there are errors generated in logs. There is a excellent utility available on Codeplex to delete these unwated solutions. It can be downloaded from here.

The steps for the upgrade can be summarized as follows.

1.    Take the content database backup from MOSS environment
2.    Deploy any customizations which are rebuilt on SharePoint 2010.
3.    Restore the ContentDB in SharePoint 2010 farm.
4.    Attach the New ContentDB in SP2010 using 'Mount-SPContentDatabase' command.
5.    Run the Utility(Feature admin) and Clean the feature which is\are giving error for this content database.
6.    Delete the unwanted sitecollections (Deleteit using Remove-SPSite, deleting from UI keeps a reference in content database)
7.    Upgrade the contentDB  using 'Upgrade-SPContentDataBase'
8.    Deploy the new customization if any.

After upgrade please review the Database status in 'Upgrade & Migration' in Central Admin. It should show 'No action required'. The upgrade status should also read 'Successed' with 100%.

If there are errors during upgrade the status will be failed. Review the Upgrade log in this case to get the exact cause for failure. After removing the faulty component we can hit the upgrade command (pt. 7 above) again to upgrade the content database.