Eu tenho um banco de dados MySQL existente master1 <-> master2 -> slave
e quero adicionar outro escravo do master2. Se eu emitir o FLUSH TABLES WITH READ LOCK;
on master2 necessário para despejar o banco de dados, isso afetará de alguma forma o master1? E como isso afeta o master2 antes que o dump seja concluído e o UNLOCK TABLES;
seja emitido?
relate perguntas
-
Existem ferramentas de benchmarking do MySQL? [fechado]
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
Eu faria o seguinte para replicação não GTID:
my.cnf
também, mas altereserver_id
(todos os servidores devem ter números distintos).(Eu não tentei para replicação baseada em GTID.)
Copiar o disco é mais rápido que a maioria das outras técnicas.
Em vez de Primário-Primário, considere Galera ou InnoDB Clustering.
Não, os bloqueios na instância master2 não afetarão as consultas em master1.
No entanto, você também deve considerar soluções que não criem bloqueios.
Você pode usar
mysqldump --single-transaction
para adquirir uma exportação consistente de dados sem bloqueio, desde que suas tabelas sejam InnoDB (o que deveriam ser).Também posso recomendar o Percona XtraBackup como uma ferramenta profissional de backup de banco de dados para MySQL. Usamos isso no meu último trabalho para criar réplicas todos os dias. Foi muito mais rápido e não bloqueou a fonte ao criar um backup.
Usar o backup para inicializar uma réplica é muito mais rápido, porque não é necessário executar uma importação como um backup do mysqldump. Você pode ler o guia aqui: https://docs.percona.com/percona-xtrabackup/8.0/set-up-replication.html