Daya Patil, who works as a Premier Field Engineer at Microsoft India, focused on Exchange and Active Directory, presents an exhaustive checklist which she has found to be very valuable in performing version upgrades for Exchange Server.
Recently I was doing an upgrade from Exchange Server 2007 to Exchange Server 2010. In this process, I had to go through a number of articles and find suitable ones to apply to my needs as per organization requirement. I figured that it would be so good if these all articles are listed at one place along with the sequence of tasks during the migration. So here it is!
This article provides all the steps/tasks to perform successful migration from Exchange 2007 to Exchange 2010. With each task there is a set of reference links are provided as guide for how to perform the specific task. Note that a few steps can be optional depending on the environment.
Also, we suggest you use the Exchange Role Requirements Calculator, to determine the appropriate requirements for the Mailbox server role by specifying your set of input factors. Please refer this article to understand what values you need to specify while using it.
The first step, before even installing Exchange 2010 is to run JetStress. It’s important to do this to measure the performance capabilities of a disk subsystem for Microsoft Exchange database and log files. It will help you validate if your hardware can take the load.
Microsoft Exchange Server Jetstress 2010 Planning for Jetstress 2010 TechNet Jetstress Field Guide
Verify system requirements. Update Exchange 2007 servers with latest Service Pack.
On servers that will host the Hub Transport or Mailbox server role, install the Microsoft Filter Pack and prerequisites
Exchange 2010 Prerequisites: Exchange 2010 Help Download 2007 Office System Converter: Microsoft Filter Pack from Official Microsoft Download Center
Configure disjoint namespace. This step is optional. It's only necessary if your organization is running a disjoint namespace.
Configure the DNS Suffix Search List for a Disjoint Namespace: Exchange 2010 Help
Prepare Active Directory
Install the first Client Access Server role
Upgrade from Exchange 2007 Client Access: Exchange 2010 Help Install Exchange Server 2010: Exchange 2010 Help
Create a new digital certificate request
Install certificates (once you receive certificate from your CA for above request)
Enable Outlook Anywhere. This step is optional. It's only necessary if you decide to deploy Outlook Anywhere.
Configure settings on virtual directories, including OAB, Exchange Web Services, ECP, Outlook Web App, and Exchange ActiveSync virtual directories
Note: This step is necessary if you want to use Exchange Web Services, Outlook Anywhere, or the offline address book. It also may be required if you need to change any of the default settings for the Exchange Control Panel, Outlook Web App, or Exchange ActiveSync.
Create an Offline Address Book Virtual Directory: Exchange 2010 Help Configure ECP Virtual Directory Properties: Exchange 2010 Help View or Configure Outlook Web App Virtual Directories: Exchange 2010 Help View or Configure Exchange ActiveSync Virtual Directory Properties: Exchange 2010 Help
Authentication Settings for Exchange-related Virtual Directories
Configure a legacy host name and create respective DNS record
Install the Unified Messaging server role This step is optional. It's only necessary if you want to use Unified Messaging in your organization.
Configure and transition Unified Messaging This step is optional. It's only necessary if you want to use Unified Messaging in your organization.
Install the Hub Transport server role
Upgrade from Exchange 2007 Transport: Exchange 2010 Help Install Exchange Server 2010: Exchange 2010 Help
Install the Mailbox Server role.
Install rest of the servers (CAS/HUB/Mailbox) in all sites. Configure all Virtual directories, enable OA, import certificate.
Load Balancing CAS servers
Create CAS Array and make a DNS record for it
Understanding RPC Client Access: Exchange 2010 Help How to setup an Exchange 2010 CAS Array to load balance MAPI - The Three UC Amigos - Site Home - TechNet Blogs
Enabling Kerberos Authentication for MAPI Clients
To convert the OAB virtual directory to a web application, execute the ConvertOABVDir.ps1 script on each CAS member
Create a Database Availability Group
Planning for High Availability and Site Resilience: Exchange 2013 Help Database Availability Group Design Examples: Exchange 2010 Help Step by Step Create a Database Availability Group (DAG) - winde76 - Site Home - TechNet Blogs
DAG network Configuration (If DAG members are on different subnet, you need to add static route)
Add DAG members
Set DAG in DAC mode
Create a test user on Exchange 2010 and test OWA, ECP,OA Internally For Active sync PDC
Change external DNS pointing to Exchange 2010 for connectivity (URL) and test OWA, ECP, OA, ActiveSync. You can use the test connectivity analyzer website to test connectivity.
Move a test user from Exchange 2007 to 2010 and test connectivity and mailflow
Do a custom health check on Exchange 2010 environment, You can use BPA to do this.
Move OAB generation to Exchange 2010
Install the Edge Transport server role This step is optional. It's only necessary if you want to use the Edge server role in your organization.
Move Exchange 2007 mailboxes to Exchange 2010
Move public folder data to Exchange 2010
Change the default Public Folder database for a Mailbox Database
OWA Cross-Site Silent Redirection in Exchange 2010 SP2
Upgrading from LDAP to OPATH filters
Once all mailboxes are moved to Exchange 2010, Configure Send and Receive connector to send and receive mail from internet or your smart host
Change MX record to point to Exchange 2010 Hub transport server and test mail flow
Decommission Exchange 2007 servers
Exchange Server 2010 and Antivirus exclusions
That’s it for now! I also have some tips specific to upgrade to Exchange Server 2013, which I will share with you in the future.
Original content by Daya Patil; posted by MSPFE editor Arvind Shyamsundar.
Nice Article, Very Well documented. Thank you..
I do see that we have created CAS array post installing mailbox role. Don't we recommend CAS array to be created before installing mailbox server.
Let us say we don't, should we at least run
Get-mailboxdatabase | Set-mailboxdatabase -RPCClientAccessService
as there will be default databases created after mailbox role installation?
Does Microsoft also recommend using the same databases for users? or do we create other mailbox databases? I am assuming that makes my environments operation easier (remembering default database names is a pain to me at least).