OTH HOST

Como Implementar Replicação de Banco de Dados para Garantir Alta Disponibilidade – Estratégias de Failover e Redundância

A replicação de banco de dados é uma estratégia essencial para garantir alta disponibilidade, melhorar desempenho e redundância e evitar perda de dados em caso de falhas. Implementando failover automático, é possível minimizar tempo de inatividade e manter continuidade operacional.

Neste artigo, abordaremos estratégias de replicação em MySQL e PostgreSQL, garantindo resiliência para bancos de dados empresariais.


1. O Que é Replicação de Banco de Dados e Por Que Utilizá-la?

A replicação de banco de dados permite copiar e sincronizar dados entre múltiplos servidores para garantir redundância e escalabilidade.

Vantagens:

  • Alta Disponibilidade: O banco de dados continua operacional mesmo em caso de falhas;
  • Redundância de Dados: Cópias são mantidas em servidores secundários;
  • Melhoria de Performance: Permite balanceamento de carga entre servidores;
  • Failover Automático: Redirecionamento imediato em caso de falha no servidor primário.

💡 Recomendação: Para um ambiente confiável, hospede seu banco de dados em um Servidor VPS da OTH HOST e obtenha redundância com baixo tempo de resposta.


2. Principais Estratégias de Replicação de Banco de Dados

2.1 Replicação Master-Slave (Primário-Secundário)

  • Modelo tradicional, onde um servidor master recebe todas as escritas e os slaves apenas replicam os dados.
  • Vantagem: Redundância e performance.
  • Desvantagem: O slave não aceita escrita, apenas leitura.

2.2 Replicação Master-Master

  • Permite que dois ou mais servidores aceitem leituras e escritas.
  • Vantagem: Alta disponibilidade e failover eficiente.
  • Desvantagem: Pode ocorrer conflito de dados.

2.3 Replicação Assíncrona vs. Sincronizada

  • Sincronizada: O slave confirma a escrita antes de prosseguir.
  • Assíncrona: O master segue o processamento sem esperar a confirmação do slave.
  • Melhor uso: Sincronizada para integridade, assíncrona para performance.

Melhor abordagem: Para aplicações críticas, use replicação sincronizada. Para aplicações escaláveis, prefira replicação assíncrona.


3. Configurando Replicação no MySQL

3.1 Instalando o MySQL em Ambos os Servidores

sudo apt update && sudo apt install mysql-server -y

3.2 Configurando o Servidor Master

Edite o arquivo my.cnf:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Adicione as seguintes configurações:

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_do_db=meu_banco

Reinicie o MySQL:

sudo systemctl restart mysql

Crie um usuário replicador:

CREATE USER 'replicador'@'%' IDENTIFIED BY 'senha_forte';
GRANT REPLICATION SLAVE ON *.* TO 'replicador'@'%';
FLUSH PRIVILEGES;

3.3 Configurando o Servidor Slave

Edite my.cnf no slave:

[mysqld]
server-id=2
relay_log=mysql-relay-bin

Reinicie o MySQL:

sudo systemctl restart mysql

Configure a replicação no slave:

CHANGE MASTER TO MASTER_HOST='IP_DO_MASTER',
MASTER_USER='replicador', MASTER_PASSWORD='senha_forte',
MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4;
START SLAVE;

Verifique o status da replicação:

SHOW SLAVE STATUS\G;

Agora, o servidor slave está replicando os dados do master.


4. Configurando Replicação no PostgreSQL

4.1 Configurando o Servidor Primário

Edite o arquivo postgresql.conf:

sudo nano /etc/postgresql/13/main/postgresql.conf

Adicione:

wal_level = replica
archive_mode = on
max_wal_senders = 3
hot_standby = on

Edite pg_hba.conf para permitir conexões do slave:

host replication replicador 192.168.1.2/32 md5

Reinicie o PostgreSQL:

sudo systemctl restart postgresql

Crie um usuário replicador:

CREATE USER replicador REPLICATION LOGIN ENCRYPTED PASSWORD 'senha_forte';

4.2 Configurando o Servidor Secundário

Pare o PostgreSQL:

sudo systemctl stop postgresql

Clone os dados do servidor primário:

pg_basebackup -h 192.168.1.1 -U replicador -D /var/lib/postgresql/13/main -P -R

Reinicie o PostgreSQL:

sudo systemctl start postgresql

Agora, o servidor secundário estará sincronizado com o primário.


5. Implementando Failover Automático

Para evitar tempo de inatividade, utilize ferramentas como Patroni (PostgreSQL) ou MHA (MySQL).

Failover com Patroni (PostgreSQL):

  • Detecta falhas automaticamente;
  • Promove um novo líder caso o primário falhe.

Failover com MySQL MHA:

  • Permite que um slave se torne master automaticamente.
sudo apt install mha4mysql-node mha4mysql-manager -y

Com isso, o sistema pode alternar automaticamente entre servidores em caso de falha.


6. Conclusão

Implementar replicação de banco de dados garante alta disponibilidade e integridade dos dados. As estratégias abordadas neste artigo ajudam a evitar falhas críticas e garantem continuidade operacional.

🚀 Quer um servidor otimizado para replicação? Confira os Servidores VPS da OTH HOST e melhore a segurança e desempenho dos seus bancos de dados! 🔄🔒

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *