Changing Database Platforms

I’m not sure why but there seems to be a lot of chatter lately about changing DB platforms. Information Technology Intelligence Corp (ITIC) recently ran a survey about DB migrations. You can find the result here (search the page for “ITIC Sunbelt 2010 SQL Server Survey Results”). At the risk of sounding like an advertisement Microsoft has provided a SQL Server Migration Tool Kit for some time. It aids the migration to SQL Server from Oracle, Sybase, MySQL and even Access. But this is never a slam dunk. It takes careful planning and testing to ensure the applications that use the data source continue to function properly.

I’ve never heard of a DBA waking up one morning and deciding to migrate from one DB platform to another. DB platforms are pretty sticky and there is almost always some catalyst for the change: license/contract renewal, change in supported platforms by a packaged application, vendor consolidation, etc. Let’s be honest migrations are scary projects and you want to be sure the drivers are well understood by the project team and the stakeholders. Then you want to be sure you take your time to plan and analyze the situation.

Over the course of my career I’ve worked on a few very large migration projects that involved more than just the database platform. These had large budgets and extremely stressful. It would have been very easy to become complacent and ignore the need to migrate but opportunity would have been lost. Most of the projects were successful (even the greatest baseball player of all time doesn’t bat 1,000). They resulted in cost savings, staying in a supported environment, or creating more flexibility for the business. The reward was worth the risk. I’d say the two key things that contributed to the success were: breaking the project into meaningful stages and a comprehensive set of regression tests (running against old and new and comparing the results).

I’ll have more to share about migrations in my next posting. Bottom line, don’t let FUD keep you from doing what you need to do to achieve your business goals.