Having just completed a multiple web application migration from Sharepoint 2010 to Sharepoint 2013 (and to pat myself on the back, having done so with a total of less than 10 minutes of down time in either environment) I thought I would share the process that worked most effectively for me. Hopefully some other poor soul having to go through this exercise will find it useful. If it saves you any significant amount of time, consider hitting the donate button on the right. 🙂
Step One – Backup and Restore Sharepoint Content Databases
Back up any existing content databases associated with the web application you want to migrate.
- Open SQL Server Management Studio on a system with access to the SQL Server running your Sharepoint 2010 Content Database
- Find the database(s) associated with the web application you are migrating. If you’re unsure which content database is associated with a specific web application, you can find out by visiting Central Administration on your Sharepoint 2010 server and navigating to “Databases>Manage Content Databases”
- Once you know the databases you want to migrate, back up each database using SQL Server Management Studio. I find it easiest to back them up to disk in a location that is accessible to both the Sharepoint 2010 and 2013 servers to make the backup/restore process as simple as possible.
- Repeat the database backup process for each content database associated with the web application you’re migrating. Another tip is to segregate each web application and treat it as its own migration if you have multiple web applications. This makes it easier to troubleshoot and deal with any issues that come up during the migration process.
- Once all of your database backups are completed, restore each – one at a time – to the Sharepoint 2013 SQL Server instance.
Step Two – Create new matching web application in your Sharepoint 2013 Environment and mount content database
- Using the Sharepoint 2010 environment as a guideline, create a new web application in your 2013 envrionment that matches as closely as possible (settings, port number) the Sharepoint 2010 web application. Don’t worry that the internal host name is different at this time. There is also no need to worry if the app isn’t on the port you’d like in the 2013 environment at this time – we can change that later in the process.
- After you’ve succesfully restored all content databases to your 2013 environment, you’ll want to mount each content database to the web application you created in step 1.
- Open a Sharepoint Powershell Management console (make sure to start the console as an Administrator on the 2013 server) and use the following command to mount the content datbase:
- Mount-SPContentDatabase “MyDatabase” -DatabaseServer “MyServer” -WebApplication http://sitename
- Repeat step 3 for each Content Database that should be associated with this web application in your new 2013 environment.
Step Three – Migrate site collection users/permissions
- Still in an Administrative Sharepoint Powershell console, enter the following commands, one line at a time, to migrate the site collection users and permissions for this web application.
- $wa = get-SPWebApplication $WebAppName
- $wa.MigrateUsers($true)
- $wa.ProvisionGlobally()
Step Four – Convert your web application to claims based authentication
Applications in Sharepoint 2013 take advantage of claims based authentication. “Classic” web applications (the default in Sharepoint 2010) are now deprecated. While your web application will continue to function after migration without this step, you’ll run in to issues if you wish to later utilize Office Web Apps or other services in the 2013 environment that take advantage of Claims Based Authentication.
To prevent those issues, we will concert the web application to Claims Based Authentication in our new environment.
To do that, still in an Administrative Sharepoint Powershell Console, enter the following command:
Convert-SPWebApplication -Identity “https://yourwebappurl” -To Claims – RetainPermissions [-Force]
At this point, you should be able to browse to your web application and confirm that both the content and user/user permissions have migrated successfully.
There are other steps you’ll want to take to insure seamless functionality between environments depending on the services you’re utilizing or intend to utilize. Each of these seperate steps is better covered by other articles on the web – but as a point of reference, the additional steps I needed to take in my environment included:
- Migration of the Business Data Catalog and Secure Store Service
- Migration of External Content type definitions for specific site collections
- Setup and configuration of the Office Web Apps server associated with the Sharepoint 2013 environment
- Setup of an app catalog domain, and Sharepoint Store app catalogs and app URLs
Good luck, and please leave any feedback in the comments.