Temos que migrar tabelas MyISAM para InnoDB, mas estamos com medo de um longo tempo de inatividade. Em nosso banco de dados temos 10 tabelas MyISAM onde 2 delas são as maiores: ~26GB de dados + ~10GB de índices.
Minha pergunta é : posso definir a replicação entre o servidor primário (com as tabelas do mecanismo original) e uma réplica onde todas as tabelas foram migradas para o InnoDB? Então a réplica será nosso banco de dados principal.
Eu li alguns artigos sobre a migração de tabelas de MyISAM para InnoDB (como: http://mysql.rjweb.org/doc.php/myisam2innodb ou https://dev.mysql.com/doc/refman/5.7/en/converting -tables-to-innodb.html ) e etapas adicionais são necessárias (como remover índices duplicados e alterações na configuração do servidor), mas funcionará?
A replicação não pode ser iniciada sem cópias das tabelas já existentes na réplica. Ou seja, a replicação não é prática para iniciar a conversão, apenas para manter a conversão.
OTOH, se você já tiver a replicação configurada e as tabelas de 26 GB estiverem na réplica, poderá fazer isso
ALTER TABLE .. ENGINE=InnoDB;
para cada tabela na réplica. Enquanto isso, o Replication continuará enviando atualizações e inserções para ele. (Embora, com um atraso significativo devido a bloqueios.) Eventualmente, a réplica será toda InnoDB. Em seguida, você precisa de tempo de inatividade suficiente para executar as funções de troca de "failover" (Primário x Réplica), presumivelmente trocando as conexões do cliente.Por outro lado, se você ainda não tem réplica, provavelmente está sem sorte quando se trata de uma troca rápida.
Minhas dicas antigas sobre conversão: http://mysql.rjweb.org/doc.php/myisam2innodb