Eu tenho um host de servidor MySQL que tem um relógio que está errado em cerca de 75 minutos. Existe algum risco em alterar o relógio do host enquanto o MySQL está em execução?
Atualização: Obviamente NOW()
, outras funções que retornam a hora atual retornarão um resultado diferente. No meu caso, estou pensando em spinlocks e outros internos assustadores no MySQL.
Os logs binários registrarão os eventos sequencialmente com qualquer carimbo de data/hora que tenha. O uso de qualquer log binário na hora de uma mudança de relógio torna o log específico inutilizável para PITR (recuperação pontual).
Se o Servidor DB for um Escravo, a Replicação pode pular o processamento de certos eventos.
Se você tiver registro binário ou replicação ativado, eu faria o seguinte
SHOW SLAVE STATUS\G
várias vezes para garantir que não haja novos comandos sendo processados e que Seconds_Behind_Master seja 0STOP SLAVE;
RESET MASTER;
(apaga todos os binlogs)RESET MASTER;
(apaga todos os binlogs novamente)CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=4;
START SLAVE;
A ideia aqui é garantir que todos os logs binários e logs de retransmissão estejam sincronizados no tempo. A função NOW() pode ser interpretada corretamente a partir desses logs.
EMBARGO
Tenha muito cuidado ao alterar os horários do relógio quando não for necessário quando se trata do horário de verão. Como a hora do relógio é escrita em logs binários em segundos desde 1º de janeiro de 1970, pode não ser necessário. Como o relógio está 75 minutos atrasado, faça isso o mais rápido possível. Não espere até que o horário de verão entre em ação.