Wednesday, January 5, 2011

Performing Upgrade through Database Attach SharePoint 2010

The database approach is followed when the existing server does not meet the hardware and software requirements for SharePoint installation to do an Inplace Upgrade. In such a case SharePoint is installed on a new server and the content from the existing server is attached to the new server. I will be explaining how a MOSS 2007 web application can be upgraded using this method. To do the migration your MOSS installation has to be MOSS SP2 or later. If not upgrade it to SP2 or later.
To do a database attach first you have to detach the database from the MOSS installation. This should be done to avoid any inconsistencies in data that may be caused due to updates to the content databases during the upgrade process. To do this

  1. Open SQL Server Management Studio
  2. Right click on the content database you want to detach, point to Tasks and click on Detach on the pop out. 

Then take back up of the content database you have detached. To do this, right click on the database in SQL Server Management Studio. In the Tasks menu, click Back Up. 
The next step is to restore from this back up. Copy the backup file to the new server. Right click on databases in the SQL Server Management Studio and click Restore Database. Give a name to the new database. Select “From Device” in the “Source for restore” and select the backup file. Select the database in the list of backup sets and click Ok. This will restore the database. Then give “db_owner” rights to the SharePoint service account and to the person who is intended to do the database attach if you are not the one to do that.
Click OK.
Create a web application in SharePoint from the central administration. Go to manage content databases and delete the database created for that web application. Before you delete the database observe that the number of site collections in the dataset is zero. Then attach the restored database to the application. To do that,
Open SharePoint power shell and give the following command.
Mount-SPContentDatabase -Name <DatabaseName> -DatabaseServer <ServerName> -WebApplication <URL>

This command will upgrade the database and give the report in a text file.

If you have multiple site collections in the application being migrated, see that you attach the content database having the root site first before any other database.
Go to Manage content databases in the central admin and make sure you have the restored database attached to the web application and the number of site collections is not zero.
In my source application I have one site collection so it is showing a one in the Current number of site collections
Open the site in the browser and you should be able to see your site with a new user interface of SharePoint 2010.
This is how my site in MOSS 2007 looked like

(I have joined to screen shots in one pic to show the entire page)
This is how it looks in SharePoint 2010.
(I have joined to screen shots in one pic to show the entire page)
If your MOSS application has any custom web parts defined, you have to rebuild them on 64-bit machines if necessary and move the DLLs to the new server. Also you have to move the user controls from the 12 hive and place them in 14 hive of the new server. You also have to make changes to the web.config of application on the new server and register them as safe controls.

1 comment:

  1. Nice post, but my prdicament is sligtly diffent, the issue with MOSS 2007 deploymet is not with the hardware, but rather with the initial configuration. A single Farm, a singe Web application and a single Content database wa deployed. Right now due to the need to implement proper information architecture and because of issues with managing our almost 2 TB of data, it is required to seperate every department into seperate content databases.
    Can migration by database attach be used to do this.
    Note i am currently running MOSS 2007 and intend to migrate to sharepoint 2010