locked
CRM 4 front-end move - quick yes or no question! RRS feed

  • Question

  • Hi,

    We're just about to move our front-end CRM server between hardware (all roles). The SQL/Reporting Services is on a seperate back-end.

    Part 3 of this article on the Microsoft site answers most of my question:
    http://support.microsoft.com/kb/952934

    1.Install the Microsoft Dynamics CRM Server or server role on a new server. To do this, follow these steps:
    •On the new computer, install Microsoft Dynamics CRM Server.
    •During the installation process, type the name of the SQL Server on which the MSCRM_Config database exists in the Select Deployment Options dialog box, and then click Connect to an Existing Deployment.
    •Complete the installation.

    2.Uninstall the Microsoft Dynamics CRM Server or the server role from the old Microsoft Dynamics CRM Server. To do this, follow these steps:
    •In Control Panel, open the Add or Remove Programs item.
    •Select the Microsoft Dynamics CRM Server, and then click Change/Remove.
    •Complete the removal wizard to remove the Microsoft Dynamics CRM Server or server role on the old server.

    However, the one thing it doesn't mention is that whether the process of introducing the new box to the existing deployment automatically renders the existing one defunct?

    Do we literally as soon as we bring the new box into CRM (connect to an existing deployment), do we have to delete/remove the original server otherwise it will stop serving live? I.e. does that process automatically make the new one the new live front-end, rendering the old one defunct?

    I ask because we'd like to ensure we have a few days grace where we can test the new front-end that it's working fine, whilst our users are still pointed to the original live front-end (we have various dns aliases in place which another team would also re-point also when we were happy to make that switch).

    Thanks in advance for any clarification so I can feed it into our move plan!

    Steph



    • Edited by sehull Wednesday, March 14, 2012 9:50 AM tidyup
    Wednesday, March 14, 2012 9:46 AM

Answers

  • @Patrick,

    Yes, completely agree if you deploy plugins on the GAC then this will not be stored on the database and yes these files need to be moved to the new server. Is a good point you raised.

    @sehull,

    If you have a professional version then you will not be able to deploy a role-based (as you probably know :) ). I understand your question with regards to join another fresh server to the existing database. I don't believe this is supported, however I would give it a try on a lab/development environment and share the results with us :). 

    Because you have a professional license If you go ahead with this on the live system, is possible that CRM will overwrite the old server details with the new ones.

    In this situation I believe you can only do a one way switch-over to the new server, you have a few options:

    Option 1

    1. Set up a fresh new CRM 4 environment
    2. backup the existing database and restore to the new SQL server
    3. with the deployment manager import the restored database

    Option 2

    1. set up the new servers and restore the CRM databases MSCRM_CONFIG and ORG_MSCRM
    2. when installing the new CRM, select to join an existing deployment

    There are few tweaks that you may need to do, the following artile may help you:

    http://quantusdynamics.blogspot.com/2012/01/dynamics-crm-40-disaster-recovery.html

    Important: As Patrick mention, make sure you copy any local dependencies, this means plugins in the GAC, registry keys, images etc..

    Hope this helps

    Regards

    Nuno


    Visit my blog for CRM material, improving performance, kerberos, IFD, development tips, etc. :) http://quantusdynamics.blogspot.com


    • Edited by nrodriEditor Wednesday, March 14, 2012 11:44 AM spelling
    • Proposed as answer by Patrick Verbeeten Thursday, March 15, 2012 8:25 AM
    • Marked as answer by sehull Thursday, March 15, 2012 10:04 AM
    Wednesday, March 14, 2012 11:43 AM
    Answerer

