ALTER TABLE
são replicadas através do log binário, da mesma forma que qualquer outra alteração na tabela. Nenhuma consideração especial é necessária para o lado da replicação.
Eu preciso atualizar o esquema quando deixei acidentalmente algumas restrições de chave estrangeira.
O servidor de banco de dados é o MySQL 5.1.48 e as tabelas que estão sendo alteradas são InnoDB.
O servidor é replicado usando Master / Slave.
O que preciso saber ou fazer para alterar adequadamente um esquema de banco de dados de produção?
Espero que isso seja o que você precisa, já que você não forneceu detalhes suficientes:
A) SEMPRE (e eu realmente quero dizer, SEMPRE ) faz um backup antes de você tentar tal mudança no prod
B) no console do mysql: ALTER TABLE fsckeduptable DISABLE KEYS; SET FOREIGN_KEY_CHECKS = 0; .... faça o que você tem que fazer ... SET FOREIGN_KEY_CHECKS = 1; ALTER TABLE yourtablename ENABLE KEYS;
C) if (shit_happened) {restaurar backup; abortar isso; encontre outro método} D) se tudo estiver ok, marque a tabela em slaves (show create table) e veja se suas modificações se propagaram, então verifique se os apps são usados; if (shit_happened) ver #C)