upgrade on-premise sites from sp2010 to sp2013: problems and solutions
DESCRIPTION
Describes experience of upgrading on-premise intranet and extranet sites from Sharepoint 2010 to Sharepoint 2013, including found problems and solutions for them.TRANSCRIPT
UPGRADE ON-PREMISE SITES FROM SP2010 TO SP2013
Problems and solutions
Alexey SadomovPhD, Sharepoint MVP
http://sadomovalex.blogspot.com
High-level steps
1. Create SP2013 farm 2. Copy databases to new farm 3. Upgrade service apps 4. Upgrade content databases 5. Upgrade site collections
Upgrade plansPlan 1.
2-3 iterations
1. SP 2013 farm setup
2. Transfer customizations (SP 2010 mode)
3. Upgrade content dbs and
service apps
4. Test site collections in SP
2010 mode
6. Install updated customizations (SP 2013 mode)
7. Upgrade site collections to 2013 mode
8. Test site collections in SP
2013 mode
5. Update custom solutions for SP
2013
Plan 2. 2-3 iterations
1. SP 2013 farm setup
3. Transfer customizations (both SP 2010
and 2013 mode)
4. Upgrade content dbs and
service apps
5. Upgrade site collections to 2013 mode
6. Test site collections in SP
2013 mode
2. Update custom solutions for SP
2013
Actual plan.
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Upgrade service apps
2 service apps: Managed metadata service application Search service application
Managed metadata is upgraded by powershell:
Search service application is created from scratch and content is recrawled
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
$MMSServiceInstance = get-spserviceinstance | ? {$_.Typename -eq "Managed Metadata Web Service"}Start-SPServiceInstance $MMSServiceInstance$MMSServiceApp = New-SPMetadataServiceApplication -ApplicationPool "AppPool" -Name "Managed Metadata Service" -DatabaseName "Managed_Metadata_Database"$MMServiceAppProxy = New-SPMetadataServiceApplicationProxy -name "Managed Metadata Service Proxy" -ServiceApplication $MMSServiceApp
Transfer SP2010 customizations to SP2013 farm
Create web applications with the same host headers (claims authentication)
Deploy wsp packages for SP2010 on SP2013 farm as is (to 14 hive): Install-SPSolution -Identity MyPackage.wsp -CompatibilityLevel 14 –
GACDeployment
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Upgrade of content databases
Error from Test-SPContentDatabase:
Mount-SPContentDatabase didn’t work
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Category Configuration
Error False
UpgradeBlocking False
Message The [example.com] web application is configured with claims
authentication mode however the content database you are trying to
attach is intended to be used against a windows classic
authentication mode.
Remedy There is an inconsistency between the authentication mode of target
web application and the source web application. Ensure that the
authentication mode setting in upgraded web application is the
same as what you had in previous SharePoint 2010 web application.
Refer to the link "http://go.microsoft.com/fwlink/?LinkId=236865" for
more information.
Locations
Upgrade of content databases
Recreated web app with Windows authentication Error from Test-SPContentDatabase:
Mount-SPContentDatabase works, but we changed authentication type from Windows to Claims via powershell
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Category Configuration
Error False
UpgradeBlocking False
Message The [example.com] web application is configured with windows classic
authentication mode however the content database you are trying to
attach is intended to be used against a claims authentication mode.
Remedy There is an inconsistency between the authentication mode of target
web application and the source web application. Ensure that the
authentication mode setting in upgraded web application is the same
as what you had in previous SharePoint 2010 web application. Refer to
the link "http://go.microsoft.com/fwlink/?LinkId=236865" for more
information.
Locations
Test site collections in 2010 mode on 2013 farm
Ribbon was totally broken Publishing pages in edit mode were
broken Reimplemented custom master pages
using OTB Sharepoint 2013 master page as base
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Test site collections in 2010 mode on 2013 farm
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Upgrade custom solutions for Sharepoint 2013
Created new empty Sharepoint 2013 project and copied artifacts one by one
Used the same solution ids for wsps Compared content of wsp packages after upgrade was done Simple way:
edit .csproj file in the notepad and replace value for TargetFrameworkVersion tag from v3.5 to v4.5
then go to Package subfolder in your project folder and edit Package.package file: add attribute sharePointProductVersion="15.0" after existing resetWebServer attribute.
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Install updated customizations
Run health check from Site settings: a lot of files were shown as customized. Uncustomize them via powershell (SPFile. RevertContentStream())
Retract 2010 wsps from 14 hive Deploy 2013 wsps to only 15 hive:
Install-SPSolution -Identity MyPackage.wsp -CompatibilityLevel 15 –GACDeployment
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Install updated customizations
15 Solution Deployment Defaults (from Sean Livingston‘s SPC2012)
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Upgrade site collections to 2013 mode
Upgrade site collections via powershell: Upgrade-SPSite http://example.com/ -VersionUpgrade –Unthrottled
Upgrade via UI worked only when 2013 wsps were deployed both to 14 and 15 hives
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Test site collections in 2013 mode
Front page showed File not found error In content database AllDocs table column SetupPathVersion has
4 value for most files (for 2013 sites it should contain 15) Problems comes from Sharepoint virtual file providers’s fallback
logic Sharepoint tried to find files (page layouts, master pages) in 14
hive, not in 15 SetupPath file fallback logic didn’t work as expected (should
check current CompatibilityLevel version directory first then legacy one(s))
Quick fix by changing content database (don’t use it): update [dbo].[AllDocs] set [SetupPathVersion] = 15
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Workaround 1 for incorrect fallback logic
Created list of all page layouts and masterpages, used in the migrated sites.
Copied all of them as is, without modifications, but with new file names. It is important to not change web part zones during this process, because if e.g. Id of web part zone would be changed, we would lost the content after replacing of the original page layouts. For file names we used the following rule: [old file name] + “2013” + [old extension], i.e. if old file name was foo.aspx, then new is foo.2013.aspx.
Created new feature which contains new page layouts and masterpages, provisioned it and activated on the sites.
Created PowerShell scripts which recursively changed masterpages on all sub sites and page layouts of all publishing pages.
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Workaround 2 for incorrect fallback logic
Give the SP 2013 solution a new Solution ID. Install SP 2010 solution to 14 hive and SP 2013 solution to 15 hive on SP2013 server. Give all site definitions in SP 2013 solution a higher Revision number for example:
<Project Title="Migrationtest" Revision="3" .../>
Create Upgrade.xml file (destination: {SharePointRoot}\CONFIG\UPGRADE\) where add a webtemplate element for every site definition you use:
Attach SP 2010 content database to SP 2013. Do visual upgrade:
Upgrade-SPSite -Identity <url>
Close and reopen powershell console and perform version upgrade: Upgrade-SPSite -Identity <url> -VersionUpgrade
After that paths of the files of upgraded sitecollection should be changed
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
Test site collections in 2013 mode
Images in Site collection images document library and xslt files in Style library, which were added before upgrade, returned HTTP 404 File not found error. All images thumbnails were shown properly Solution: delete upgraded files and then re-upload them with the same file names
Fix /_layouts and /_controltemplate paths in code to /15/_layouts and /15/_controltemplates
Changed Revision (incremented on 1) and UIVersion in custom web templates’ onet.xml from 4 to 15
1. SP 2013 farm setup
3. Transfer customizations (SP 2010 mode)
2. Upgrade service apps databases
5. Test site collections in SP
2010 mode
7. Install updated customizations (SP 2013 mode)
8. Upgrade site collections to 2013 mode
9. Test site collections in SP
2013 mode
6. Update custom solutions for SP
2013
4. Upgrade content
databases
External resources
Author’s blog: http://sadomovalex.blogspot.com Technet:
http://technet.microsoft.com/en-us/library/cc262483(v=office.15).aspx
SharePoint 2013 Upgrade Deep Dive: http://video.ch9.ms/sessions/spc/2012/SPC210_Livingston.pptx