{"id":2622,"date":"2026-09-01T17:56:41","date_gmt":"2026-09-01T20:56:41","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/"},"modified":"2026-09-01T17:56:41","modified_gmt":"2026-09-01T20:56:41","slug":"aula-21-replicacao-mysql-master-slave-e-group-replication","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/","title":{"rendered":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication"},"content":{"rendered":"<p>Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a <strong>Replica\u00e7\u00e3o MySQL<\/strong>. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a continuidade operacional em caso de falhas. Diferentemente de uma simples c\u00f3pia de backup, a replica\u00e7\u00e3o mant\u00e9m os dados sincronizados de forma cont\u00ednua e autom\u00e1tica, com lat\u00eancia tipicamente inferior a um segundo em redes de baixa lat\u00eancia \u2014 algo que nossos especialistas da <strong>JRT Technology Solutions<\/strong> utilizam diariamente em projetos de infraestrutura cr\u00edtica.<\/p>\n<p>Ao longo desta aula, voc\u00ea aprender\u00e1 a projetar, configurar e validar dois modelos de <strong>Replica\u00e7\u00e3o MySQL<\/strong>: a replica\u00e7\u00e3o ass\u00edncrona <strong>master-slave<\/strong> (tamb\u00e9m chamada de replica\u00e7\u00e3o baseada em binlog) e a <strong>Group Replication<\/strong>, que implementa um cluster multi-master com detec\u00e7\u00e3o autom\u00e1tica de falhas e consist\u00eancia baseada no protocolo Paxos. Cada modelo tem suas caracter\u00edsticas, vantagens e cen\u00e1rios ideais, e dominar ambos permitir\u00e1 que voc\u00ea tome decis\u00f5es arquiteturais corretas de acordo com os requisitos de disponibilidade, consist\u00eancia e desempenho do seu ambiente.<\/p>\n<p>Por que a replica\u00e7\u00e3o \u00e9 t\u00e3o importante? Em ambientes de produ\u00e7\u00e3o, um \u00fanico servidor de banco de dados representa um ponto \u00fanico de falha. Se o hardware falhar, se houver manuten\u00e7\u00e3o programada ou se a carga exceder a capacidade da m\u00e1quina, a aplica\u00e7\u00e3o inteira pode ficar indispon\u00edvel. A <strong>Replica\u00e7\u00e3o MySQL<\/strong> resolve esse problema criando redund\u00e2ncia de dados. Al\u00e9m disso, permite o escalonamento horizontal de leituras, ao distribuir consultas <code>SELECT<\/code> entre v\u00e1rios servidores r\u00e9plicas, e oferece uma base s\u00f3lida para estrat\u00e9gias de backup sem impacto na opera\u00e7\u00e3o (backup na r\u00e9plica, por exemplo).<\/p>\n<p>Esta aula assume que voc\u00ea j\u00e1 concluiu as aulas anteriores do curso e possui conhecimentos s\u00f3lidos de instala\u00e7\u00e3o e administra\u00e7\u00e3o do MySQL 8.0, incluindo gerenciamento de usu\u00e1rios, configura\u00e7\u00e3o do arquivo <code>my.cnf<\/code>, uso do <code>systemctl<\/code> e no\u00e7\u00f5es de vari\u00e1veis de sistema. Voc\u00ea tamb\u00e9m deve ter acesso a pelo menos duas m\u00e1quinas (f\u00edsicas ou virtuais) com sistema operacional Linux \u2014 Ubuntu\/Debian ou CentOS\/RHEL\/Rocky Linux \u2014 e conectividade de rede entre elas. Caso ainda n\u00e3o tenha esse ambiente, recomendamos revisar as aulas anteriores antes de prosseguir.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de configurar uma replica\u00e7\u00e3o master-slave completa, com autentica\u00e7\u00e3o correta, binlogs ativos, GTIDs habilitados e verifica\u00e7\u00e3o de integridade; configurar um cluster de <strong>Group Replication<\/strong> com tr\u00eas n\u00f3s; diagnosticar e resolver os erros mais comuns que afetam a replica\u00e7\u00e3o; e aplicar boas pr\u00e1ticas de monitoramento e manuten\u00e7\u00e3o. Ter\u00e1, portanto, autonomia para implementar <strong>Replica\u00e7\u00e3o MySQL<\/strong> em ambientes reais de produ\u00e7\u00e3o, como fazemos na <strong>JRT Technology Solutions<\/strong> ao projetar solu\u00e7\u00f5es de infraestrutura de alto desempenho e seguran\u00e7a da informa\u00e7\u00e3o.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<p>Esta aula foi cuidadosamente estruturada para que voc\u00ea atinja todos os objetivos a seguir. Cada t\u00f3pico foi pensado para construir o conhecimento de forma progressiva, da teoria fundamental at\u00e9 a aplica\u00e7\u00e3o pr\u00e1tica completa. Ao final, verifique se voc\u00ea consegue executar todos os itens sem consultar o material \u2014 esse \u00e9 o verdadeiro teste de dom\u00ednio.<\/p>\n<ul>\n<li><strong>Compreender os fundamentos da Replica\u00e7\u00e3o MySQL<\/strong>: binlog, GTID, threads de replica\u00e7\u00e3o e formatos de logging;<\/li>\n<li><strong>Diferenciar os modelos de replica\u00e7\u00e3o ass\u00edncrona e s\u00edncrona<\/strong>: master-slave vs. Group Replication, com seus pr\u00f3s e contras;<\/li>\n<li><strong>Preparar o ambiente com MySQL 8.0<\/strong> em Ubuntu\/Debian e CentOS\/RHEL\/Rocky Linux, incluindo instala\u00e7\u00e3o e configura\u00e7\u00e3o b\u00e1sica de rede;<\/li>\n<li><strong>Configurar a replica\u00e7\u00e3o master-slave passo a passo<\/strong>, desde a cria\u00e7\u00e3o do usu\u00e1rio de replica\u00e7\u00e3o at\u00e9 a inicializa\u00e7\u00e3o da r\u00e9plica e a valida\u00e7\u00e3o completa do fluxo;<\/li>\n<li><strong>Habilitar e configurar GTIDs<\/strong> para replica\u00e7\u00e3o mais resiliente e simplificada em casos de failover;<\/li>\n<li><strong>Implementar a Group Replication<\/strong> em um cluster de tr\u00eas n\u00f3s, com elei\u00e7\u00e3o autom\u00e1tica de primary e toler\u00e2ncia a falhas;<\/li>\n<li><strong>Verificar e testar a replica\u00e7\u00e3o<\/strong> com comandos de diagn\u00f3stico, interpretando as sa\u00eddas corretamente;<\/li>\n<li><strong>Resolver erros recorrentes<\/strong> de replica\u00e7\u00e3o, incluindo problemas de server-id, autentica\u00e7\u00e3o, binlog purgado e inconsist\u00eancias de GTID;<\/li>\n<li><strong>Aplicar boas pr\u00e1ticas de monitoramento, backup e failover<\/strong> em ambientes replicados de produ\u00e7\u00e3o.<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Antes de iniciar esta aula, voc\u00ea precisa garantir que todo o ambiente esteja pronto. Como esta \u00e9 uma aula avan\u00e7ada, assumimos que voc\u00ea j\u00e1 sabe instalar o MySQL 8.0 e possui no\u00e7\u00f5es de administra\u00e7\u00e3o b\u00e1sica do sistema operacional. No entanto, para facilitar a padroniza\u00e7\u00e3o do laborat\u00f3rio, vamos apresentar rapidamente os comandos de instala\u00e7\u00e3o para as duas principais fam\u00edlias de distribui\u00e7\u00f5es Linux. Se o MySQL j\u00e1 estiver instalado em suas m\u00e1quinas, voc\u00ea pode pular esta parte e ir diretamente para a se\u00e7\u00e3o de configura\u00e7\u00e3o.<\/p>\n<p>Para o laborat\u00f3rio desta aula, recomendamos a seguinte topologia m\u00ednima: <strong>tr\u00eas servidores Linux<\/strong> com MySQL 8.0 instalado, interconectados por uma rede local com baixa lat\u00eancia. Os nomes e IPs que usaremos nos exemplos s\u00e3o: <code>db-master<\/code> (192.168.1.10), <code>db-slave-01<\/code> (192.168.1.20) e <code>db-node-03<\/code> (192.168.1.30). Se voc\u00ea estiver trabalhando com m\u00e1quinas virtuais, configure uma rede interna entre elas, desative o firewall para as portas 3306 e 33061 (ou crie regras de permiss\u00e3o) e sincronize os rel\u00f3gios com NTP. Caso esteja usando apenas duas m\u00e1quinas para a replica\u00e7\u00e3o master-slave, ignore o terceiro n\u00f3 at\u00e9 a se\u00e7\u00e3o de Group Replication.<\/p>\n<p>Para instalar o MySQL 8.0 em <strong>Ubuntu ou Debian<\/strong>, execute os seguintes comandos com privil\u00e9gios de superusu\u00e1rio. Primeiro, atualize os reposit\u00f3rios e instale o pacote <code>mysql-server<\/code>. Depois, execute o script de seguran\u00e7a <code>mysql_secure_installation<\/code> para definir a senha do root, remover usu\u00e1rios an\u00f4nimos e desativar o login remoto do root, se necess\u00e1rio.<\/p>\n<pre><code># Atualiza a lista de pacotes e instala o MySQL Server 8.0\nsudo apt update\nsudo apt install -y mysql-server\n\n# Executa o assistente de seguran\u00e7a inicial (defina senha forte para o root)\nsudo mysql_secure_installation\n\n# Verifica o status do servi\u00e7o\nsudo systemctl status mysql<\/code><\/pre>\n<pre><code class=\"output\">\u25cf mysql.service - MySQL Community Server\n   Loaded: loaded (\/lib\/systemd\/system\/mysql.service; enabled; vendor preset: enabled)\n   Active: active (running) since Tue 2026-09-01 08:00:00 UTC; 35s ago\n Main PID: 1024 (mysqld)\n    Tasks: 28 (limit: 4915)\n   Memory: 356.5M\n   CGroup: \/system.slice\/mysql.service\n           \u2514\u25001024 \/usr\/sbin\/mysqld<\/code><\/pre>\n<p>Para <strong>CentOS, RHEL ou Rocky Linux<\/strong>, o processo \u00e9 semelhante, mas o gerenciador de pacotes \u00e9 o <code>dnf<\/code> (ou <code>yum<\/code> em vers\u00f5es mais antigas). Ap\u00f3s a instala\u00e7\u00e3o, \u00e9 necess\u00e1rio iniciar e habilitar o servi\u00e7o para que ele inicie automaticamente no boot.<\/p>\n<pre><code># Instala o MySQL Server 8.0 a partir dos reposit\u00f3rios oficiais do MySQL\nsudo dnf install -y https:\/\/dev.mysql.com\/get\/mysql80-community-release-el8-3.noarch.rpm\nsudo dnf module disable mysql -y\nsudo dnf install -y mysql-community-server\n\n# Inicia o servi\u00e7o e o habilita no boot\nsudo systemctl start mysqld\nsudo systemctl enable mysqld\n\n# Obt\u00e9m a senha tempor\u00e1ria do root gerada automaticamente\nsudo grep 'temporary password' \/var\/log\/mysqld.log\n\n# Executa o assistente de seguran\u00e7a para alterar a senha e remover usu\u00e1rios an\u00f4nimos\nsudo mysql_secure_installation\n\n# Verifica o status\nsudo systemctl status mysqld<\/code><\/pre>\n<pre><code class=\"output\">\u25cf mysqld.service - MySQL Server\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/mysqld.service; enabled; vendor preset: disabled)\n   Active: active (running) since Tue 2026-09-01 08:05:00 UTC; 10s ago\n Main PID: 1180 (mysqld)\n    Tasks: 28 (limit: 4915)\n   Memory: 360.1M\n   CGroup: \/system.slice\/mysqld.service\n           \u2514\u25001180 \/usr\/sbin\/mysqld<\/code><\/pre>\n<p>Al\u00e9m do MySQL, verifique se o hostname de cada servidor est\u00e1 corretamente configurado e se a resolu\u00e7\u00e3o de nomes funciona entre eles. Isso \u00e9 cr\u00edtico para a <strong>Replica\u00e7\u00e3o MySQL<\/strong>, pois o servidor de origem e as r\u00e9plicas precisam se comunicar pelo nome ou IP. Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, padronizamos o uso de IPs fixos e a entrada <code>\/etc\/hosts<\/code> em todos os n\u00f3s para evitar falhas de DNS em momentos de estresse. Em cada m\u00e1quina, edite o arquivo <code>\/etc\/hosts<\/code> e adicione as seguintes linhas:<\/p>\n<pre><code># Arquivo \/etc\/hosts \u2014 adicione em TODOS os servidores\n192.168.1.10  db-master\n192.168.1.20  db-slave-01\n192.168.1.30  db-node-03<\/code><\/pre>\n<p>Com o ambiente pronto, voc\u00ea pode seguir para a pr\u00f3xima se\u00e7\u00e3o, onde vamos estabelecer os fundamentos te\u00f3ricos necess\u00e1rios para entender o que acontece internamente durante a replica\u00e7\u00e3o.<\/p>\n<h3>Fundamentos da Replica\u00e7\u00e3o MySQL: Binlog, Threads e GTIDs<\/h3>\n<p>A <strong>Replica\u00e7\u00e3o MySQL<\/strong> \u00e9 baseada no registro bin\u00e1rio de eventos, conhecido como <strong>binlog<\/strong> (Binary Log). O binlog \u00e9 um arquivo criado pelo servidor MySQL que registra todas as mudan\u00e7as de dados \u2014 como <code>INSERT<\/code>, <code>UPDATE<\/code>, <code>DELETE<\/code> e comandos DDL \u2014 na ordem em que foram executadas. Diferentemente dos logs de transa\u00e7\u00e3o (redo log) usados para recupera\u00e7\u00e3o de crash do InnoDB, o binlog \u00e9 um registro l\u00f3gico de eventos, projetado especificamente para replica\u00e7\u00e3o e recupera\u00e7\u00e3o de dados em um ponto no tempo. Sem o binlog ativo, a replica\u00e7\u00e3o n\u00e3o pode funcionar.<\/p>\n<p>Na replica\u00e7\u00e3o master-slave tradicional, o processo funciona em tr\u00eas etapas principais. Primeiro, o servidor <strong>master<\/strong> grava as transa\u00e7\u00f5es no binlog. Em seguida, uma thread chamada <code>dump thread<\/code> no master l\u00ea os eventos do binlog e os envia para cada r\u00e9plica conectada. Por fim, no lado da r\u00e9plica, duas threads atuam: a <strong>I\/O thread<\/strong> (ou receptor thread no MySQL 8.0) baixa os eventos do binlog do master e os grava localmente em arquivos chamados <strong>relay logs<\/strong>; e a <strong>SQL thread<\/strong> (ou applier thread) l\u00ea os relay logs e aplica as transa\u00e7\u00f5es no banco de dados local. Esse modelo ass\u00edncrono permite que a r\u00e9plica fique temporariamente atrasada em rela\u00e7\u00e3o ao master, especialmente sob carga elevada ou em redes lentas.<\/p>\n<p>O MySQL 8.0 introduziu o conceito de <strong>GTID<\/strong> (Global Transaction Identifier), que atribui um identificador \u00fanico e global a cada transa\u00e7\u00e3o commitada. Um GTID \u00e9 formado pelo par <code>server_uuid:transaction_id<\/code> \u2014 por exemplo, <code>3f2c8a7d-11e4-8b6f-00ff7a5b9c0e:1<\/code>. Com GTIDs habilitados, a replica\u00e7\u00e3o se torna mais resiliente e simplificada: a r\u00e9plica sabe exatamente quais transa\u00e7\u00f5es j\u00e1 foram aplicadas, o que facilita o failover autom\u00e1tico e a identifica\u00e7\u00e3o de inconsist\u00eancias. Nos ambientes que implementamos na <strong>JRT Technology Solutions<\/strong>, o uso de GTID \u00e9 padr\u00e3o em todas as implanta\u00e7\u00f5es de <strong>Replica\u00e7\u00e3o MySQL<\/strong>.<\/p>\n<p>O formato do binlog tamb\u00e9m \u00e9 um par\u00e2metro importante. O MySQL suporta tr\u00eas modos: <code>STATEMENT<\/code>, <code>ROW<\/code> e <code>MIXED<\/code>. No modo <code>ROW<\/code>, recomendado e padr\u00e3o a partir do MySQL 8.0, o binlog registra as mudan\u00e7as linha a linha, o que garante consist\u00eancia total entre master e r\u00e9plica mesmo para transa\u00e7\u00f5es complexas com fun\u00e7\u00f5es n\u00e3o determin\u00edsticas como <code>NOW()<\/code>, <code>UUID()<\/code> ou <code>RAND()<\/code>. O modo <code>STATEMENT<\/code> registra apenas a instru\u00e7\u00e3o SQL, o que pode gerar diverg\u00eancias se a instru\u00e7\u00e3o depender de vari\u00e1veis de ambiente ou retornar resultados diferentes em cada servidor. O modo <code>MIXED<\/code> combina os dois, usando declara\u00e7\u00f5es na maioria dos casos e linhas quando necess\u00e1rio. Para esta aula, utilizaremos o formato <code>ROW<\/code>, que \u00e9 o mais seguro e recomendado para produ\u00e7\u00e3o.<\/p>\n<p>Compreender esses conceitos \u00e9 essencial antes de passarmos \u00e0 pr\u00e1tica. Na pr\u00f3xima se\u00e7\u00e3o, colocaremos essa teoria em a\u00e7\u00e3o e configuraremos um ambiente de replica\u00e7\u00e3o master-slave completo, passo a passo, com todos os comandos e arquivos necess\u00e1rios.<\/p>\n<h3>Passo a Passo: Configurando a Replica\u00e7\u00e3o Master-Slave<\/h3>\n<p>Agora que voc\u00ea entende os fundamentos da <strong>Replica\u00e7\u00e3o MySQL<\/strong>, vamos implementar uma replica\u00e7\u00e3o master-slave no laborat\u00f3rio. O cen\u00e1rio consiste em dois servidores: <code>db-master<\/code> (192.168.1.10) e <code>db-slave-01<\/code> (192.168.1.20). O objetivo \u00e9 fazer com que todas as transa\u00e7\u00f5es commitadas no master sejam automaticamente aplicadas na r\u00e9plica. Vamos seguir uma sequ\u00eancia rigorosa de etapas, come\u00e7ando pela configura\u00e7\u00e3o do arquivo <code>my.cnf<\/code> em cada servidor.<\/p>\n<p>O primeiro passo \u00e9 editar o arquivo de configura\u00e7\u00e3o do MySQL no servidor <strong>master<\/strong>. Em sistemas Ubuntu\/Debian, o arquivo fica em <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>; em CentOS\/RHEL\/Rocky, em <code>\/etc\/my.cnf<\/code>. Em ambos os casos, adicione ou modifique as linhas mostradas abaixo na se\u00e7\u00e3o <code>[mysqld]<\/code>. Cada par\u00e2metro ser\u00e1 explicado em detalhes.<\/p>\n<pre><code># ==============================================================\n# ARQUIVO DE CONFIGURA\u00c7\u00c3O DO MASTER \u2014 \/etc\/my.cnf ou \/etc\/mysql\/mysql.conf.d\/mysqld.cnf\n# ==============================================================\n[mysqld]\n\n# Identificador \u00fanico do servidor dentro da topologia de replica\u00e7\u00e3o\n# NUNCA use o mesmo server-id em dois servidores que participam da replica\u00e7\u00e3o\nserver-id = 1\n\n# Ativa o binary log, essencial para a replica\u00e7\u00e3o\n# O nome \"mysql-bin\" \u00e9 o prefixo dos arquivos gerados\nlog_bin = \/var\/lib\/mysql\/mysql-bin\n\n# Define o formato do binlog como ROW (recomendado para consist\u00eancia total)\nbinlog_format = ROW\n\n# Ativa os GTIDs para replica\u00e7\u00e3o mais resiliente\ngtid_mode = ON\nenforce_gtid_consistency = ON\n\n# Mant\u00e9m 7 dias de binlog (seguran\u00e7a para r\u00e9plicas atrasadas)\nbinlog_expire_logs_days = 7\n\n# Define o banco de dados que ser\u00e1 replicado (opcional; use se quiser replicar apenas alguns schemas)\n# binlog_do_db = meu_banco\n\n# Endere\u00e7o de bind \u2014 ajuste conforme sua rede (0.0.0.0 aceita conex\u00f5es de qualquer interface)\nbind-address = 0.0.0.0\n\n# Define o tamanho m\u00e1ximo do binlog antes da rota\u00e7\u00e3o (opcional)\nmax_binlog_size = 256M\n\n# Ativa a sincroniza\u00e7\u00e3o do binlog a cada transa\u00e7\u00e3o (mais seguro)\nsync_binlog = 1<\/code><\/pre>\n<p>Cada linha deste arquivo tem uma fun\u00e7\u00e3o clara. O par\u00e2metro <strong><code>server-id<\/code><\/strong> \u00e9 obrigat\u00f3rio e deve ser \u00fanico para cada servidor na topologia: sem ele, o MySQL n\u00e3o participa da replica\u00e7\u00e3o. O <strong><code>log_bin<\/code><\/strong> ativa o binary log e define o caminho dos arquivos; sem isso, o servidor n\u00e3o pode atuar como master. O <strong><code>binlog_format<\/code><\/strong> define o formato dos eventos registrados \u2014 usamos <code>ROW<\/code> para m\u00e1xima consist\u00eancia. As op\u00e7\u00f5es <strong><code>gtid_mode<\/code><\/strong> e <strong><code>enforce_gtid_consistency<\/code><\/strong> habilitam o GTID, exigindo que todas as transa\u00e7\u00f5es sejam consistentes com o modelo. O <strong><code>binlog_expire_logs_days<\/code><\/strong> evita que os arquivos de binlog cres\u00e7am indefinidamente. O <strong><code>bind-address<\/code><\/strong> define em qual interface o MySQL escuta \u2014 <code>0.0.0.0<\/code> permite conex\u00f5es remotas. Por fim, <strong><code>sync_binlog<\/code><\/strong> for\u00e7a a grava\u00e7\u00e3o do binlog em disco a cada transa\u00e7\u00e3o, evitando perda de eventos em caso de falha de energia, ao custo de um pequeno overhead de I\/O.<\/p>\n<p>Agora, no servidor <strong>slave<\/strong> (r\u00e9plica), edite o arquivo de configura\u00e7\u00e3o correspondente e adicione os seguintes par\u00e2metros. Note que o <code>server-id<\/code> deve ser diferente (neste caso, 2), e o binlog tamb\u00e9m deve ser ativado, pois a r\u00e9plica pode, futuramente, atuar como master para outra r\u00e9plica (replica\u00e7\u00e3o em cadeia) ou em caso de promo\u00e7\u00e3o durante um failover.<\/p>\n<pre><code># ==============================================================\n# ARQUIVO DE CONFIGURA\u00c7\u00c3O DA R\u00c9PLICA \u2014 \/etc\/my.cnf ou \/etc\/mysql\/mysql.conf.d\/mysqld.cnf\n# ==============================================================\n[mysqld]\n\n# Identificador \u00fanico \u2014 use um valor diferente do master e de qualquer outra r\u00e9plica\nserver-id = 2\n\n# Ativa o binary log tamb\u00e9m na r\u00e9plica (necess\u00e1rio para failover e replica\u00e7\u00e3o em cadeia)\nlog_bin = \/var\/lib\/mysql\/mysql-bin\n\n# Formato ROW para consist\u00eancia\nbinlog_format = ROW\n\n# Ativa GTIDs na r\u00e9plica\ngtid_mode = ON\nenforce_gtid_consistency = ON\n\n# Dias para expirar binlog\nbinlog_expire_logs_days = 7\n\n# Ativa a aplica\u00e7\u00e3o multicliente da replica\u00e7\u00e3o (opcional, mas recomendado para r\u00e9plicas sob carga)\n# replica_parallel_workers = 4 (dispon\u00edvel no MySQL 8.0)\nslave_parallel_workers = 4\n\n# Endere\u00e7o de bind\nbind-address = 0.0.0.0\n\n# Sincroniza\u00e7\u00e3o do binlog\nsync_binlog = 1\n\n# Garante que a r\u00e9plica guarde o binlog das transa\u00e7\u00f5es aplicadas (para failover)\nlog_slave_updates = ON<\/code><\/pre>\n<p>O par\u00e2metro <strong><code>slave_parallel_workers<\/code><\/strong> (ou <code>replica_parallel_workers<\/code> em vers\u00f5es mais recentes) permite que a r\u00e9plica aplique transa\u00e7\u00f5es em paralelo, reduzindo o atraso de replica\u00e7\u00e3o sob carga elevada. O <strong><code>log_slave_updates<\/code><\/strong> \u00e9 fundamental se voc\u00ea pretende usar esta r\u00e9plica como master de outras r\u00e9plicas \u2014 ele instrui o servidor a gravar no seu pr\u00f3prio binlog as transa\u00e7\u00f5es recebidas via replica\u00e7\u00e3o. Isso \u00e9 essencial para topologias de replica\u00e7\u00e3o em cadeia ou para failover manual, pois garante que o binlog da r\u00e9plica contenha todas as transa\u00e7\u00f5es do master.<\/p>\n<p>Ap\u00f3s editar os arquivos, reinicie o servi\u00e7o do MySQL em ambos os servidores para que as novas configura\u00e7\u00f5es entrem em vigor. Em sistemas com <code>systemd<\/code>, utilize:<\/p>\n<pre><code># No master e na r\u00e9plica (execute separadamente em cada servidor)\nsudo systemctl restart mysql   # Ubuntu\/Debian\n# ou\nsudo systemctl restart mysqld  # CentOS\/RHEL\/Rocky\n\n# Verifique se o servi\u00e7o subiu sem erros\nsudo systemctl status mysql   # ou mysqld<\/code><\/pre>\n<pre><code class=\"output\">\u25cf mysql.service - MySQL Community Server\n   Loaded: loaded (\/lib\/systemd\/system\/mysql.service; enabled; vendor preset: enabled)\n   Active: active (running) since Tue 2026-09-01 09:10:00 UTC; 8s ago\n Main PID: 2350 (mysqld)\n    Tasks: 28 (limit: 4915)\n   Memory: 340.2M\n   CGroup: \/system.slice\/mysql.service\n           \u2514\u25002350 \/usr\/sbin\/mysqld<\/code><\/pre>\n<p>Com os servidores reiniciados e as configura\u00e7\u00f5es aplicadas, o pr\u00f3ximo passo \u00e9 criar o usu\u00e1rio de replica\u00e7\u00e3o no servidor <strong>master<\/strong>. Esse usu\u00e1rio ser\u00e1 utilizado pela r\u00e9plica para se autenticar e baixar os eventos do binlog. Conecte-se ao MySQL como root no master e execute os comandos SQL a seguir. Substitua a senha <code>\"SenhaReplicacaoSegura#2026!\"<\/code> por uma senha forte de sua escolha.<\/p>\n<pre><code>-- Conecte-se ao MySQL no servidor master\nmysql -u root -p\n\n-- Cria o usu\u00e1rio de replica\u00e7\u00e3o com privil\u00e9gio m\u00ednimo necess\u00e1rio\nCREATE USER 'replicador'@'%' IDENTIFIED BY 'SenhaReplicacaoSegura#2026!';\n\n-- Concede o privil\u00e9gio REPLICATION SLAVE (ou REPLICATION REPLICA no MySQL 8.0)\nGRANT REPLICATION SLAVE ON *.* TO 'replicador'@'%';\n\n-- Aplica as mudan\u00e7as de privil\u00e9gios\nFLUSH PRIVILEGES;\n\n-- Verifica a cria\u00e7\u00e3o do usu\u00e1rio\nSELECT user, host FROM mysql.user WHERE user = 'replicador';<\/code><\/pre>\n<pre><code class=\"output\">+------------+------+\n| user       | host |\n+------------+------+\n| replicador | %    |\n+------------+------+\n1 row in set (0.00 sec)<\/code><\/pre>\n<p>O comando <strong><code>CREATE USER<\/code><\/strong> cria a conta <code>replicador<\/code> com acesso a partir de qualquer host (<code>%<\/code>). Em ambientes mais restritivos, voc\u00ea pode substituir <code>%<\/code> pelo IP espec\u00edfico da r\u00e9plica (por exemplo, <code>'replicador'@'192.168.1.20'<\/code>) para reduzir a superf\u00edcie de ataque. O <strong><code>GRANT REPLICATION SLAVE<\/code><\/strong> concede o privil\u00e9gio m\u00ednimo necess\u00e1rio para a replica\u00e7\u00e3o \u2014 o usu\u00e1rio s\u00f3 pode ler binlogs, n\u00e3o tem acesso direto a dados. O <strong><code>FLUSH PRIVILEGES<\/code><\/strong> recarrega a tabela de privil\u00e9gios em mem\u00f3ria, aplicando as mudan\u00e7as imediatamente.<\/p>\n<p>Agora, precisamos obter as coordenadas atuais do binlog no master. Essas coordenadas consistem no nome do arquivo de binlog atual e na posi\u00e7\u00e3o (offset) onde a pr\u00f3xima transa\u00e7\u00e3o ser\u00e1 gravada. A r\u00e9plica usar\u00e1 essas informa\u00e7\u00f5es para saber a partir de onde iniciar a replica\u00e7\u00e3o. Se voc\u00ea estiver utilizando GTIDs (como configuramos), o MySQL pode iniciar a replica\u00e7\u00e3o automaticamente a partir do conjunto de GTIDs j\u00e1 executados no master, sem a necessidade de especificar manualmente o arquivo e a posi\u00e7\u00e3o \u2014 mas \u00e9 importante conhecer ambos os m\u00e9todos.<\/p>\n<p>Para obter as coordenadas do binlog no master, execute:<\/p>\n<pre><code>-- No master, execute:\nSHOW MASTER STATUS;<\/code><\/pre>\n<pre><code class=\"output\">+------------------+----------+--------------+------------------+------------------------------------------+\n| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |\n+------------------+----------+--------------+------------------+------------------------------------------+\n| mysql-bin.000001 |      856 |              |                  | 3f2c8a7d-11e4-8b6f-00ff7a5b9c0e:1        |\n+------------------+----------+--------------+------------------+------------------------------------------+\n1 row in set (0.00 sec)<\/code><\/pre>\n<p>Anote o nome do arquivo (<code>mysql-bin.000001<\/code>) e a posi\u00e7\u00e3o (<code>856<\/code>). Com GTIDs habilitados, o conjunto <code>Executed_Gtid_Set<\/code> tamb\u00e9m \u00e9 exibido, mostrando quais transa\u00e7\u00f5es j\u00e1 foram aplicadas no master. Na configura\u00e7\u00e3o da r\u00e9plica, usaremos o GTID, que \u00e9 mais robusto para failover.<\/p>\n<p>O pr\u00f3ximo passo \u00e9 conectar-se \u00e0 r\u00e9plica e configurar a replica\u00e7\u00e3o apontando para o master. No MySQL 8.0, os comandos <code>CHANGE MASTER TO<\/code> foram substitu\u00eddos por <code>CHANGE REPLICATION SOURCE TO<\/code>, embora ambas as sintaxes ainda funcionem por compatibilidade. Vamos utilizar a nova nomenclatura, recomendada pela Oracle.<\/p>\n<pre><code>-- Conecte-se ao MySQL na r\u00e9plica (db-slave-01)\nmysql -u root -p\n\n-- Pausa a replica\u00e7\u00e3o antes de alterar a configura\u00e7\u00e3o (boa pr\u00e1tica)\nSTOP REPLICA;\n\n-- Configura a fonte da replica\u00e7\u00e3o usando GTID\nCHANGE REPLICATION SOURCE TO\n  SOURCE_HOST = '192.168.1.10',\n  SOURCE_USER = 'replicador',\n  SOURCE_PASSWORD = 'SenhaReplicacaoSegura#2026!',\n  SOURCE_AUTO_POSITION = 1;\n\n-- Inicia a replica\u00e7\u00e3o\nSTART REPLICA;\n\n-- Verifica o status da replica\u00e7\u00e3o\nSHOW REPLICA STATUS\\G<\/code><\/pre>\n<pre><code class=\"output\">*************************** 1. row ***************************\n             Replica_IO_State: Waiting for source to send event\n                  Source_Host: 192.168.1.10\n                  Source_User: replicador\n                  Source_Port: 3306\n                Connect_Retry: 60\n              Source_Log_File: mysql-bin.000001\n          Read_Source_Log_Pos: 856\n               Relay_Log_File: db-slave-01-relay-bin.000002\n                Relay_Log_Pos: 1056\n        Relay_Source_Log_File: mysql-bin.000001\n           Replica_IO_Running: Yes\n          Replica_SQL_Running: Yes\n          Exec_Source_Log_Pos: 856\n              Relay_Log_Space: 1256\n              Until_Condition: None\n               Source_Server_Id: 1\n                    Source_UUID: 3f2c8a7d-11e4-8b6f-00ff7a5b9c0e\n             Source_Info_File: mysql.slave_master_info\n                    SQL_Delay: 0\n          SQL_Remaining_Delay: NULL\n      Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates\n           Source_Retry_Count: 10\n                  Source_UUID: 3f2c8a7d-11e4-8b6f-00ff7a5b9c0e\n                 Source_Bind: \n      Last_IO_Error_Timestamp: \n     Last_SQL_Error_Timestamp: \n               Source_SSL_Allowed: No\n            Source_SSL_CA_File: \n            Source_SSL_CA_Path: \n            Source_SSL_Cert_File: \n            Source_SSL_Cipher: \n               Source_SSL_Key: \n        Source_SSL_Verify_Server_Cert: No\n      Replica_IO_Running_State: Waiting for source to send event\n      Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates\n           Retrieved_Gtid_Set: 3f2c8a7d-11e4-8b6f-00ff7a5b9c0e:1\n            Executed_Gtid_Set: 3f2c8a7d-11e4-8b6f-00ff7a5b9c0e:1\n                Auto_Position: 1\n         Replicate_Rewrite_Db: \n                 Channel_Name: \n           Source_TLS_Version: \n       Source_public_key_path: \n        Get_Source_public_key: 0\n            Network_Namespace:<\/code><\/pre>\n<p>A sa\u00edda do <strong><code>SHOW REPLICA STATUS<\/code><\/strong> \u00e9 densa, mas os campos cr\u00edticos s\u00e3o <strong><code>Replica_IO_Running: Yes<\/code><\/strong> e <strong><code>Replica_SQL_Running: Yes<\/code><\/strong>. Ambas as threads da r\u00e9plica est\u00e3o em execu\u00e7\u00e3o, o que indica que a replica\u00e7\u00e3o est\u00e1 funcional. O campo <strong><code>Replica_IO_State: Waiting for source to send event<\/code><\/strong> mostra que a r\u00e9plica est\u00e1 aguardando novos eventos do master. O <strong><code>Source_Host<\/code><\/strong> confirma o endere\u00e7o do master, e <strong><code>Source_User<\/code><\/strong> o usu\u00e1rio de replica\u00e7\u00e3o. O <strong><code>Executed_Gtid_Set<\/code><\/strong> e o <strong><code>Retrieved_Gtid_Set<\/code><\/strong> devem estar id\u00eanticos ao <code>Executed_Gtid_Set<\/code> do master, indicando sincroniza\u00e7\u00e3o total.<\/p>\n<p>Para testar a replica\u00e7\u00e3o de forma pr\u00e1tica, crie um banco de dados e uma tabela no master, insira alguns registros e verifique se eles aparecem na r\u00e9plica. Execute os comandos abaixo no servidor <strong>master<\/strong>:<\/p>\n<pre><code>-- No master, execute:\nCREATE DATABASE IF NOT EXISTS curso_replicacao;\nUSE curso_replicacao;\nCREATE TABLE clientes (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  nome VARCHAR(100) NOT NULL,\n  email VARCHAR(100) UNIQUE,\n  criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n) ENGINE=InnoDB;\n\nINSERT INTO clientes (nome, email) VALUES\n  ('Carlos Silva', 'carlos.silva@email.com'),\n  ('Maria Souza', 'maria.souza@email.com'),\n  ('Jo\u00e3o Pereira', 'joao.pereira@email.com');\n\n-- Verifica os dados no master\nSELECT * FROM clientes;<\/code><\/pre>\n<pre><code class=\"output\">+----+----------------+---------------------------+---------------------+\n| id | nome           | email                     | criado_em           |\n+----+----------------+---------------------------+---------------------+\n|  1 | Carlos Silva   | carlos.silva@email.com    | 2026-09-01 09:15:00 |\n|  2 | Maria Souza    | maria.souza@email.com     | 2026-09-01 09:15:00 |\n|  3 | Jo\u00e3o Pereira   | joao.pereira@email.com    | 2026-09-01 09:15:00 |\n+----+----------------+---------------------------+---------------------+\n3 rows in set (0.01 sec)<\/code><\/pre>\n<p>Agora, na r\u00e9plica, consulte a mesma tabela para confirmar que os dados foram replicados automaticamente:<\/p>\n<pre><code>-- Na r\u00e9plica, execute:\nUSE curso_replicacao;\nSELECT * FROM clientes;<\/code><\/pre>\n<pre><code class=\"output\">+----+----------------+---------------------------+---------------------+\n| id | nome           | email                     | criado_em           |\n+----+----------------+---------------------------+---------------------+\n|  1 | Carlos Silva   | carlos.silva@email.com    | 2026-09-01 09:15:01 |\n|  2 | Maria Souza    | maria.souza@email.com     | 2026-09-01 09:15:01 |\n|  3 | Jo\u00e3o Pereira   | joao.pereira@email.com    | 2026-09-01 09:15:01 |\n+----+----------------+---------------------------+---------------------+\n3 rows in set (0.00 sec)<\/code><\/pre>\n<p>Se voc\u00ea chegou at\u00e9 aqui e os dados est\u00e3o id\u00eanticos, parab\u00e9ns! A replica\u00e7\u00e3o master-slave est\u00e1 funcionando corretamente. Na pr\u00f3xima se\u00e7\u00e3o, detalharemos a configura\u00e7\u00e3o avan\u00e7ada e as verifica\u00e7\u00f5es sistem\u00e1ticas para garantir que o ambiente esteja \u00edntegro e pronto para produ\u00e7\u00e3o.<\/p>\n<h3>Configura\u00e7\u00e3o Detalhada e Par\u00e2metros Avan\u00e7ados da Replica\u00e7\u00e3o MySQL<\/h3>\n<p>Al\u00e9m dos par\u00e2metros b\u00e1sicos que configuramos, a <strong>Replica\u00e7\u00e3o MySQL<\/strong> oferece uma s\u00e9rie de ajustes avan\u00e7ados que podem melhorar o desempenho, a seguran\u00e7a e a resili\u00eancia do ambiente. Nesta se\u00e7\u00e3o, vamos explorar esses par\u00e2metros e mostrar o conte\u00fado completo de um arquivo de configura\u00e7\u00e3o de produ\u00e7\u00e3o que utilizamos como refer\u00eancia em nossos projetos na <strong>JRT Technology Solutions<\/strong>. Cada op\u00e7\u00e3o ser\u00e1 explicada em detalhes para que voc\u00ea entenda o impacto de cada escolha.<\/p>\n<p>Um dos ajustes mais importantes em r\u00e9plicas sob carga intensa \u00e9 a <strong>replica\u00e7\u00e3o paralela<\/strong>. No MySQL 8.0, a r\u00e9plica pode aplicar transa\u00e7\u00f5es em m\u00faltiplas threads simult\u00e2neas, desde que as transa\u00e7\u00f5es n\u00e3o escrevam nas mesmas linhas (detec\u00e7\u00e3o de conflito baseada em vi\u00e9s de commit). Para ativar esse recurso, defina os par\u00e2metros <code>replica_parallel_workers<\/code> (n\u00famero de threads) e <code>replica_parallel_type<\/code> como <code>DATABASE<\/code> ou <code>LOGICAL_CLOCK<\/code>. O modo <code>LOGICAL_CLOCK<\/code> \u00e9 mais eficiente, permitindo paralelismo mesmo dentro do mesmo banco de dados, desde que as transa\u00e7\u00f5es sejam independentes. Em cargas de leitura mistas com muitas escritas pequenas, isso pode reduzir drasticamente o lag de replica\u00e7\u00e3o.<\/p>\n<p>Outro conjunto de par\u00e2metros controla a <strong>seguran\u00e7a e a integridade<\/strong>. O <code>sync_binlog<\/code> que configuramos como <code>1<\/code> garante que cada evento do binlog seja gravado em disco antes da confirma\u00e7\u00e3o da transa\u00e7\u00e3o. O <code>innodb_flush_log_at_trx_commit<\/code> tem efeito semelhante para o log de transa\u00e7\u00f5es do InnoDB: o valor <code>1<\/code> \u00e9 o mais seguro, pois for\u00e7a a grava\u00e7\u00e3o do redo log a cada commit. Em r\u00e9plicas, muitos administradores relaxam esses par\u00e2metros para <code>0<\/code> ou <code>2<\/code> para ganhar desempenho, aceitando uma pequena janela de perda em caso de crash \u2014 mas isso deve ser avaliado com cuidado. Em nossos ambientes de produ\u00e7\u00e3o na <strong>JRT Technology Solutions<\/strong>, mantemos os valores conservadores no master e toleramos alguma flexibilidade nas r\u00e9plicas apenas ap\u00f3s an\u00e1lise de risco.<\/p>\n<p>Abaixo, apresentamos um arquivo de configura\u00e7\u00e3o completo para o <strong>master<\/strong>, com par\u00e2metros avan\u00e7ados comentados. Este arquivo pode ser usado como refer\u00eancia para um ambiente de produ\u00e7\u00e3o real. Lembre-se de substituir os valores conforme sua topologia.<\/p>\n<pre><code># ==============================================================\n# ARQUIVO DE CONFIGURA\u00c7\u00c3O COMPLETO DO MASTER \u2014 PRODU\u00c7\u00c3O\n# MySQL 8.0 \u2014 Replica\u00e7\u00e3o MySQL master-slave\n# ==============================================================\n[mysqld]\n\n# Identifica\u00e7\u00e3o do servidor (obrigat\u00f3rio e \u00fanico)\nserver-id = 1\n\n# Caminho e prefixo dos arquivos de binary log\nlog_bin = \/var\/lib\/mysql\/mysql-bin\n\n# Formato ROW para m\u00e1xima consist\u00eancia\nbinlog_format = ROW\n\n# Ativa GTID\ngtid_mode = ON\nenforce_gtid_consistency = ON\n\n# Expira\u00e7\u00e3o dos binlogs (7 dias)\nbinlog_expire_logs_days = 7\n\n# Tamanho m\u00e1ximo do binlog antes da rota\u00e7\u00e3o\nmax_binlog_size = 256M\n\n# Sincroniza binlog a cada transa\u00e7\u00e3o (m\u00e1xima seguran\u00e7a)\nsync_binlog = 1\n\n# Sincroniza redo log do InnoDB a cada commit\ninnodb_flush_log_at_trx_commit = 1\n\n# Define o endere\u00e7o de bind (comente para aceitar todas as interfaces)\nbind-address = 0.0.0.0\n\n# Define o charset padr\u00e3o e collation\ncharacter-set-server = utf8mb4\ncollation-server = utf8mb4_unicode_ci\n\n# Ajustes de InnoDB para desempenho\ninnodb_buffer_pool_size = 2G\ninnodb_log_file_size = 512M\ninnodb_flush_method = O_DIRECT\n\n# Ativa o log de erros\nlog_error = \/var\/log\/mysql\/error.log\n\n# Ativa o log de consultas lentas (\u00fatil para diagn\u00f3stico)\nslow_query_log = 1\nslow_query_log_file = \/var\/log\/mysql\/mysql-slow.log\nlong_query_time = 2\n\n# Define o tamanho m\u00e1ximo de pacote para evitar erros com blobs grandes\nmax_allowed_packet = 256M\n\n# Ativa a compress\u00e3o de binlog (economiza banda em links de replica\u00e7\u00e3o)\n# binlog_transaction_compression = ON\n# binlog_transaction_compression_level_zstd = 3<\/code><\/pre>\n<p>Note que os par\u00e2metros avan\u00e7ados como <code>innodb_buffer_pool_size<\/code>, <code>innodb_log_file_size<\/code> e <code>innodb_flush_method<\/code> s\u00e3o espec\u00edficos do InnoDB e afetam o desempenho geral do servidor, n\u00e3o apenas a replica\u00e7\u00e3o. O tamanho do buffer pool deve ser ajustado de acordo com a mem\u00f3ria dispon\u00edvel da m\u00e1quina \u2014 uma regra pr\u00e1tica \u00e9 alocar entre 50% e 70% da RAM para o buffer pool em servidores dedicados ao MySQL. O <code>innodb_flush_method<\/code> como <code>O_DIRECT<\/code> evita o double buffering e melhora a performance de I\/O em sistemas Linux. O par\u00e2metro <code>binlog_transaction_compression<\/code> est\u00e1 comentado, mas pode ser ativado para economizar largura de banda em links de replica\u00e7\u00e3o entre data centers \u2014 algo muito \u00fatil em arquiteturas distribu\u00eddas.<\/p>\n<p>Para a <strong>r\u00e9plica<\/strong>, o arquivo de configura\u00e7\u00e3o \u00e9 semelhante, com a adi\u00e7\u00e3o de par\u00e2metros espec\u00edficos para a replica\u00e7\u00e3o paralela e o registro de atualiza\u00e7\u00f5es. Segue o conte\u00fado completo comentado:<\/p>\n<pre><code># ==============================================================<br \/>\n# ARQUIVO DE CONFIGURA\u00c7\u00c3O COMPLETO DA R\u00c9PLICA \u2014 PRODU\u00c7\u00c3O<br \/>\n# MySQL 8.0 \u2014 Replica\u00e7\u00e3o MySQL master-slave<br \/>\n# ==============================================================<br \/>\n[mysqld]<\/p>\n<p># Identifica\u00e7\u00e3o do servidor (diferente do master)<br \/>\nserver-id = 2<\/p>\n<p># Ativa binlog na r\u00e9plica (necess\u00e1rio para failover)<br \/>\nlog_bin = \/var\/lib\/mysql\/mysql-bin<\/p>\n<p># Formato ROW<br \/>\nbinlog_format = ROW<\/p>\n<p># Ativa GTID<br \/>\ngtid_mode = ON<br \/>\nenforce_gtid_consistency = ON<\/p>\n<p># Expira\u00e7\u00e3o dos binlogs<br \/>\nbinlog_expire_logs_days = 7<\/p>\n<p># Registra no binlog da r\u00e9plica as transa\u00e7\u00f5es recebidas (failover)<br \/>\nlog_slave_updates = ON<\/p>\n<p># Sincroniza\u00e7\u00e3o de binlog<br \/>\nsync_binlog = 1<\/p>\n<p># Par\u00e2metros de replica\u00e7\u00e3o paralela (reduz lag)<br \/>\nreplica_parallel_workers = 4<br \/>\nreplica_parallel_type = LOGICAL_CLOCK<\/p>\n<p># Endere\u00e7o de bind<br \/>\nbind-address = 0.0.0.0<\/p>\n<p># Charset padr\u00e3o<br \/>\ncharacter-set-server = utf8mb4<br \/>\ncollation-server = utf<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de MySQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20MySQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a &#8230; <a title=\"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/\" aria-label=\"Read more about Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2621,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[3406],"class_list":["post-2622","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-mysql-do-zero-ao-avancado-replicacao-mysql-master-slave-e-group-replication"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-01T20:56:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-01T20:56:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#blogposting\",\"name\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1788296197903.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication\"},\"datePublished\":\"2026-09-01T17:56:41-03:00\",\"dateModified\":\"2026-09-01T17:56:41-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#webpage\"},\"articleSection\":\"DevOps, MySQL \\u2014 Do Zero ao Avan\\u00e7ado: Replica\\u00e7\\u00e3o MySQL \\u2014 master-slave e group replication\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#listItem\",\"name\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#listItem\",\"position\":3,\"name\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/\",\"name\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions\",\"description\":\"Nesta aula avan\\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\\u00e7\\u00e3o MySQL. A replica\\u00e7\\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1788296197903.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 21: Replica\\u00e7\\u00e3o MySQL \\u2014 Master-Slave e Group Replication\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/01\\\/aula-21-replicacao-mysql-master-slave-e-group-replication\\\/#mainImage\"},\"datePublished\":\"2026-09-01T17:56:41-03:00\",\"dateModified\":\"2026-09-01T17:56:41-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions","description":"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#blogposting","name":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions","headline":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1788296197903.jpg","width":1440,"height":1024,"caption":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication"},"datePublished":"2026-09-01T17:56:41-03:00","dateModified":"2026-09-01T17:56:41-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#webpage"},"articleSection":"DevOps, MySQL \u2014 Do Zero ao Avan\u00e7ado: Replica\u00e7\u00e3o MySQL \u2014 master-slave e group replication"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#listItem","name":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#listItem","position":3,"name":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/","name":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions","description":"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1788296197903.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#mainImage","width":1440,"height":1024,"caption":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/#mainImage"},"datePublished":"2026-09-01T17:56:41-03:00","dateModified":"2026-09-01T17:56:41-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions","og:description":"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-09-01T20:56:41+00:00","article:modified_time":"2026-09-01T20:56:41+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication - BLOG - JRT Technology Solutions","twitter:description":"Nesta aula avan\u00e7ada do nosso curso, vamos explorar um dos pilares da alta disponibilidade e escalabilidade em bancos de dados: a Replica\u00e7\u00e3o MySQL. A replica\u00e7\u00e3o permite copiar dados de um servidor MySQL para um ou mais servidores de destino, criando ambientes resilientes, distribu\u00eddos geograficamente e prontos para atender cargas de leitura intensas ou garantir a","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2622","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-01 20:57:17","updated":"2026-09-01 20:57:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 21: Replica\u00e7\u00e3o MySQL \u2014 Master-Slave e Group Replication","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/01\/aula-21-replicacao-mysql-master-slave-e-group-replication\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2622"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2622\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2621"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}