All replies

  • Hi Sehull,

    You mention All roles in one hardware, so the front-end specific role does not apply to you. Can you confirm you have a role based deployment or one single box?


    Visit my blog for CRM material, improving performance, kerberos, IFD, development tips, etc. :) http://quantusdynamics.blogspot.com

    Wednesday, March 14, 2012 10:17 AM
    Answerer
  • Short answer: No it won't, but be carefull

    CRM 4 (and 2011) do support deployment of multiple servers connected to the same database. Each of the servers will be fully functional and allow users to access and modify the data in the database.

    The only thing that may cause problems is the asynchronous service specifically if you have custom workflow activities and our plugins. If you have both servers running the async service both services will pick requests from the processing queue.
    Take the following example a user on you current production front end creates a contact, there is a workflow configured to start on create of the contact this workflow updates the related account and there is a synchronous plugin registered for the onupdate event of account. The workflow trigger will be placed in the processing queue and may be picked up by either async service, lets asume your new server picks up the request. This will cause the workflow to execute on your new server, the account update will also be executed on your new server including the custom plugin. Depending on if you use custom workflow activities our plugins this may be a problem, if they are stored in the database and do not depend on resources (i.e. files/registry settings) this will not be a problem. But if the plugins are registered in the GAC or do have dependencies the execution will fail.
    The only way to prevent the new async service from picking up request is to disable the windows service. This also means that you cannot test it.


    Patrick Verbeeten
    www.patrickverbeeten.com
    www.wavextend.com

    Wednesday, March 14, 2012 10:22 AM
  • Hi Patrick,

    I have to disagree with you. I have worked with role based deployments for a long time, and there is no issues with multiple asynch services picking up workflows etc.. Maximum that can happen is dead locks and this can be improved. The reason this is not an issue is the way the asynch service has been designed to be deployed on a role-based deployment. you can have 10 Asynchronous services, they have been designed to work in an active-active manner. When a asynch service pickups up a workflow this is locked in the queue and other asynch services do not pickup the same workflow. when dead locks occur it means they try to pickup the same process, but there are registry keys to reduce this and SQL settings to reduce this as well.

    In order to answer Sehull question would be nice to understand whether he has an enterprise license in hands in order to join a second Server to the CRM and be able to test it before decommission the old CRM server.


    Visit my blog for CRM material, improving performance, kerberos, IFD, development tips, etc. :) http://quantusdynamics.blogspot.com


    Wednesday, March 14, 2012 10:42 AM
    Answerer
  • Nrodri,

    I agree that multiple async services picking up request on its own will work without any problems. The case I am talking about is if the workflow for example uses a custom workflow activity which is not registered in the database but in the GAC. In this case you would have to ensure the assembly is present and configured before enabling the async service on the second server, not having this present may cause processes triggered in the production environment to fail. I am not sure if this applies to Sehulls case but effectively it will mean that CRM starts using the second server as soon as the installation is complete.


    Patrick Verbeeten
    www.patrickverbeeten.com
    www.wavextend.com

    Wednesday, March 14, 2012 10:50 AM
  • Hi Patrick and nrodri,

    Thanks very much for your detailed responses, really appreciated.

    Apologies for not being entirely clear in the first post, we have CRM4 Server Professional installed on a single piece of hardware (which I call the 'front-end'), with no customisations and a single accelerator added. We have less than 100 users and a single license.

    The 'back-end' is an A/P SQL cluster with the databases located on a SAN. At some point we are also going to move this to a virtual back-end, but thought we'd pick off migrating the CRM server first as we thought it might be reasonably straight-forward given the rather brief information in the MS article.

    As we have live users pointing to the existing CRM server, we just wanted to be able to build our new CRM server (to same build/rollup level with the accelerator), run both in parallel merely for a few days so when we decided to re-point clients to the new one, we could be sure that all was working. We have a DNS alias/redirect in place so users Outlook/CRM-Outlook point to a different web address than the actual server physical address, and we'd flick that over when it looked fine and then the original server would be removed/decommisioned from the CRM Deployment asap.

    My concern was whether we had to switch CRM servers straightaway (i.e. bring new box into the deployment manager, take the old one out at once), or we could get away with having two there with our clients still only pointing to the original until a flick-over.

    I guess I was concerned whether due to licensing or the behaviour of CRM whether it only allows one CRM server at any time to talk to the database back-end? Obviously, if we were running multiple CRM server load-balanced we'd need licenses for them, but for the process of moving it from one box to another?

    As I don't have much experience with CRM and have been given the task to move the CRM server and eventually SQL cluster to new machines, you'll have to bear with me over some of the details.

    Steph






    • Edited by sehull Wednesday, March 14, 2012 11:34 AM
    Wednesday, March 14, 2012 10:59 AM
  • @Patrick,

    Yes, completely agree if you deploy plugins on the GAC then this will not be stored on the database and yes these files need to be moved to the new server. Is a good point you raised.

    @sehull,

    If you have a professional version then you will not be able to deploy a role-based (as you probably know :) ). I understand your question with regards to join another fresh server to the existing database. I don't believe this is supported, however I would give it a try on a lab/development environment and share the results with us :). 

    Because you have a professional license If you go ahead with this on the live system, is possible that CRM will overwrite the old server details with the new ones.

    In this situation I believe you can only do a one way switch-over to the new server, you have a few options:

    Option 1

    1. Set up a fresh new CRM 4 environment
    2. backup the existing database and restore to the new SQL server
    3. with the deployment manager import the restored database

    Option 2

    1. set up the new servers and restore the CRM databases MSCRM_CONFIG and ORG_MSCRM
    2. when installing the new CRM, select to join an existing deployment

    There are few tweaks that you may need to do, the following artile may help you:

    http://quantusdynamics.blogspot.com/2012/01/dynamics-crm-40-disaster-recovery.html

    Important: As Patrick mention, make sure you copy any local dependencies, this means plugins in the GAC, registry keys, images etc..

    Hope this helps

    Regards

    Nuno


    Visit my blog for CRM material, improving performance, kerberos, IFD, development tips, etc. :) http://quantusdynamics.blogspot.com


    • Edited by nrodriEditor Wednesday, March 14, 2012 11:44 AM spelling
    • Proposed as answer by Patrick Verbeeten Thursday, March 15, 2012 8:25 AM
    • Marked as answer by sehull Thursday, March 15, 2012 10:04 AM
    Wednesday, March 14, 2012 11:43 AM
    Answerer
  • Thanks very much guys for your advice/solutions :)

    Steph

    Thursday, March 15, 2012 10:05 AM