Você pode converter antes ou depois. Eu prefiro antes porque os dados estarão prontos quando o Percona Server estiver instalado, funcionando. Digo isso porque há algumas coisas difíceis que você deve abordar em relação às tabelas de concessão. (Isto inclui especialmente a tabela mysql.user já que as tabelas mysql.user do MySQL 5.0 possuem 37 colunas enquanto as tabelas mysql.user do MySQL 5.5 possuem 42 colunas) Eu não gostaria de mexer com problemas de conectividade ou SQL Grants primeiro.
Aqui está o script para realizar a conversão do InnoDB:
Passo 01) Execute estes comandos
echo "SET SQL_LOG_BIN = 0;" > /root/ConvertMyISAMToInnoDB.sql
MYSQL_CONN="-u... -p..."
mysql ${MYSQL_CONN} -AN -e"SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=InnoDB;') InnoDBConversionSQL FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql','performance_schema') ORDER BY (data_length+index_length)" > /root/ConvertMyISAMToInnoDB.sql
O script procura todas as tabelas em todos os bancos de dados pode convertê-las em ordem de tamanho, começando com o menor.
Passo 02) Execute o script
mysql ${MYSQL_CONN} -A < /root/ConvertMyISAMToInnoDB.sql
Passo 03) Execute esta consulta
SELECT SUM(data_length+index_length)/POWER(1024,2) RecommendedInnoDBBufferPoolSize
FROM information_schema.tables WHERE engine='InnoDB';
Isso lhe dará o valor sugerido (ideal, mundo perfeito) para innodb_buffer_pool_size. Se esse número exceder 75% da RAM do servidor, use 75% da RAM.
Etapa 04) service mysql stop
Etapa 05) rm -f /var/lib/mysql/ib_logfile* /var/lib/mysql/ibdata1
Passo 06) Adicione o seguinte para /etc/my.cnf
[mysqld]
innodb_file_per_table
innodb_buffer_pool_size=<SizeFromStep03>M
innodb_log_file_size=512M
innodb_log_buffer_size=64M
innodb_open_files=4096
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_io_capacity=5000
key_buffer_size=8M
CAVEATS
- innodb_log_file_size deve ser de 25% de innodb_buffer_pool_size
- key_buffer_size agora pode ser reduzido
Etapa 07) service mysql start
Isso levará algum tempo (2-4 min) porque o mysqld irá criar
- ib_logfile0
- formate-o
- crie ib_logfile1
- formate-o.
Passo 08) Realize o upgrade da Percona