SharePoint 2013: Upgrade a Site Collection (User Interface and PowerShell)

Introduction

This article will explain how to upgrade a site collection to SharePoint 2013, by using the user interface and PowerShell.

I consider here that my site collection has already been migrated to the SharePoint 2013 server and is in actually in "SharePoint 2010" mode, like this:

http://spasipe.files.wordpress.com/2012/09/74.png?w=600&h=400

I divided the functionalities in different "Points", each of them having a * PowerShell * section which will detail the available modifications or interactions by using PowerShell.

Point 1: Self-service site upgrade

To access the self-service upgrade options, your site collection must be eligible, and must also respect 2 rules defined at the web application level:

  • A maximal size (10 MB by default),
  • A maximum number of sites (10 by default).

Site one rule is not respected, you had to migrate via PowerShell.

* PowerShell *

  • Get the web application parameters

$webApp = Get‐SPWebApplication < Web Application URL >
$webApp.SiteUpgradeThrottleSettings

http://spasipe.files.wordpress.com/2013/05/11.png?w=595&h=232

  • Modify web application parameters

$webApp = Get‐SPWebApplication ‐URL < Web Application URL >

$webApp.SiteUpgradeThrottleSettings.UsageStorageLimit = <value>

$webApp.SiteUpgradeThrottleSettings.SubwebCountLimit = <value>

$webApp.Update()

Point 2: The notification bar

The notification bar at the top of the site displays a message indicating that the site can be migrated.

Two options are available:

  • "Start now": Access to the page which allow to migrate the site or request an evaluation site,
  • "Remind me later": Hide the notification bar, for 30 days (by default).

* PowerShell *

1. Prevent users from using the self-service upgrade:

$site = Get-­SPSite <URL>

$site.AllowSelfServiceUpgrade = $FALSE

2. Changer the reminder delay / force upgrade
$webApp = Get‐SPWebApplication < Web Application URL >
$webApp.UpgradeReminderDelay <Number of days>
$webApp.Update();

If you set the "UpgradeReminderDelay" parameter to 0:

  • The link to hide the notification bar is removed,
  • The message indicates that the upgrade is now required.

http://spasipe.files.wordpress.com/2013/05/2.png?w=595

Point 3: The Health Checks

The "Health Checks" are a major step of the migration, because they will identify the potentials problems:

  • Conflicting content types,
  • Customized/unghosted files,
  • Missing galleries,
  • Missing parent content types,
  • Missing site templates,
  • Unsupported language pack references,
  • Unsupported MUI (multi-user interface) references.

Note that these Health Checks can be executed before and after the site collection upgrade.

To execute the "Health Checks":

1. Click on "Site collection health checks" link in the "Site Settings":

http://spasipe.files.wordpress.com/2012/09/122.png?w=241&h=309

2. Click on "Start checks" to launch the process.

http://spasipe.files.wordpress.com/2012/09/131.png?w=600&h=76

3. A summary is displayed, in our case 2 problems have been found:

  • The "Video" content type is in conflict with the new one – Delete or rename it,
  • A webpart definition is considered as customized file – In this case you can fix this problem by clicking on "Reset page to default".

http://spasipe.files.wordpress.com/2013/05/3.png?w=595&h=364

When you click on the "Reset page to default" link, you can choose to reset a specific page or all pages in the site by using the existing site template.

http://spasipe.files.wordpress.com/2013/05/4.png?w=595&h=158

* PowerShell *

  • Test‐SPSite : Launch the Health Checks on a site collection, with the ability to choose a specific rule to be verified.

Test‐SPSite ‐Identity <SiteURL> [‐Rule <RuleID>]

  • Repair‐SPSite : Launch the repair, with the ability to choose a specific rule to be repaired.

Repair‐SPSite ‐Identity <SiteURL> [‐Rule <RuleID>]

Point 4: Access the migration / Evaluation site collection request page

Click on "Start now":

http://spasipe.files.wordpress.com/2012/09/221.png?w=595

To access the migration page:

http://spasipe.files.wordpress.com/2012/09/84.png?w=536&h=283

Point 5: Evaluation site request

One new capability in SharePoint 2013 is to request an upgrade evaluation site, which will be a copy of your site, in SharePoint 2013 version.

This site will be available during 30 days (by default and configurable), before being deleted by a timer job (1 for each web application).

http://spasipe.files.wordpress.com/2013/05/5.png?w=595&h=277

Note : No data will be replicated from the « source » site to the copy, or the opposite; users should also be aware of the fact that this site is "short-lived".

