-> 8.
1 - MySQL Replication
-> Data is copied from source to replica
-> Replication is Asynchronous by default (significa que a replica;'ao
acontece em algum momento ap[os o commit inicial)
- Can be also semi-synchronous
-> Multiple sources or replicas are possible
- Additional replicas don't require source configuration
-> MySQL Replication Use Cases
-> Scale-out solutions for head-heavy environment
- Scaling out doesn't involve editing the [Link] file.
-> Disaster recovery
-> Simple high availability (requires scripts and/or external tools)
-> Analytics
-> Long-distance data distributuion
-> Replication Steps-Summary
-> 1 - Create replication user on source
-> 2 - Check Source configuration
- SHOW BINARY LOG STATUS
- Confirm GTID (global transaction identifiers) is enabled
-> 3 - Configure replica server
- CHANGE REPLICATION TO SOURCE TO
-> 4 - Start replica
- START REPLICA
- SHOW REPLICA STATUS
-> 8.2 - Asynchronous and Semisynchronous Replication
-> MySQL Asynchronous Replication
- É um modo padrão
- Banco de dados de origem processa transações que são gravas no log de
binários
- Chamado deste modo pois o servidor de origem não aguarda nenhuma
replica antes de confirmar alterações
- Replica mantém uma conexão aberta com a origem
- Réplica obtem uma cópia dos eventos de log de binários da origem e os
grava em um log de retransmissão
- Processo de cópia é gerenciado do servidor de origem com um thread
dedicado chamado binary log dump thread
- A replica aplica alterações do log de retransmissão em seu próprio
banco de dados
- Processo gerenciado por um thread chamado replication SQL thread
-> MySQL Replication Communication
-> MySQL Asynchronous Replication
-> Source: Execute > Binlog > Commit
Replica 1: Relay log > Apply > Binlog > Commit
Replica 2: Relay log > Apply > Binlog > Commit
-> Mysql Semisynchronous Replication
-> Source: Execute > Binlog > Commit
Replica 1: Relay log > ACK> > (Commit on
source) > Apply > Binlog > Commit
Replica 2: Relay log > ACK> > (Commit on source)
> Apply > Binlog > Commit
-> 8.3 Replication Topologies
-> MySQL Source-Source
- Configuração comum em que dois servidores replicam entre si
- Pode ocorrer quando há dois servidores trabalhando com aplicações
diferentes
* No Conflict resolution (High risk of corruption due to asynchronous
changes)
* Set auto_increment options to reduce risk of conflict, for example
- FIRST SERVER: auto_increment_offset=1;
auto_increment_increment=2;
- SECOND SERVER: auto_increment_offset=2;
auto_increment_increment=2;
-> MySQL Replication-Ring Topology
- Onde cada servidor é uma origem e uma réplica de outro
- Versão expandida do modelo source-source
- Sofre dos mesmos riscos de corrupção
-> Multi-source replication
- Cada origem é configurada na replica criando um canal de replicação e
cada canal copia um log de binarios de
uma única origem
- Consolidate updates from multiple sources into one replica
- DCompatible with semi-sync replication
- Online operations (dynaminc replication filters, switch source)