Wednesday, April 9, 2014

Porting from Oracle to MySQL

A potential customer asked my about porting her application from Oracle Database to MySQL.

I always try to start with the "why" (a dear friend bought me this book, recommended:

She said "cloud!". I said "OK!".

I conducted a short research, found many things in many places all over the place, brought them to a nice email I sent her back and then thought I'll post it here and make it public as it might be useful for us all. If you feel that I missed something, add comments, send feedback.

These are the leading tools to do the actual migration of the data structure, data export/import, sprocs, triggers, etc.:
  1. MySQL Workbench has a migration feature:
  2. MySQLYog can be used to migrate:  (already in the conversation in the second comment there)
  3. Navicat can be used to migrate:
  4. Tungsten support Oracle-to-MySQL replication:
  5. Focused data migrators:

The way I see it, migrating the data is 15% of a database porting project. Efforts are in (partial list):

  1. Porting drivers and driver behavior in the app code
  2. Porting SQL commands all around the app code
    1. Conversion of non-standard SQL flavor
    2. Work-around restrictions and non-supported commands
  3. Ecosystem, monitoring, tuning, tools, scripts, hardware best practices, ops skills, dev skills

Way before the migration of the data on d-day.

A lot of services, some tools. Services-wise I see around:

  1. Pythian:
  2. Baron (Percona):

I bet the big SIs (Accenture et al) are strong in this game, as those would be the default go-to service provider for the Oracle shops.


  1. The major problem is not migrating data, but 'stored program' code. If (for instance) an Oracle or SQL Server uses a lot of that an in a non-trivial manner this is the real challenge. If the logic is in application code it is less of a problem.

    (and thanks for mentioning our program - but the correct name is 'SQLyog'. Not 'MySQLyog'. Only the very first (non-GA) version was named 'MySQLyog' - but MySQL AB asked us to change that as they felt it came too close to their trademark. Refer

    1. Peter thank you for your comment.

      Sorry for using a wrong name, my bad, SQLyog it is!!

  2. Hi Doron. I was wondering if "Cloud!" is sufficient reason to undertake all this work. Is there an alternative that would give her the benefits without changing everything? Great blog btw. :-)

    1. Thank you David for your comment. Yea I agree that cloud is not a magic silver bullet for everything that is wrong with traditional IT, and sometimes is just "en excuse" for a major change that is due anyway I guess....