Microsoft Dynamics CRM 4.0 presents a signficant change in functionality from Microsoft Dynamics CRM 3.0. Several key components, such as workflow and reporting, have been completely redesigned. As such, existing features, functionality, and extensions may be affected as a result of the upgrade. This topic provides a best practices process to minimize downtime while helping determine issues that may occur as a result of the upgrade.
The upgrade process
The Microsoft Dynamics CRM Server upgrade process can be distilled down into four main areas.

As part of the upgrade process, two separate environments are evident:
- Test environment. The test environment represents a restricted deployment of Microsoft Dynamics CRM that is used to validate the upgrade. The test environment must mirror the production environment as closely as possible whereby there are substantial similarities in hardware (processor, disk, memory, and so on), technolology platform (Windows Server, SQL Server, and so on), topology (1-server, 2-server, 5-server, and so on) and data (Microsoft Dynamics CRM databases). To create an appropriate environment for testing, it may require setting up Microsoft NLB load balancing or clustering, installing and configuring Microsoft Dynamics CRM components and applications, such as E-mail Router, workflows, customizations, and connectors, as well as installing any additional add-ons or solutions particular to the deployment. Establishing a test environment that is running and configured wholly or in part by using virtualization technology such as Microsoft Virtual Server 2005 R2 or Windows Server 2008 with Hyper-V can greatly facilitate this process. In this test environment, the administrator performs the upgrade, optimizes for performance, may introduce upgraded code, and tests that the system is running well.
- Production deployment. The production deployment represents the deployment of Microsoft Dynamics CRM that is used by all CRM users in the organization. In the production deployment, the upgrade is performed, and the administrator may use strategies that optimize upgrade performance. The upgrade administrator may move upgraded code from the development or test evironment to the production environment. The administrator then brings the production environment online, validates that the system is running well, and deploys Microsoft Dynamics CRM for Outlook for users as needed.
Prepare to upgrade
Make sure you have enough staff, resources, and time to dedicate to the upgrade. As part of this phase, you must determine who will be involved in the upgrade, designate the test deployment hardware and software that will be used to validate the upgrade, and plan for potential failures.
During this phase you should also assess the current production environment for upgrade suitability. This requires reviewing the Microsoft Dynamics CRM 4.0 documentation.
Additionally, you must determine the acceptance criteria that will be used to decide whether to go forward with the production upgrade.
Tip
Microsoft Dynamics Sure Step is available to Microsoft Dynamics Partners to help reduce risk and guide you through the tasks associated with deployment and configuration of Microsoft Dynamics solutions. For more information about Microsoft Dynamics Sure Step, including training, methodology, and tool downloads, visit the Partnersource Web site.
Determine upgrade strategy
To determine the upgrade strategy, you need to answer the following questions:
- What will be upgraded? Upgrading the Microsoft Dynamics CRM server may require that you upgrade platform components such as Windows Server or Microsoft SQL Server. It will also require that other Microsoft Dynamics CRM applications such as Microsoft Dynamics CRM for Outlook and E-mail Router be upgraded.
- When? What is the timeline for the upgrade?
- How? For example, will you upgrade in-place or will you take this opportunity to migrate to new hardware, such as to 64-bit, before the upgrade? This should also include how the upgrade will be rolled out. Who will validate the upgrade? Will there be a pilot or phased rollout?
Based on the outcome of the test upgrade you may need to modify or mitigate your strategy and perform corrective actions to ensure functionality. For example, if some workflows cannot be upgraded, you must plan to recreate those workflows and test them.
Plan for failure, backup, and recovery
Some components, such as custom reports, workflows, or third-party extensions may cause the upgrade to fail or not function correctly. These items should be documented and a contingency plan be established for each issue. For example, a number of workflows and custom reports may need to be re-created or modified.
Therefore, you must be prepared to quickly and completely rollback the system. If you will recover from any scenario, you must back up all needed information and store a copy offsite. A backup plan should be created and rehearsed for all Microsoft Dynamics CRM components and services to make sure that, if a failure occurs, the maximum amount of data is recoverable. To understand the failure-recovery procedures, you must examine several different scenarios to learn how restoration occurs in each case.
For information about how to rollback to Microsoft Dynamics CRM 3.0 due to a failed upgrade, see Microsoft Knowledgebase article 952105 How to revert to Microsoft Dynamics CRM 3.0 if you cannot upgrade to Microsoft Dynamics CRM 4.0.
For more information about how to back up or recover Microsoft Dynamics CRM data, see the Operating and Maintaining Guide that is included in the Microsoft Dynamics CRM 4.0 Implementation Guide.
Review appropriate planning and prequisite documentation
Product documentation is instrumental in helping you scope the amount of preparation required before you upgrade. The documentation to review should include:
- Microsoft Dynamics CRM 4.0 Server Readme
- Planning Guide and Installing Guide that are included in the Microsoft Dynamics CRM Implementation Guide. Of particular importance are the "Upgrading from Microsoft Dynamics CRM 3.0," "System Requirements and Required Components," and "Supported configurations" topics.
- Also, if you will be installing additional components, such as Microsoft Dynamics CRM for Outlook or E-mail Router, download the following documents:
Ensure you have the latest technologies
For best results, verify that you have applied the latest service packs and update rollups not only for Microsoft Dynamics CRM but for other dependent technologies such as Windows Server, SQL Server, and Exchange Server.
Determine an upgrade plan and checklists
In this task you will determine how to evaluate the overall functionality and production readiness of the upgraded environment. The purpose of these tasks are to validate a production ready and fully operational system suitable for rolling out to the user base.
Use the following steps as a checklist for the tasks that are required leading up to the production upgrade or "go-live" day.
Verify that the system is functional after the upgrade by performing these basic tests:
- Review the Setup log files for issues that may have occurred during the upgrade. By default, Setup creates these files in the c:\Documents and Settings\<username>\Application Data\Microsoft\MSCRM\Logs folder on the computer where Setup is run.
- Review Event Viewer logs. Microsoft Dynamics CRM Server events are recorded under the sources that begin with MSCRM in Event Viewer.
- Start Deployment Manager and verify that all Microsoft Dynamics CRM servers and organizations are enabled.
- Start Internet Explorer and connect to the Microsoft Dynamics CRM server.
After you have performed the previous tasks, perform a user acceptance test. Following is an example of some of the features to test for a typical organization:
- Validate reports against previous version reports.
- Print reports in Microsoft Dynamics CRM.
- Validate applicable data in the Microsoft Dynamics CRM system, such as creating, editing, deleting, and promoting/converting records for the following entities:
- Accounts
- Contacts
- Opportunities
- Cases
- Activities
- Custom Entities
- Verify workflows against previous workflows. Update any workflow items affected by configuration or data model modifications.
- Test all custom code, JavaScript, and custom reports (if applicable).
- Test all integration processes (if applicable).
- Test of third party applications or extensions.
Establish the test environment
We recommend that you plan to run at least one test upgrade before you upgrade your production environment. After you run a test upgrade, verify the product configuration by performing operations that you would typically use in your production environment. For example, for a service organization, you may want to create an e-mail activity related to a case, and then verify the functionality by sending a test e-mail that contains text from an existing case. If you receive any errors while you are using the product in a test environment, make sure that you resolve them before you upgrade your production environment.
Tip
Virtual machine software, such as Windows Server 2008 Hyper-V, can ease the deployment time to establish the test environment as well as limit the amount of hardware sources that are required to emulate the production deployment.
Perform the following steps to set up a test environment that duplicates the existing production deployment:
- Determine where your test environment will be deployed, such as which computers you will use. Or, if you are using virtual machine technology, which virtual machine you will use?
- Review the Microsoft Dynamics CRM 3.0 Redeployment Wizard documentation. This document explains how you can create a mirror of the production database that can be used to test the upgrade. The Microsoft Dynamics CRM 3.0 Redeployment Wizard documentation and tool is located in the \Server\RedeploymentTool folder on the CD or folder location where you downloaded Microsoft Dynamics CRM 3.0. The high level steps to perform to create the test environment are as follows:
- On the Microsoft Dynamics CRM 3.0 production server:
- Back up the production Microsoft Dynamics CRM 3.0 databases.
- Back up all custom reports that are in the production Microsoft Dynamics CRM 3.0. To do this, in the Microsoft Dynamics CRM Web application, locate the Reports area, select Report, and then click Download on the Actions menu.
- On the test server:
- Install prerequisite components into the test environment such as Windows Server 2003 and Active Directory. We recommend a test domain that has a trust set to the domain where the Microsoft Dynamics CRM 3.0 production server is running be established for the test upgrade.
- Install additional prerequisite components such as SQL Server and Exchange Server (optional).
- Restore the production Microsoft Dynamics CRM 3.0 databases to the test environment.
- Complete the Microsoft Dynamics CRM 3.0 Redeployment Wizard.
- Install Microsoft Dynamics CRM 3.0 into the test environment. During Microsoft Dynamics CRM 3.0 Setup, select the "connect to existing database" option and connect to the database that was restored in the previous step.
- Import custom reports into the test environment (if applicable).
- Install any third-party applications, extensions, or solutions that may be used in the production environment.
- Verify the test Microsoft Dynamics CRM 3.0 environment for stability and operation. This includes having a select set of users connect by using the Microsoft Dynamics CRM Web application and use the system to perform all normal day-to-day tasks. Make sure workflows, reports, plug-ins, and third-party extensions are functioning correctly.
Upgrade and validate the test environment
After you verify the test system, perform an upgrade to Microsoft Dynamics CRM Server by running Microsoft Dynamics CRM Server Setup. The upgrade should complete successfully.
Verify the newly upgraded Microsoft Dynamics CRM environment for stability and operation. This includes having a select set of users connect by using the Microsoft Dynamics CRM Web application and use the system to perform all normal day-to-day tasks. Make sure workflows and reports are functioning correctly. Test that new features from the upgrade are functioning as well.
Run acceptance criteria and checklists
Execute the previously mentioned tasks on the test environment. Based on the tests, a "go" or "no go" decision will be made to implement the upgrade on the production environment.
Tip
The successfully upgraded test environment is an excellent resource to use for training users on new features without affecting the production deployment.
User acceptance testing
After the test checklist is completed and the quality of the tasks is within acceptable limits, user acceptance testing can start. This involves a subset of all users and typically can involve key users that carry out their normal day-to-day tasks against the system. These key users report any issues or unexpected behavior to the Microsoft Dynamics CRM administration team for action.
Upgrade and validate the production deployment
Even if everything went as planned during the test upgrade, make sure that you back up the production Microsoft Dynamics CRM 3.0 database before you upgrade the production deployment.
Typically, the production upgrade should be scheduled over a weekend to allow time to run checklists and correct undiscovered issues or, if necessary, roll back to the previous version of Microsoft Dynamics CRM.
Run production upgrade plan and checklists
Execute the previously mentioned tasks on the production deployment. If critical issues are discovered that did not surface in the test environment upgrade plan, a roll back to Microsoft Dynamics CRM 3.0 will require that you restore the Microsoft Dynamics CRM 3.0 databases and reinstall Microsoft Dynamics CRM 3.0 Server.
What to do when you cannot successfully upgrade?
If, after following the guidelines in this topic, you cannot successfully upgrade the production deployment, use the following resources to resolve the issue:
Related Links
Available updates for Microsoft Dynamics CRM