Basicamente, temos um grande banco de dados MySQL e queremos replicar para um escravo (configuração principal do escravo). Vocês têm algum guia passo a passo sobre como fazer isso com o tempo de inatividade MINIMAL no banco de dados? Fazer backup do banco de dados e transferir o backup para o servidor escravo (mesmo através de uma rede privada) leva cerca de 40 minutos. Bastante tempo de inatividade.
fonte
para iniciar uma replicação, você precisa de uma cópia consistente do seu banco de dados no escravo
suas tabelas são myisam ou innodb? descobrir problema
e veja a coluna "Mecanismo"
se todas as tabelas são innodb, você pode configurar o tempo de inatividade zero usando mysqldump --single-transaction e importando-o para o slave
se as tabelas são myisam, haverá tempo de inatividade, pois você precisará travar as tabelas para escrever enquanto elas estão sendo copiadas. O mysqlhotcopy é a ferramenta para ajudá-lo com isso.
Como alternativa, se você estiver usando LVM (gerenciador de volume lógico), poderá parar o banco de dados, tirar um instantâneo do LVM em alguns segundos e iniciar o banco de dados novamente. Em seguida, você pode fazer uma cópia consistente do instantâneo.
fonte
Para configurar o escravo, você precisará tirar um instantâneo de dados e registrar a posição do log binário. O backup do banco de dados não deve causar tempo de inatividade, apesar de causar desempenho reduzido, mas você já está fazendo o backup do banco de dados, certo? Você pode achar que o backup precisa bloquear algumas tabelas e isso pode causar bloqueios no seu aplicativo; é realmente necessário verificar como ele é implementado para isso.
Você pode capturar instantaneamente o disco? Isso reduziria consideravelmente o tempo de inatividade se você puder fazer um hotbackup.
fonte