Eu tenho um sistema (herdado de outra empresa de desenvolvimento) e ainda não conheço todos os seus recursos. Construção:
- cliente / aplicação web (symfony 1.4)
- DB - MySQL.
O projeto é implantado em 2 servidores:
1-st: servidor nginx + PHP + DB Master;
2º st: DB Slave.
Quando os dados são modificados pelo cliente da Web no DB Master, o DB Slave funciona bem e os dados têm um processo de replicação normal. Quando os dados são modificados pelo MySQL Management Client, tenho uma notificação:
Não é possível executar a instrução: impossível gravar no log binário, pois BINLOG_FORMAT = STATEMENT e pelo menos uma tabela usa um mecanismo de armazenamento limitado ao log baseado em linha. O InnoDB é limitado ao registro de linhas quando o nível de isolamento da transação é READ COMMITTED ou READ UNCOMMITTED
E então, o DB Slave cai e o processo de replicação é interrompido (inserção de erro ... entrada duplicada ...).
A notificação semelhante ocorre (nesta situação - erro) com o mesmo texto, quando tento inserir dados com o aplicativo / módulo java (ele roda dentro da transação) e, após a exceção, a transação é revertida e nenhuma modificação acontece.
Como posso resolver esse problema e fazer o sistema funcionar e possibilitar que dados modificados no DB Master e no DB Slaves funcionem no modo normal?