Sou bastante inexperiente com MariaDB, especialmente com replicação. No entanto, como estou de plantão, tenho um problema com isso hoje.
Parece que minha réplica está ficando para trás enquanto estou tirando uma mysqldump
cópia dela. Isso é um comportamento esperado ou há um problema com meu comando de backup abaixo?
mysqldump --defaults-file=$MYCNF -A --events --routines --master-data=2 | gzip -9 -c > ${BKPFILE}
Parece que estamos recuperando o atraso depois que o despejo terminar.
Por padrão, a
--opt
opção é usada por,mysqldump
a menos que--skip-opt
esteja definida.--opt
contém a--lock-tables
opção.Isso significa que, para cada banco de dados despejado, o dump primeiro bloqueia todas as tabelas para leitura, a fim de garantir a consistência. Isso era necessário com as tabelas MyISAM e, até onde sei, ainda não foi alterado.
Se todas as suas tabelas forem InnoDB, você deve executar o dump com
--single-transaction
a opção definida. Isso desabilitará o bloqueio e usará o snapshot da transação para consistência, permitindo que outros gravem nas tabelas conforme necessário.A possível desvantagem é uma transação potencialmente longa, que pode fazer com que o log de undo fique muito grande e todas as operações fiquem lentas. Mas isso não deve ser um problema, a menos que o dump seja executado por mais de uma hora ou que o banco de dados tenha muita gravação — se a réplica se recuperar sem muitos problemas atualmente, deve estar tudo bem.