Part 4 Migration From SharePoint 2010 to 2016
Migrate to SharePoint 2016
Having successfully migrated from SharePoint 2010 to SharePoint 2013, the next stage is to complete the move to SharePoint 2016. These instructions would work just as well for anyone simply migrating from SharePoint 2013 to SharePoint 2016 (without the prior migration from SharePoint 2010).
Before starting the migration, it is important to remember that you must change to SharePoint 2013 Experience. SharePoint 2016 fails if you attempt to migrate without making this change.
Once the change has been made, backup the 2013 versions of the content database, the secure store database, the BDC service database, the Sync database, the Profile database, the Social database and the Managed Metadata database.
Delete all databases.
Install SharePoint 2016 on the new front end server and apply all updates and Cumulative updates.
Restore the databases to the SQL Server.
Note: Use the same domain user account called <domain>\SharePointService that was used during the SharePoint 2013 migration. This may need to be a local administrator to perform the following operations.
Open SharePoint 2016 Management Shell
Whilst the following commands could in theory be all run at once, I have found it best to copy and paste a few commands at a time.
You will need to substitute your domain name for <domain>, the password for the SharePointService account for <password> and the front end server name for <server name> . You can change the port number of the MySite Web Application from 11003 to another if desired.
$ap = New-SPAuthenticationProvider
New-SPWebApplication -Name “SharePoint – 80” -ApplicationPool “SharePoint – 80” -ApplicationPoolAccount “<domain>\SharePointService” -Port 80 -URL “http://<server name>” -AuthenticationProvider $ap
New-SPWebApplication -Name “SharePoint – MySite” -ApplicationPool “SharePoint – MySite” -ApplicationPoolAccount “<domain>\SharePointService” -URL “http://<server name>:11003” -AuthenticationProvider $ap
Upgrade the SecureStore Service Application
New-SPServiceApplicationPool -Name ‘SecureStoreServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SecureStoreServiceApplicationPool’
$sss = New-SPSecureStoreServiceApplication -Name ‘Secure_Store_Service’ -ApplicationPool $applicationPool -DatabaseName ‘Secure_Store_Service_DB’ -AuditingEnabled
$sssp = New-SPSecureStoreServiceApplicationProxy -Name ‘Secure_Store_Service_Proxy’ -ServiceApplication $sss -DefaultProxyGroup
Update-SPSecureStoreApplicationServerKey -Passphrase <passphrase> -ServiceApplicationProxy $sssp
Upgrade Business Data Connectivity service application
New-SPServiceApplicationPool -Name ‘BDCServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘BDCServiceApplicationPool’
New-SPBusinessDataCatalogServiceApplication -Name ‘BDC Service’ -ApplicationPool $applicationPool -DatabaseName ‘BDC_Service_DB’
Upgrade the Managed Metadata service application
New-SPServiceApplicationPool -Name ‘SharePoint – Managed Metadata’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SharePoint – Managed Metadata’
$mms = New-SPMetadataServiceApplication -Name ‘Managed Metadata Service’ -ApplicationPool $applicationPool -DatabaseName ‘Managed_Metadata_Service_DB’
New-SPMetadataServiceApplicationProxy -Name ‘Managed Metadata Service Proxy’ -ServiceApplication $mms -DefaultProxyGroup
Upgrade the User Profile service application
New-SPServiceApplicationPool -Name ‘SharePoint – User Profiles’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SharePoint – User Profiles’
$upa = New-SPProfileServiceApplication -Name ‘User Profiles’ -ApplicationPool $applicationPool -ProfileDBName ‘User_Profile_Service_Application_ProfileDB’ -SocialDBName ‘User_Profile_Service_Application_SocialDB’ -ProfileSyncDBName ‘User_Profile_Service_Application_SyncDB’
New-SPProfileServiceApplicationProxy -Name ‘User Profiles Proxy’ -ServiceApplication $upa -DefaultProxyGroup
Upgrade the PerformancePoint Services service application
New-SPServiceApplicationPool -Name ‘PerformancePointServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘PerformancePointServiceApplicationPool’
$pps = New-SPPerformancePointServiceApplication -Name ‘PerformancePoint Service’ -ApplicationPool $applicationPool -DatabaseName ‘PerformancePoint_Service_Application_DB’
New-SPPerformancePointServiceApplicationProxy -Name ‘PerformancePoint Service Proxy’ -ServiceApplication $pps -Default
Verify that all new proxies are in the default proxy group
$pg = Get-SPServiceApplicationProxyGroup -Identity ” “
$pg.Proxies
Restore WSS_Content database
On the Front End Server
Mount-SPContentDatabase -Name WSS_Content_2016 -DatabaseServer <database server> -WebApplication http://<server>
Restore WSS_Content database
On the Front End Server
Mount-SPContentDatabase -Name WSS_Content_MySite -DatabaseServer <database server> -WebApplication http://<server>:11003
This shows which databases need upgrading
Get-SPContentDatabase | ft Name, NeedsUpgradeIncludeChildren
This command checks for problems
PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures