Project Server 2007: Moving a copy of Production to Test – Part 2


I will be going deeper in this posting, particularly on the scenario of moving just the databases and then re-provisioning the site.  But don’t expect me to be mentioning every single dialog box and permission that you require.  I will be writing at a level whereby if you don’t understand what I am saying then perhaps you shouldn’t be doing this – or at least you need to read around a bit and then come back.  For permissions see this blog posting, and for full details of full farm restore go here.  Remember that any additional Process Accounts added to the SSP must still exist and be verifiable in the new system.  Forgotten this one?  Then go here.

So the only extra I intend to say about full farm backup and restore is that it does not keep such things as LDAP forms based authentication extended sites and settings (Thanks Boris Bazant for this tip!).  As I mentioned in my part 1 post – some external customization will need to be re-applied (e.g. additional web parts, server side event handlers in the GC).

The scenario for the main part of the post is moving from my Production Server (BriSmith620) to my test system (A Hyper-V image called BriSmithV0832).  I already have a working site which I don’t want to break, so this is a partial move – and the projects in my Production Server have workspaces both in the root site under PWA (the instance I am interested in is actually called CAL – created to troubleshoot some Calendar issues)  and in another web application at Port 94.  So I will be moving over 4 project databases and 2 content databases.  I can’t move my port 80 to port 80 as it will break existing stuff – so I will move 94 to 94 and 80 to 8080.  I have Issues lists with items in several projects – the aim will be to see these still working post migration…

I’ve already backed up my 6 databases – and restored them with names Blog_Archive etc for the Project ones and Blog_80_Content and Blog_94_Content (actually on the same server with different names) so on with the restoration of my PWA site and content.  First I just provision a site against the 4 databases.  If you have restored the content db at this point it will fail – if you use the same name for the site – as a collection will already exist.  And if you delete the site away goes your content – Catch 22.  So we are leaving the content stuff for now…

Usual stuff is entered for creation of a site

image

Click OK and wait for it to be provisioned…

image

And here we have it!  (Must get round to those timesheets)  Any customizations we had made in SharePoint would be gone (themes, top links etc.) but customizations in PWA would be retained (Notice the My Timecard edit to the menu name in the left nav bar).  But of course none of the workspaces are found, and the issues and risks link also find no active issues for me.

Next I will add the port 94 content db to a new Web Application on Port 94.  I create a new Web Application and name the database the one I have restored.  Didn’t bother with a screen shot, just changed the port to 94, put in a suitable account for the new application pool and put in the Blog_94_Content database name.  Once this is active I can browse to the workspaces (assuming I know the names) and the issue is there – but clicking through to the issue detail gives a File Not Found SharePoint error.

image

The workspaces listed on the home page don’t link to port 94, but port 80, and the Project Workspaces page shows blank for the sites.  By going to the Edit Site Address option the site can be entered for the project.

image

Once this is set and the workspace provisioning setting matched to the port 94 address that was in use on the other server the home page then shows the correct links and sees that I have active issues.

image

If I follow the link to the workspace, then the issues and click through to the issue detail it works – the file not found is resolved!

image

For larger jobs than this simple set of Projects the RelinkAllWSSSite tool from the Project Resource Kit comes in very handy.  Now we have our port 94 sites all sorted – and we could just do the same for our ones that were on port 80 – and leave them on port 8080 – but that doesn’t get them back were they started.  Stsadm export and import comes to our rescue.  First I will add a new web application on port 8080 and use the port 80 content database from the original server.  At this point we can browse to the sites just substituting http://brismithV0832:8080 for http://brismith620 to confirm they are there.  To export and import we use stsadm –o export –url <full url> –filename <path to save site> –includeusersecurity –nofilecompression.  In this case

C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions12BIN>stsadm -o export -url “http://brismithv0832:8080/CAL/Project1 with Workspace in PWA” -filename “Cbackupsavesite.bak” –includeusersecurity –nofilecompression

***UPDATE*** Flag –includeusersecurity was not in the original posting.  This ensures the same security applies to the site and this then means any assigned issues, risks will be flagged on the users home page.

If on Windows Server 2008 then your command prompt will need to be running as administrator to avoid an Access Denied.

You will get a long listing of progress (or you can use the –quiet flag) and hopefully it should finish with success!

Now we can import, just using the default port 80 address to get our site where we want it (just change the URL and export to import.  In my case I can also change CAL to Blog in the URL as my PWA site has changed.  Once this is complete we have the site where we want it – we edit the site address as we did earlier and all should be working!

image

image

Along the way with the export/import we lost the task links – I will dig into this a bit more but I guess you might expect this as the export probably has nowhere to keep that information, and also I see my Active Issues count isn’t picking up the moved workspace issues.  The best approach is certainly keep the workspaces away from your PWA site to start with.  But the issue is still there – it still understand which project it belongs to.

image

I’ve stepped through with a single project so you understand the idea – you can speed things up with Powershell or just creating a batch file.  If you go this route then stsadm –o enumsubwebs –url <url where sites are> >> c:sitelist.txt will enable you to get a quick list of sites into a text file.

Every requirement will be slightly different – full farm backup/restore will hopefully work for most, but the details I’ve given here should help when you want perhaps a partial move of single instances.  Always consider customization too – usually you will need some manual steps for those.

Let me know how this works for you.

Technorati Tags:


Comments (25)

  1. bhlaws@gmail.com says:

    I would love to hear what you find out regarding the problem of the de-linked issues list. I have had this issue in production, and I might need to open a PSS case.

  2. BriSmith says:

    Hi Brian,

    I will check this out with my colleagues tomorrow – I know this is a standard way we fix things up so can’t believe we haven’t seen this before (and hopefully fixed it!).

    Best regards,

    Brian

  3. I have updated the previous posting but for you RSS readers worth putting this in a new blog.&#160; After

  4. Gaurav says:

    Brian,

    Here is my approach on this let me know what do you think.

    1) Connect to Project Server Databases (PWA) on Port 80

    2) On Port 81 remove content db and attach content db of port-80 of previous server (that contains workspace contents)

    3) Use RelinkAllWSSSites tools from resource kit

    Example:

    RelinkAllWSSSites.exe http://projectmadeeasy:81 http://projectmadeeasy/pwa

    Thanks

    Gaurav

  5. BriSmith says:

    Great approach Gaurav – separating the PWA site and the content for the workspaces makes things so much easier going forward.

    Best regards,

    Brian.

  6. Dan Stoll says:

    Thanks so much Brian..

    We ended up using the long method, as we had host headers and the OTB Backup just wouldn’t work for us.

    Now to get the PWA seperated and the entire Project Server moved onto its own box (away from corp intranet site) :)

  7. James Ferguson says:

    Brain, thank you for having this post, but I have a Project Server 2007 farm deployment with a Production Instance and a Test Instance both on port 90 (URL’s are http://easohsas01/aerospace and http://easohsas01/pwa). Is there any simpler method for copying the production instance to the test instance (periodically) for change / modification testing and approval before moving to production?

    Thank you,

    J Ferguson

  8. Michael M says:

    Hi Guys,

    Seperating Project Server from the workspace sounds like a great idea. But I continue to have issue’s using the webpart Project Center and Project Details outside of the site collection. Does anyone know how to get around this? I have used th method described at

    http://blogs.msdn.com/chrisfie/archive/2007/04/26/adding-an-epm-web-part-to-another-sharepoint-site.aspx?CommentPosted=true#commentmessage

    but contine to get Http 401 errors. All other web parts work a charm.

    Any ideas would be greatly appreciated.

  9. Benz says:

    Hi Brain,

    I want to create a test instance same as the production one. I have succesfully created and migrated most of the data. But now the problem is the migration didnt worked fine with user’s. Any idea if i can migrate the users information as well into the new test instance.

    Thanks.

    Benz

  10. BriSmith says:

    Hi Benz,

    Which user information are you referring to?

    Best regards,

    Brian.

  11. Malik says:

    Dear Brian

    Thanks alot for this post , i have followed your steps and it worked for me but i have recived one problem , when a user trye to open a timesheet the got this error :

    An unexpected error has occurred.

    Web Parts Maintenance Page: If you have permission, you can use this page to temporarily close Web Parts or remove personal settings. For more information, contact your site administrator.  

    so i have turned off the custome error message i recived this error :

    Server Error in ‘/’ Application.

    ——————————————————————————–

    DHTMLViewPart doesn’t know how to create an XmlGridColumn object based on:

    ConversionType: Enum1

    Name: TS_LINE_STATUS

    SQLName: TS_LINE_STATUS

    Can you help me please

  12. BriSmith says:

    Hi Malik,

    I’m not sure the two isues of restore and the error you are seeing are related.  I haven’t seen this issue before.  Are you sure this error was not present in the previous server?  Also has the new server got the same release level of Project Server installed?  This may need a support incident, but other questions the SE will have for you are; Does this occur for all users, and if only a single user then for all their timesheets; does it occur for a newly created timesheet?

    Best regards,

    Brian.

  13. Malik says:

    Hi Brian

    No such error in the previous server

    and yes its general for all the users

    but im not sure about the release thing

    Best regards

    Malik

  14. Malik says:

    Dear Brian

    The issue resolved the problem was simply an update that was not applied to the new server , thanks a lot for your help .

  15. BriSmith says:

    Hi Malik,

    Thanks for the feedback.  Out of interest which update was missing?  Would be useful to match the error to a specific update as it might help others.

    Best regards, and Happy New Year,

    Brian.

  16. Malik says:

    Dear Brian

    The Update was

    "infrastructure Update for Microsoft Office Servers "

    the link is :

    http://support.microsoft.com/kb/951297

    Malik

  17. BriSmith says:

    Thanks for the feedback Malik.  Good to know what caused the issue.

  18. Greg Szymarek says:

    Hello Brian,

    I’ve seen your posts as I’ve been searching for answers to my problem.  I’ve followed them, but I’m having problems seeing the information on my linked sites (project documents, issues, etc).  Upon restoring my backup, I can see my project center and all my tasks, but the links to my subsites don’t work.  If I try to recreate the subsite address, the information I’m looking for is still not there.  After reading this post, it seems to me that the piece that I’m having problems with is the part where you "add the port 94 content db to a new Web Application on Port 94."  Do you have more information on this part?

  19. BriSmith says:

    Hi Greg,

    I’ll see if I can dig out some better references – may take a day or two…

    Best regards,

    Brian.

  20. Greg Szymarek says:

    Thanks Brian.  I appreciate the help.  Greg

  21. Adrian Bear says:

    Hi Brian,

    Great blog, Im a frequent reader and have taken alot from your expertise.

    I’ve had to perform quite a few Project Server 2007 migrations now. I have never been able to get the "entire farm backup" method to work, but thats probably because every clients project server site I have migrated has had Host Header entries (clients like to see http://project.client.com.au/pwa) and every client has always had the project workspaces residing in the PWA Site Collection.

    The technique I devised for this process was to create a new PWA instance against the restored ProjectServer_XXXX databases as usual, but then to migrate the Workspace content for each individual Project using the "stsadm -o export blah blah" command.

    The draw back is two fold..

    1. The sharepoint customisations to the PWA site are not migrated (custom lists, graphics, come menu options etc) to get around this migrate each custom list using the stsadm extensions from http://stsadm.blogspot.com/2007/09/importexportcopy-lists.html

    and make any other customisations manually by hand.

    2. Project Workspaces are usually created over time with varying versions of the Site Template, these Project Workspaces often fail the import and I end up creating them manually and importing the lists for each site using the stsadm extensions (mentioned above).

    For simple sites I can usually get the site migrated in a day and may an extra day for clean up. But for complex sites the cleanup and manual customisation steps can last for several days.

    Are there any plans in the pipeline for Microsoft to truly fix this issue (including for sites using Host Headers)? Migration really should be a much simpler option.

    Adrian Bear

  22. BriSmith says:

    Hi Adrian,

    Thanks very much for the feedback and details of the workarounds you have had to apply to get around this issue.  We are certainly looking at how we can improve things in this area – but unfortunately no quick fixes in the pipeline.  I will certainly share your feedback with the folks working on these features.

    Best regards,

    Brian.

  23. Jac says:

    Brian,

    Your blog is extremely helpful.  We tried the four(4) PS07 db back-up and restore method and have done this in the past on other servers.  This time we cannot provision another site as it says the "database is in use".

    We have PS07 SP2, SQL Server 2005 SP2 – however the DEV db machine is Windows 2008 SP1 and the TEST db machin is Windoes 2003 SP2.  

    Do you think that this would cause an error?

    Looking at your response to Malik in January – made me think of this.

  24. Sayed Toufiq says:

    Hi Brain,

    Thanks so much for sharing your exprience with us. It has saved our life.

    have migrated the sites and all the subsites using the stsadm export & import command and sync all the sites as you mentioned in the above article.

    There is a small issue in "log issue" link under "My Work" field, when you click this link it re-directs to old URL but if I replace the same URL to new URL it shows the task and all the changes in new URL. for example

    http://SiteA.company.com/PWA/Project1/Lists/Log%20Issue/AllItems.aspx

    http://SiteB.company.com/PWA/Project1/Lists/Log%20Issue/AllItems.aspx

    if you have seen this issue or have workaround for the same, please let me know.

    Thanks,

    Sayed Toufiq.

  25. fabriciopfs says:

    Hi everybody,

    Did anyone find a solution for Project Details or Project Details Web Parts work outside of the site collection? (see Michael M comment).

    The workaround hiding the TimeSheet Web Part works but it's very far from ideal.

    Any help is appreciated.