Como DBA do MySQL, confio no MySQL para fazer a conversão, fazendo com que o MySQL escreva o script para mim.
Forme o comando Linux, execute esta consulta
mysql -h... -u... -p... -A --skip-column-names -e"SELECT CONCAT('ALTER TABLE ',db,'.',tb,' ENGINE=InnoDB;') FROM (SELECT A.db,A.tb,A.tbsize FROM (SELECT table_schema db,table_name tb,(data_length+index_length) tbsize FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) A LEFT JOIN (SELECT table_schema db,table_name tb FROM information_schema.statistics WHERE index_type='FULLTEXT') B USING (db,tb) WHERE B.db IS NULL) AA ORDER BY tbsize" > /root/ConvertMyISAM2InnoDB.sql
O script converterá as tabelas menores primeiro. Esse script também ignorou as tabelas MyISAM que possuem índices FULLTEXT.
Depois de examinar o script, você pode simplesmente executá-lo no MySQL da seguinte maneira:
mysql -h... -u... -p... -A < /root/ConvertMyISAM2InnoDB.sql
ou se você quiser ver o tempo de cada conversão, entre no mysql e execute:
mysql> source /root/ConvertMyISAM2InnoDB.sql
Isso não deve ser confuso, porque um bloqueio de tabela completo acontece quando a conversão está sendo executada.
Depois que todas as tabelas forem convertidas, você precisará ajustar as configurações do MySQL para uso do InnoDB e reduzir o key_buffer.
Leia isso para configurar o InnoDB Buffer Pool: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Leia também: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
De uma chance !!!