Project Server 2013 Migration from one farm to another

Project Server 2013 Migration

In this article, we’ll explain how to perform Project Server 2013 migration to move PWA instance from one farm to another.


Move PWA Instance from one farm to another farm in Project Server 2013

Consider, you have production and staging environments for Project Server 2013, and you would like to move PWA instance from the production farm to the staging farm or from staging to production.

So the important question is How we can move and migrate PWA instance between two farms?

Project Server 2013 Migration Move PWA Instance from one farm to another
Project Server 2013 Migration

In the next section, we will explain step by step how to perform PWA instance migration from one farm to another in a correct and smooth way.

You might also like to read Migrate from Project Server 2013 to Project Server 2016.

Project Server 2013 Migration Guide

Here, we will consider that we’re gonna performing Project Server 2013 Migration from Staging environment to Production environment.

Therefore, to organize the migration process, we will divide our steps into two main parts, some steps will be performed on the first farm (Staging Environment), and other steps will be performed on the second farm (Production environment).

PWA 2013 Migration Steps on Staging Environment

On the Project Server 2013 Staging farm , we should do the following:

  1. Get the Web Application content databases.
  2. Get the PWA ‘Project Web App’ database name.
  3. Perform a full database backup for the PWA instance database.
  4. Perform a full database backup for the web application content databases.
  5. Backup all the deployed SharePoint solutions (WSP) on your farm if exist.

Get the Web Application content databases

  • Open SharePoint Management Shell as Administrator.
  • Run “Get-SPContentDatabase” to get the attached content databases for the web application that holds the PWA instance.
Get-SPContentDatabase -WebApplication http://epm
Get SharePoint Content Database using PowerShell

In our case, we have two content databases:

  • WSS_Content.(The Main web application Content Database that holds the root site collection).
  • WSS_Content_PWA.(An independent Content Database for PWA site collection).

Get PWA Database Name

  • Open SharePoint Management Shell as Administrator.
  • Run “Get-SPProjectWebInstance” to get the PWA instance details.
Get-SPProjectWebInstance
  • In our case, I have one PWA instance ‘http://epm/pwa’ with a project database called “ProjectWebApp”.
Get-SPProjectWebInstance - PWA Migration

You might also like to read Get PWA Instance Details using PowerShell

Perform a full database backup for the PWA Instance Database

  • Open SQL Server Management Studio.
  • Connect to the SQL Server instance.
  • Backup PWA Instance Database, In our case, it is “ProjectWebApp”.
PWA Databases in SQL Server
  • Right click on Database name > Tasks > Back Up.
Perform PWA database backup
  • Ensure Backup type is Full > Disk > Select the back up path > OK.
PWA Database Backup Settings
  • Backup has been taken successfully.
The database backup completed successfully

Alternatively, you can use the following T-SQL to take a full database backup:

BACKUP DATABASE WSS_Content_PWA
TO DISK = 'C:\WSS_Content_PWA.BAK'
GO

Perform a full database backup for the web application content databases

  • Repeat the above backup steps for the following content databases:
    • WSS_Content.
    • WSS_Content_PWA.
  • Once you have finished, check the backup path to make sure that the required database backup has been taken as shown below.
PWA Database Backup list

Backup all the deployed SharePoint solutions (WSP)

If you have custom solution in your farm, so you will need to backups these WSP solutions from the first farm and deploy it to the destination farm.

backup all the deployed WSP solution in your farm
  • Create a ‘WSPSolutions’ folder at any location.
  • Open SharePoint Management Shell as Administrator.
  • Run the below cmdlets to backup all the deployed WSP solution in your farm.
$FolderPath = "c:\WSPSolutions"
foreach ($solution in Get-SPSolution)
{
$id = $Solution.SolutionID
$title = $Solution.Name
$filename = $Solution.SolutionFile.Name
$solution.SolutionFile.SaveAs("$FolderPath\$filename")
}

You might also like to read Install and deploy SharePoint Solution Package (WSP) Using PowerShell


PWA 2013 Migration Steps on Production Environment

