GTID é um identificador de transação global.
Cada transação feita no banco de dados é criado e associado a um identificador, que é exclusivo para o servidor de origem e destino.
Todo GTID é composto por um numero identificador do servidor de origem e um número de transação .
– source_id : número que identifica o servidor de origem.
– transaction_id: numero de sequencia determinado pela ordem em que a transação foi confirmada.
Como Ativar GTID na replicação ?
Para ativar é necessário alterar duas variáveis no my.cnf:
– enforce_gtid_consistency=on
– gtid_mode=on
Para que funcione corretamente é necessário ainda habilitar o log-bin e o log_slave_updates quando se trata de um master, no slave não é obrigatório ter o log binário ativado.
No manual indica-se iniciar os slaves com a opção de –skip-slave-start, que serve para quando iniciar o banco, não iniciar automaticamente a replicação.
Para que serve GTID ?
O GTID é um identificador exclusivo não apenas para o servidor no qual se originou, mais em todos os servidores em uma determinada topologia de replicação.
Serve para garantir a consistência de informações entre os servidores numa determinada replicação.
Como funciona o GTID?
A atribuição GTID distingue entre transações feitas no master e no slave, desde que a transação seja gravada no log binário. É garantido que as transações que tem GTID sejam crescentes, sem lacunas entre os números gerados. Se a transação não for gravada no log binário, ela não receberá um GTID no servidor de origem. Isso pode ocorrer quando uma transação é somente leitura.
A transação confirmada no master pode ser aplicada somente uma vez no slave, o que ajuda a garantir a consistência. Qualquer tentativa de execução de uma transação subsequente com o mesmo GTID será ignorada pelo servidor.
Se uma transação começou a ser executada, até ela ser confirmada ou revertida, qualquer transação com o mesmo GTID será bloqueada.
Referencias :
https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html
https://dev.mysql.com/doc/refman/5.7/en/replication-options-gtids.html#sysvar_gtid_mode