]]>
Call Us
+1-888-316-9775 (USA)
+1-208-473-2904 (USA)
+44-208-133-0309 (UK)
]]>

Version Upgrades

What Are Risks of Upgrades?

Upgrading from one MySQL version to another has inherent risks, especially when upgrading across major versions (e.g. 4.0 to 4.1, 4.1 to 5.0, or especially 5.0 to 5.1). Risks include downtime, incorrect behavior, and performance regressions. Many pitfalls center around replication functionality, the behavior of datatypes, SQL syntax, and the query optimizer. Some queries might return a different result after an upgrade, or execute far more slowly. Percona provides an unbiased source of advice on the benefits and risks of upgrading, and precautions to take. Our consultants have extensive experience in upgrades.

How Do I Use Percona for Upgrades?

Percona can provide high level advice, or mentor your technical team throughout the upgrade, or implement the whole upgrade for you ourselves. You decide the level of Percona's involvement that best fits your circumstances. You can easily shift the type or degree of our involvement as your needs change. This is the benefit of Percona's by the hour, no obligation, no lock-in pricing.

What Is Percona's Upgrade Strategy?

Our first question is whether the upgrade will actually help you. New features might not actually be good for you. For example partitioning is a major new feature in MySQL 5.1 that can greatly benefit some types of workloads but is useless for others. Next we would gather detailed requirements for your upgrade. Must the upgrade be backwards compatible? Will the upgraded server be operating in a mixed environment with un-upgraded servers? Is downtime permissible during the upgrade?

After this we pursue a disciplined approach to validating performance, compatibility, and correctness post-upgrade. In fact, Percona has contributed mk-upgrade, an open-source tool to make upgrades safer, to Maatkit. This is the only tool of its kind. With all of the prerequisites taken care of, the actual upgrade and go live can be a smooth if delicate event.

]]> ]]>