On the Project Server 2013 Production farm , we should do the following:

  1. Prepare Project Server 2013 farm.
  2. Take a full database backup for the following database to enable the rollback if the migration process failed.
    • ProjectWebApp.(Projects Database).
    • WSS_Content.(The web application Content Database).
    • WSS_Content_PWA.(In case of you are using an independent Content Database for PWA Instance).
  3. Dismount Project Web App Instance.
  4. Dismount PWA Instance Content Database.
  5. Dismount Web Application Content Databases.
  6. Restore the source database backup.
  7. Mount ‘WSS_Content’ Content Database.
  8. Mount ‘WSS_Content_PWA’ Content Database.
  9. Mount ‘ProjectWebApp’ Project Database.
  10. Mount the PWA Instance.
  11. Deploy your custom WSP solution if exist.
  12. Change the site collection administrator.
  13. Change PWA Instance Administrator.
  14. Perform a Bulk Update connected to SharePoint sites.
  15. Update Project Server Cube settings.

Install and configure Project Server 2013

In this article, we’ll not cover the detail steps to prepare the Project Server 2013 destination farm. however, we just will outline the main steps that should be applied to be ready as the following:

  • Install and Configure SharePoint Server 2013 with SP1 Enterprise Edition.
  • Install Project Server 2013 with SP1.

The Project Server 2013 destination farm build number must be higher than the source farm build number or at least have the same build number of source farm (Not lower than the source farm) to avoid this error This content database has a schema version which is not supported in this farm.

  • Install the latest Cumulative Update that already installed in the source farm.

To determine the build number of your source farm and get the latest CU that already installed. Check What’s the current Cumulative Update installed on SharePoint Farm?

You might also like to read Install and Configure Project Server 2016 step by step

Perform full database backup for the new PWA instance databases

To enable the rollback in case of the migration process failed, It’s recommended to take a full database backup for the following databases:

  • ProjectWebApp.
  • WSS_Content.
  • WSS_Content_PWA.

Dismount PWA Instance

  • Open SharePoint Management Shell as Administrator.
Open SharePoint Management Shell as Administrator.
  • Run the below cmdlet to get all provisioned PWA instances on the farm.
Get-SPProjectWebInstance
Get-SPProjectWebInstance cmdlet

You can also get the provisioned PWA instances via Central Administration as mentioned below.

  • Open Central Administration > Application Managemet.
  • Click on Mange Service Application.
Application Management - Manage Service Applications
  • Click on PWA service application to show all the PWA instances that already provisioned in the farm.
Manage PWA in central administration
  • Dismount the existing Project Web Instance to disconnect the SharePoint site collection from the Project Web App database by running the below cmdlet.
Dismount-SPProjectWebInstance -SiteCollection "http://SERVER/pwa"
Dismount-SPProjectWebInstance
  • You should now note that the PWA instance has been removed in the Central Administration > Manage PWA.
Provision PWA instance

Dismount PWA Instance Content Database

  • Dismount the PWA content databases from its currently associated web application that host the PWA instance.
Content database in central admin before perform dismount
Dismount-SPContentDatabase WSS_Content_PWA
dismount-spcontent-database

The Dismount-SPContentDatabase cmdlet detaches the content database from the Web application, but it does not delete the content database from SQL Server.but it does not delete the content database from SQL Server.

  • After performing ‘Dismount-SPContentDatabase’, you should note that the dismounted database has been removed from Content Databases in central administration as shown below:
Content database in central admin after perform dismount

Dismount web application Content Databases

  • Again, Dismount the ‘WSS_Content’ Content Database.
Dismount-SPContentDatabase WSS_Content
dismount-content-datatabase
  • The Content Database is now dismounted successfully as shown below.
Dismount all content database

Restore Old PWA instance Database Backup

Now we are ready to restore the database backup from the source farm to the destination farm by doing the following:

  • Move the database backup from the source farm to an appropriate path (Backup Path) in SQL Server of the destination farm.
    • ProjectWebApp.
    • WSS_Content.
    • WSS_Content_PWA.
  • Open the SQL Server Management Studio > Connect to your instance.
  • Perform the restore operation for each database as shown below.