Concerning the evaluation site creation, 2 possibilities:

  • You SQL Server version supports snapshots (Enterprise or Datacenter  version) and in this case a snapshot will be used,

http://spasipe.files.wordpress.com/2013/05/6.png?w=595

  • If not, a backup-restore will be used, and your site collection will be read-only during  the backup phase.

From the interface:

1. Click on "TRY A DEMO UPGRADE" to request a site evaluation request:

http://spasipe.files.wordpress.com/2012/09/92.png

2. Click on the button :

http://spasipe.files.wordpress.com/2012/09/101.png?w=503&h=179

3. Site collection administrator(s) is/are alerted by email when the upgraded copy is available.

http://spasipe.files.wordpress.com/2012/09/112.png?w=501&h=150

Why a day or two ? Because the creation process are managed by timer jobs (1 for each web application) which runs once a day:

http://spasipe.files.wordpress.com/2013/05/7.png?w=595

* PowerShell *

  • Evaluation site request

Request‐SPUpgradeEvaluationSiteCollection ‐Identity <Site collection URL>

Point 6: Site upgrade

1. On the migration page, you can launch the upgrade by clicking on "Upgrade this Site Collection"

http://spasipe.files.wordpress.com/2012/09/211.png?w=595

2. A message is displayed, inviting the user to request an evaluation copy, if he hasn’t “played” with it before.

http://spasipe.files.wordpress.com/2012/09/151.png?w=595

3. The migration starts, with the possibility to add a link in the status bar, with the "UpgradeMaintenanceLink" web application property.

Example :

http://spasipe.files.wordpress.com/2013/05/8.png?w=595&h=61

Result :

http://spasipe.files.wordpress.com/2013/05/10.png?w=595&h=37

Note: The link opens in the current page.

Point 7: End of the migration

1. The migration ends, a summary page is displayed:

http://spasipe.files.wordpress.com/2012/09/181.png?w=600&h=228

With :

  • A link to log files (verbose + errors/warnings),  stored in a hidden library named "Maintenance Log Library",

http://spasipe.files.wordpress.com/2013/05/111.png?w=595

  • A "What’s New" button which opens a help page,
  • A "Let’s see the new site" button which opens the homepage.

2. The upgraded site is displayed correctly

http://spasipe.files.wordpress.com/2012/09/191.png?w=595

* PowerShell *

  • Launch a site collection upgrade, even if throttling limits are reached,

Upgrade-SPSite <Site collection URL> -VersionUpgrade -Unthrottled

  • Launch a site collection upgrade, with queuing the upgrade

Upgrade-SPSite < Site collection URL > -VersionUpgrade -QueueOnly

Point 8: Upgrade queue management

Last but not least, the SharePoint administrator can manage the upgrade queue, only with PowerShell !

  • Site collections in the queue (Note the ShowInProgress / ShowCompleted / ShowFailed parameters)

Get-SPSiteUpgradeSessionInfo -ContentDatabase <Database name> -ShowInProgress -ShowCompleted -ShowFailed

http://spasipe.files.wordpress.com/2013/05/12.png?w=595&h=56

Several informations are displayed (the image is just an extract):

http://spasipe.files.wordpress.com/2013/05/13.png?w=595&h=141

  • Site collection upgrade status

Get-SPSiteUpgradeSessionInfo -Site < Site collection URL>

For the informations displayed, see the screenshot above.

  • Add a site collection in the queue

Upgrade-SPSite < Site collection URL> -VersionUpgrade -QueueOnly

  • Remove a site collection from the queue (if it’s not being upgraded)

Remove-SPSiteUpgradeSessionInfo -Identity < Site collection URL>

Point 9: Throttling

  • Number of simultaneous upgrades allowed per application pool

$wa = Get‐SPWebApplication ‐URL < Web Application URL >

$wa.SiteUpgradeThrottleSettings.AppPoolConcurrentUpgradeSessionLimit=<Value>

  • Number of simultaneous upgrades allowed per database

$db = Get-SPContentDatabase <Database name>
$db.ConcurrentSiteUpgradeSessionLimit

  • Maximum size to allow self-service upgrade

$wa.SiteUpgradeThrottleSettings.UsageStorageLimit=<Value>

  • Maximum number of sub-sites  to allow self-service upgrade

$wa.SiteUpgradeThrottleSettings.SubwebCountLimit=<Value>

References

This article is part of a series of articles dedicated to the Migration to SharePoint 2013.

They are actually written in French and hosted on my blog, but I will translate and transfer them on the TechNet Wiki.