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

About the author: Author

Leave a Reply