Restore PWA database
Restore PWA databases in sql
Restore PWA instance database settings

A tail-log backup is unnecessary if you are moving or replacing (overwriting) a database.

Restore PWA instance in Project Server
Restore PWA instance database in Project Server
  • Repeat the above steps for other databases.

Mount ‘WSS_Content’ content database to the new PWA instance

Once the restore operation is done, we should now mount (reattach) each database again to its web application as mentioned below:

  • Run the ‘Mount-SPContentDatabase’ for ‘WSS_Content’ database to attach it to its web application that host the PWA instance.
Mount-SPContentDatabase "MyDatabase" -DatabaseServer "MyServer" -WebApplication http://sitename
Mount-SPContentDatabase

Mount PWA content database

  • Again, Mount ‘WSS_Content_PWA’ database to the web application that host the PWA instance.
Mount-SPContentDatabase "MyDatabase" -DatabaseServer "MyServer" -WebApplication http://sitename
Mount-SPContentDatabase in project server

Mount ‘ProjectWebApp’ project database

  • Now you should Mount the ‘ProjectWebApp’ database to the web application that host your PWA instance.
Mount-SPProjectDatabase "MyDatabase" -DatabaseServer "MyServer" -WebApplication http://sitename
mount pwa database in project server

Mount PWA Instance

  • Mount the PWA Instance to associate the PWA site collection to its Project Web App database.
Mount-SPProjectWebInstance -SiteCollection "http://SERVER/pwa -DatabaseServer" "SQLSERVER" -DatabaseName "ProjectWebApp"
Mount-SPProjectWebInstance
  • Go back to central administration > to make sure that the PWA Instance has been mounted and provisioned successfully.
Manage pwa in central administration

Deploy custom WSP solution

  • Copy all DLL files in ‘bin‘ folder of the source web application that located in \\inetpub\wwwroot\wss\VirtualDirectories\[Web Application Port Number]\bin
Move DLL files from staging to Production
backup all the deployed WSP solution in your farm

Change PWA Site Collection Administrator

To avoid the below access permission issue. “Sorry, this site hasn’t been shared with you.

PWA migration sorry this site hasnt been shared with you

You should change the old PWA Site collection administrator as the following:

  • Open Central Administration > Application Management > Change Site Collection Administrators > Select your Web Application > Select the PWA site collection.
  • Remove the old site collection administrator then add the new site collection administrator of the current farm.
Change site collection administrator in central administration

Change PWA Instance Administrator

  • Open Central Administration > Application Management > Manage Service Application.
  • Click on PWA service application to show the provisioned PWA instances.
  • Edit your PWA instance as shown below.
Change PWA Administrator

If the Edit option is missing, please check View, Edit, Delete options are missing in Project Server

  • Provide the New PWA instance administrator.
set pwa administrator account

Perform a Bulk Update connected SharePoint sites

If the PWA site URL has been changed in the new environment, so you should perform a Bulk Update to re-linking the projects with its related connected SharePoint sites as the following:

  • Go to Central Administration > General Application Settings > PWA Settings > Manage.
Manage PWA Settings in Project Server 2016
  • Click on “Bulk Update Connected SharePoint Sites”.
PWA settings bulk update connected sharepoint sites
  • Update new site path with your new site URL.
Project Server 2013 Migration from one farm to another

For more details, Please check Change Project Site URL in Project Server 2013

Update Project Server Cube settings

  • Go to Central Administration > General Application Settings > PWA Settings > Manage > OLAP Database Management.
OLAP Database Management

Conclusion

In conclusion, we have learned step by step how to perform Project Server 2013 Migration to move a PWA instance from one farm to another farm.

Applies To
  • Project Serve 2013.
You might also like to read
Have a Question?

If you have any related questions, please don’t hesitate to ask it at deBUG.to Community.

7 thoughts on “Project Server 2013 Migration from one farm to another”

  1. Pingback: Project Server 2019: Query Task Settings and Display | SPGeeks

  2. Pingback: Project Server 2019: Query Multiple Values Lookup Field | SPGeeks

Leave a Reply