1. Getting Started
Microsoft SharePoint, which was launched in 2001, is evolved through many phases of development and enhancements. Starting from WSS 3.0 (Windows SharePoint Services), currently we are using SharePoint 2019 (the most recent release from Microsoft SharePoint). Considering the fact that Microsoft tried to improve version with many advance features and tried to satisfy the customer demands using single platform. Many organizations have already shifted from old version to newer and rest are in the process.
SharePoint Migration at very high level divided into two different types:
- Migration from one version of SharePoint to the higher version
- Migration from any ECM system (Enterprise Content Management) to SharePoint, e.g. Lotus notes
In this paper “SharePoint Migration Overview” we will be discussing about first type of migration i.e. “Migration from one version of SharePoint to the higher version”.
There are multiple ways of Migration to most recent version of SharePoint, such as
- Migration of SharePoint using 3rd party tools such as DocAve, Sharegate, Metalogix (Quest) etc.
- Manual migration (the native migration approach) using different practices such as In-place migration, DB Detach / Attach method.
Though there is no such industry standard on selecting the migration approach that you can use, there are few parameters or factors, which helps to decide correct or feasible migration approach.
Below table highlights such factors and supported migration approach:
|FEATURE / REQUIREMENT||THIRD-PARTY TOOL||MANUAL MIGRATION|
|Change content structure (restructure) during migration||Yes||No|
|Condition based content migration||Yes||No|
|Skip Intermediate version during migration e.g. Migration from SharePoint 2010 to SharePoint 2016 by skipping SharePoint 2013||Yes||No|
|Avoid purchasing any extra software for migration and save the cost||Third-Party Tools can cost considerable amount and these tools are of no use post migration||No Extra Cost|
|Incremental Content Migration||Yes||No|
|Speed of migration||Slow compared to Manual Migration||Faster than Third-Party Tools, however, takes time if migration involves multiple versions of SharePoint e.g. Migration from SharePoint 2007 to SharePoint 2016|
|Extra Hardware Required||Yes, for some of the tools||Yes, incase its multi-level migration|
Above summary table is based on our experience and the exposure we have received; and it may differ from case to case.
At this stage, now we are aware about different options available and their feature lists. About Third-Party migration tools – all the tools are simple to use, and any SharePoint admin can use them for migration, hence we will skip this part and focus more on the Native Migration Approach / Manual Migration approach in detail.
Native Migration / Manual Migration Approach
Multiple steps involved during Migration process and those may repeat for Multi version SharePoint migration. Let’s cover all these steps in details for migration from SharePoint 2013 to SharePoint 2016.
3.1. SharePoint 2013 to SharePoint 2016 Migration
At high level, below diagram depicts the Migration process
Figure 1: SharePoint Migration Steps
3.2. SharePoint 2013 farm analysis
The first step before starting any migration is to analyze the source of migration, the good news here is Microsoft has provided really smart utility to perform pre-migration analysis. The utility name is SMAT (SharePoint Migration Assessment Tool). This SMAT utility can be downloaded from here.
SMAT does the assessment of entire Farm and creates the inventory for the same. This utility generates different reports and downloads the custom solutions as well. These reports provide below details:
- SharePoint Version
- SharePoint Farm ID
- Number of Sites in the Farm
- Size of the Farm (MB)
- Farm Level Features with Migration Issues
- Managed Metadata Lists
- Unsupported Web Template
- File Versions
- Checked Out Files
- Customized Pages
- Publishing Sites
- Full Trust Solutions
- Non Default Master Pages
- Large Excel Files
- Publishing Pages
- Large Lists
- Workflow Associations 2010
- InfoPath from usage
- Email Enabled Lists
- Custom Permission Level
- Sandbox Solution
- Large List Views
- Site Template Usage Summary
3.3. Cleanup SharePoint 2013 sites
This is an optional step to start any migration, though its optional but it’s very important to perform the cleanup activity. There can be unused content / solutions in old SharePoint Farm, which no longer required in New Farm, hence same can be removed to have better cleaner version of New Farm.
One can refer to reports generated by SMAT tool, to identify some of the non-required content / applications / solutions and remove same. This will also smoothen the migration activity.
3.4. Backup Content Databases and custom solutions from SharePoint 2013
There are multiple ways that SQL Admin can use to backup existing Content Database and Restore same to SQL Server in new SharePoint 2016 Environment. one of the approaches is to use SQL Backup commands. Below are the steps / commands used to perform SQL database backup:
- Open SQL Server Management Studio in SharePoint 2013 environment and run following SQL query to get backup of the content DB
BACKUP DATABASE WSS_Content TO DISK = ‘E:\DBBackup\WSS_Content.bak’
- In above command “WSS_Content” is the Content database name and “E:\DBBackup\WSS_Content.bak” is the path where the backup file will be created.
3.5. Restore Content Databases to SharePoint 2016 Server
Restore the above database backup into the SharePoint 2016 SQL (New Environment), below are the steps to restore the databases in new environment:
- Open SQL Server Management Studio at new environment. Run following SQL Query to Restore the backup database.
RESTORE DATABASE WSS_Content
- Once we are done with restoring the Database, next tasks are for SharePoint Administrators.
3.6. Create new Web Application
Create new web application in SharePoint 2016 (if the SharePoint 2013 web application uses any Managed Path, you need to create same paths in SharePoint 2016 and use this path to create site collections under this newly created web application).
3.7. Mount Restored Databases
This is very important step in SharePoint migration, this step is divided into following sub actions and need to be performed in the given sequence:
- Detach content database from newly created web application.
- Open power shell command.
- Run following command to detach the existing content database from newly created web application.Dismount-SPContentDatabase WSS_New_DB
Note: In above command “WSS_New_DB” is existing content database name.
- Attach the restored database to the newly created web application.
- Run following PowerShell command (you will also get upgrade log report):
Mount-SPContentDatabase “WSS_Content” -DatabaseServer “V-COLLAB3-NEW\SHAREPOINT” -WebApplication http://v-collab3-new:1234/
|PS C:\Users\Administrator> Mount-SPContentDatabase “WSS_New_DB” -DatabaseServer “V-COLLAB3-NEW\SHAREPOINT” -WebApplication http://v-collab3-new:1234/100.00% |
Mount-SPContentDatabase: Upgrade completed with errors.
Review the upgrade log file located in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS\Upgrade-20110731-231748-447.log.
The number of errors and warnings is listed at the end of the upgrade log file.
- Test-SPContentDatabase -name WSS_Content -webapplication http://v-collab3-new:1234/Test Restored content DB to identify the customization which is not installed on new web app.
- Run following PowerShell command to test the newly attached content database (this command will help to identify what features and components are referred in content database but not installed on web application).
Above command list downs missing feature details, along with any other issues from migration, below section explains the deployment of custom solutions to fix above features related issues.
3.8. Deploy Custom Solution’s
This is the last step in migration, wherein the custom solutions will be deployed. This step can also be run after Mount command mentioned in above section. Use below mentioned PowerShell commands to deploy custom solutions in SharePoint 2016 farm.
- Add-SPSolution “E:\SolutionFiles\Intranet.Portal.wsp”
In above command “E:\SolutionFiles\Intranet.Portal.wsp” is local path of your wsp file.
- Install-SPSolution –Identity Intranet.Portal.wsp –WebApplication “http://v-collab3-new:1234/” –GACDeployment
In above command http://v-collab3-new:1234/ is your URL of newly created web application in SharePoint 2016 environment.
Once we are done with deploying custom solutions, all missing features will be available and we can verify the working of migrated site.
Above are all standard migration steps and can be used for any SharePoint migration in on-prim environment only.
4. Wrap up / Conclusion
We hope you find these steps helpful in making your SharePoint Migration successful. Please do revert / share your feedback or amendments (if any) for above section.