Migration Guide – SharePoint 2013 to SharePoint 2016/SharePoint 2019:
Step by Step Guide to Migrate from SharePoint 2013 to SharePoint 2016 – Part 1
Step by Step Guide to Migrate from SharePoint 2013 to SharePoint 2016 – Part 2
Step by Step Guide to Migrate from SharePoint 2013 to SharePoint 2016 – Part 3
Step by Step Guide to Migrate from SharePoint 2013 to SharePoint 2016 – Part 4
Welcome to the 5th part of our series detailing how to migrate from SharePoint 2013 to 2016. In the previous parts, we configured a new SharePoint Server 2016 environment, copied databases from the SharePoint Server 2013 (SP1) environment to the SP 2016 environment and upgraded the service applications. We will now discuss how to upgrade the content databases from version 2013 to 2016.
- To attach a database, make sure that your account is a member of db_ownerfixed database role (for the content database that is to be upgraded).
- To create web applications, make sure that your account is a member of the Farm administrators group (Central Administration).
In SharePoint 2016, you need to create separate web applications for each one that exists in the 2013 environment. Consider the following suggestions for creating new web applications:
- For the correct redirection of Office applications, and easy functioning of old bookmarks, use the same URL (including port, name and host header). Configure alternate-access mapping settings also.
- Claims-based authentication is the default setting in SharePoint 2016. If you have web applications using Windows Classic authentication in SharePoint 2013, use Windows PowerShell and create a web application with the same authentication method.
- Recreate managed paths and quota templates.
- For the web application, configure email settings.
- For web applications that had self-service site creation (in the SharePoint 2013 environment), enable the same and recreate the settings.
- For the web application that hosts My Sites (in SharePoint Server), create the managed path.
- Recreate web application policies and other settings if any have been there (in the SharePoint 2013 environment).
Before upgrading the content database, you need to transfer all customization manually to the new farm. Install custom elements (like site definitions, stylesheets, Web Parts, Web services, features/solutions, assemblies, Web.config changes, form templates & data connection files for InfoPath, and other components/files) from the old environment to the front-end servers.
Note: Make sure that you install customisations in the correct locations as two paths (15 & 16) are available. For example:
- Web Server Extensions/15/TEMPLATE/Features & Web Server Extensions/16/TEMPLATE/Features
- _Layouts, _Layouts/16 and _ControlTemplates & _ControlTemplates/16
For more information, please visit: https://technet.microsoft.com/en-us/library/ff607534(v=office.16).aspx
How to identify the custom components of the SharePoint Server 2013 SP1 environment
- To identify the custom components of sites in SharePoint Server 2013 SP1, use the Stsadm -o enumallwebsoperation with includefeatures and includewebparts This enables you to find Web Parts, features, templates and other custom elements for the sites. For more information, see: https://technet.microsoft.com/library/dd789634(v=office.12).aspx
- To identify the templates associated to in SharePoint Server 2013 SP1 sites and verify them in 2016, use Get-SPWeb cmdlet. For more information, see: https://technet.microsoft.com/en-us/library/ff607807(v=office.16).aspx
How to verify the availability of custom components in the new SharePoint 2016 environment
Run the cmdlets in the following syntax in the SharePoint 2016 Management Shell:
|Test-SPContentDatabase -Name <Database Name> -WebApplication <URL>|
Note: Before starting, ensure that your account has memberships in securityadmin fixed server role (SQL Server instance), db_owner fixed database role (on the to-be-updated databases) and Administrators group (to run Windows PowerShell cmdlets on the server). The permissions to use SharePoint Server 2016 cmdlets can be given (by administrators) using Add-SPShellAdmin cmdlet. For more details, please visit: https://technet.microsoft.com/en-us/library/ff607941(v=office.16).aspx
How to attach a content database to a web application and upgrade
In this step, the database is upgraded and the site collections are added to the required web application. The site collection upgrade process starts after this step has been completed. After successfully attaching the 2013 databases, you can delete the content databases that are created by default in the 2016 web applications.
With web applications that spread across multiple content databases, you first need to attach the root site content database and then you can attach other databases in the order you like. A new site collection can also be added after first restoring all the content databases. With My Sites, attach the content database with the My Site host first, and then attach the one with My Sites.
When upgrading to a different domain, forest or environment with different service accounts, ensure that permissions for those service accounts are correct prior to attaching the database.
Note: You cannot add the same site collection multiple times in the same farm (even if you are attempting in different web applications). If you need a copy of the site collection, try the backup and restore process in a separate farm.
Attaching content database to a web application using Windows PowerShell
Before starting, ensure that your account has memberships in securityadmin fixed server role (SQL Server instance), db_owner fixed database role (on the to-be-updated databases) and the Administrators group (to run Windows PowerShell cmdlets on the server). The permissions to use SharePoint Server 2016 cmdlets can be given (by administrators) using Add-SPShellAdmin cmdlet. To attach a content database to the web application, run the cmdlets in the following syntax in the SharePoint 2016 Management Shell:
|Mount-SPContentDatabase -Name <Database Name> -DatabaseServer <Server Name> -WebApplication <URL>|
How to verify the upgrade status and get details?
You can verify the upgrade status of a database using the SharePoint Management Shell (with the same permissions as given above). You can check the status when the shell returns the list of databases in the farm. To do this, use the cmdlets:
|Get-SPContentDatabase | ft Name, NeedsUpgradeIncludeChildren|
After attaching the databases, you can also use the Central Administration (Upgrade Status page) to view the status of the upgrade (if your account is member of the db_owner fixed database role). To view the upgrade status:
- In Central Administration, click Upgrade and Migration; click Check upgrade status.
You can also check the upgrade log file and upgrade error log file (at %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\16\LOGS) to get the details of errors if there are any. These logs show a summary of details at the bottom. The name formats of the log files are:
Attaching more content databases and any additional steps
After successfully restoring the first content database, you can proceed with other databases. You can also upgrade multiple databases simultaneously, provided you use separate Windows PowerShell command prompts. It is advised that you start different sessions at different times to avoid errors. You can verify the upgrade process in the same way as described above.
Ultimately, you may want to migrate user accounts to claims authentication. You can also update the links in upgraded form templates, perform a full crawl and backup the farm. For details, see:
Final verification after the database-attach upgrade process
A final verification after the database-attach upgrade process helps ensure that everything is in place. It helps to identify and fix issues if there are any. For this, you need to verify the final status of the content upgrade, check the log files to see the errors and validate the new environment.
To view the upgrade status of the databases, use the home page of the Central Administration; as described earlier in this post. Here you can see the upgrade statuses of the farm, service or content databases (including errors and warnings). To check for errors, you can use the upgrade log file and upgrade error log file as described earlier in this post. To validate the new environment, review Service applications, Site collections and Search in the new environment.
If you have followed these steps correctly, then you should have successfully upgraded the content databases from SharePoint 2013 SP1 to SharePoint 2016 and completed the migration.