A replicação do MySQL não funciona no dia bissexto

1

Apesar do meu conhecimento "central", mantenho um banco de dados MySQL replicado de duas vias (principal e backup). Tem funcionado bem na maior parte. Todas as alterações são quase instantaneamente replicadas entre os dois servidores.

Mas agora notei algo estranho: tenho alguns casos em que não há replicação em 29 de fevereiro. Admito que ainda não confirmei que toda a replicação está perdida. Mas todos os casos que encontrei até agora tiveram esse problema.

Não muito tempo atrás eu mudei o fuso horário de UTC para CET no backup, tem sido CET no primário o tempo todo.

Estou me fixando nisso porque aconteceu no dia do salto, ou poderia haver alguma coisa nisso?

Os servidores são ambos do CentOS 5.4 com o MySQL 5.0

    
por danneth 19.03.2012 / 17:02

2 respostas

1

Eu posso sentir qual é a preocupação. Se tudo fosse UTC, isso não seria um problema.

Aqui está uma questão para pensar:

Você tem os mesmos problemas em dias que envolvem o horário de verão?

A CET observa o horário de verão.

Os problemas de replicação que você descreveu também devem acontecer quando o relógio avança. Em teoria, isso deve durar cerca de uma hora.

Você pode fazer uma das duas coisas para garantir os mesmos dados:

OPÇÃO 1: mysqldump todos os dados do primário para o backup

MYSQL_HOST_ROOT=localhost
MYSQL_USER_ROOT=roothome
MYSQL_PASS_ROOT=rootpassword
MYSQL_CONN_ROOT="-h${MYSQL_HOST_ROOT} -u${MYSQL_USER_ROOT} -p${MYSQL_PASS_ROOT}"
MYSQL_HOST_BCKP=localhost
MYSQL_USER_BCKP=rootremote
MYSQL_PASS_BCKP=rootremotepassword
MYSQL_CONN_BCKP="-h${MYSQL_HOST_BCKP} -u${MYSQL_USER_BCKP} -p${MYSQL_PASS_BCKP}"
echo "SET SQL_LOG_BIN=0;" > /root/MySQLData.sql
echo "STOP SLAVE;" >> /root/MySQLData.sql
MYSQLDUMP_OPTIONS="--master-data=1 --all-databases --routines --triggers"
mysqldump ${MYSQL_CONN_ROOT} ${MYSQLDUMP_OPTIONS} >> /root/MySQLData.sql
echo "START SLAVE;" >> /root/MySQLData.sql
mysql ${MYSQL_CONN_BCKP} -A < /root/MySQLData.sql

OPÇÃO 2: Use pt-table-checksum e pt-table-sync

Eu escrevi um script de amostra que usa mk-table-checksum e mk-table-sync mas pode ser aplicado a pt-table-checksum e pt-table-sync também.

    
por 19.03.2012 / 19:05
0

A replicação geralmente acompanha o log binário passo a passo. (sem prestar atenção à data real)

Você tem certeza de que seus senhores e escravos possuem os dados reais?

    
por 19.03.2012 / 17:10