Existe uma maneira de pular uma tabela específica nos logs binários?
Eu tenho logs binários configurados como minha estratégia de backup incremental entre backups noturnos. Mas temos uma enorme tabela de referência que vamos atualizar todas as noites a partir de um processo em lote (tabela de 70 GB). Esta tabela é apenas lida e é atualizada todas as noites usando mysqlimport
.
Durante o processo de atualização para esta tabela apenas de referência, os logs binários estão causando um atraso bastante sério (especialmente quando faço uma atualização completa de 70 GB). Tem que fazer 70 GB duas vezes basicamente. que nojo.
A tabela de referência está atualmente usando MyISAM (eu bloqueei o InnoDB tentando carregá-lo, então tentando MyISAM).
Não há opção mysql para ignorar uma tabela no log binário.
Se você puder mover a tabela para um banco de dados separado, poderá usar a opção binlog-ignore-db , mas isso tem suas armadilhas . Você deve entender como o MySQL avalia as regras de replicação .
Se você pode escrever um script wrapper para carregar os dados em vez de mysqlimport (a página de manual diz que é uma interface de linha de comando para LOAD DATA INFILE), e o usuário com o qual você está importando os dados pode ter o privilégio SUPER, você pode usar a variável de sessão sql_log_bin Curti:
Isso desabilitará o log binário para a sessão atual, carregará os dados e habilitará o log binário novamente.
você pode usar
--replicate-ignore-table=db_name.tbl_name
Consulte http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-ignore-table para obter detalhes.