JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como configurar a replicação MySQL no Debian

Editado 4 dias atrás por ExtremeHow Equipe Editorial

DebianMySQLReplicaçãoBanco de DadosConfiguração do ServidorSQLLinuxCódigo AbertoAdministração de SistemasInterface de Linha de Comando

Como configurar a replicação MySQL no Debian

Tradução atualizada 4 dias atrás

A replicação MySQL é um processo que permite copiar automaticamente dados de um servidor de banco de dados MySQL (mestre) para um ou mais servidores de banco de dados MySQL (escravos). Essa configuração é muito útil para melhorar o desempenho, confiabilidade e balanceamento de carga. Neste guia, vamos percorrer os passos necessários para configurar a replicação MySQL em um servidor Linux Debian. Vamos cobrir tudo, desde preparar seu servidor, configurar as configurações de replicação e verificar se a replicação está funcionando corretamente. Vamos mergulhar nisso.

1. Compreendendo a replicação MySQL

A replicação MySQL permite a cópia assíncrona de dados entre servidores de banco de dados. O servidor primário é conhecido como mestre, e qualquer servidor secundário que recebe os dados replicados é chamado de escravo. Essa arquitetura é benéfica em muitos cenários, como ambientes de banco de dados intensivo em leitura, processos de backup e recuperação de dados, análise de dados e data centers distribuídos geograficamente.

2. Preparação

Antes de começar a configurar a replicação MySQL, certifique-se de que você tenha os seguintes pré-requisitos em mente:

3. Configurando o servidor mestre

Vamos começar configurando o servidor mestre, que manterá os dados originais e enviará atualizações para os servidores escravos.

Passo 1: Configure o servidor mestre do MySQL

Comece abrindo o arquivo de configuração do MySQL no servidor mestre. Este arquivo geralmente está localizado em /etc/mysql/mysql.conf.d/mysqld.cnf. Use um editor de texto como o nano para editá-lo:

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

Procure a seção [mysqld] no arquivo de configuração e modifique ou adicione as seguintes linhas:

[mysqld] log-bin = mysql-bin server-id = 1

A diretiva log-bin habilita o registro binário, que é necessário para a replicação, pois registra todas as alterações no banco de dados. server-id deve ser um número inteiro positivo único para cada servidor participante na configuração de replicação. Neste caso, usamos 1 como ID do servidor para o mestre.

Depois de editar, salve e feche o arquivo. Se você usou o nano, pode fazer isso pressionando CTRL + X, depois Y e depois ENTER.

Passo 2: Reinicie o MySQL no servidor mestre

Para aplicar as alterações que fizemos, reinicie o serviço MySQL:

sudo systemctl restart mysql

Passo 3: Crie um usuário de replicação

Em seguida, faça login na linha de comando do MySQL no servidor mestre para criar uma conta de usuário que o servidor escravo possa usar para conectar para replicação. Use o seguinte comando:

mysql -u root -p

Após o login, execute os seguintes comandos SQL para criar um usuário de replicação e conceder a ele privilégios. Substitua 'replica_user' e 'password' pelo nome de usuário e senha de sua escolha:

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

Esses comandos criam um novo usuário MySQL com privilégios de replicação. Usar '%' como host permite que o escravo se conecte de qualquer endereço IP.

Passo 4: Obter status do mestre

Antes de prosseguir para configurar o escravo, você precisa registrar o arquivo de log e status atual do mestre. Use o seguinte comando para obter essas informações:

SHOW MASTER STATUS;

Anote os valores File e Position, pois eles serão necessários ao configurar o servidor escravo. A saída pode ser semelhante a esta:

+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 123 | | | +------------------+----------+--------------+------------------+

4. Configurando o servidor escravo

Depois de configurar o servidor mestre, o próximo passo é configurar os servidores escravos.

Passo 1: Configure o servidor escravo do MySQL

Assim como na configuração do mestre, abra a configuração do MySQL em cada servidor escravo editando /etc/mysql/mysql.conf.d/mysqld.cnf:

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

Certifique-se de que a seção [mysqld] tenha as seguintes configurações:

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

server-id deve ser único e diferente de qualquer outro servidor na configuração de replicação. Aqui, usamos 2. A configuração relay-log facilita o processamento do fluxo de replicação do servidor mestre.

Depois de editar, salve e feche o arquivo de configuração como antes.

Passo 2: Reinicie o MySQL no servidor escravo

Reinicie o servidor MySQL no escravo para aplicar as alterações:

sudo systemctl restart mysql

Passo 3: Configure o escravo para conectar ao mestre

Faça login no cliente de linha de comando MySQL no servidor escravo:

mysql -u root -p

Após o login, conecte o escravo ao mestre usando o comando CHANGE MASTER TO. Certifique-se de substituir 'master_host', 'replica_user', 'password', 'mysql-bin.X' e position_number pelo endereço IP do servidor mestre, nome de usuário, senha, arquivo de log e posição obtidos anteriormente:

CHANGE MASTER TO MASTER_HOST = 'master_host', MASTER_USER = 'replica_user', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.X', MASTER_LOG_POS = position_number;

Depois de configurar as informações do mestre, inicie o processo do escravo com o seguinte comando:

START SLAVE;

Passo 4: Verifique o status do escravo

Para verificar se o servidor escravo está configurado corretamente e conectado ao mestre, execute:

SHOW SLAVE STATUS\G;

Olhe para os campos Slave_IO_Running e Slave_SQL_Running na saída. Ambos devem mostrar Yes para indicar que o escravo está funcionando corretamente. Você também deve olhar para os valores de Relay_Master_Log_File e Exec_Master_Log_Pos, que confirmam o progresso da replicação.

5. Testando a configuração de replicação

Depois de configurar ambos os servidores, mestre e escravo, é uma boa prática testar a configuração de replicação para garantir que tudo esteja funcionando como esperado.

Passo 1: Testar sincronização de dados

Para testar a replicação, tente inserir uma entrada de dados simples no servidor mestre e veja se ela aparece no escravo.

No servidor mestre, faça login no MySQL e crie um banco de dados e uma tabela simples:

mysql -u root -p
CREATE DATABASE testdb; USE testdb; CREATE TABLE testtable (id INT PRIMARY KEY AUTO_INCREMENT, value VARCHAR(255)); INSERT INTO testtable (value) VALUES ('Replication Test');

Passo 2: Verifique os dados no servidor escravo

Faça login na linha de comando do MySQL no servidor escravo e verifique se os dados foram replicados:

mysql -u root -p
USE testdb; SELECT * FROM testtable;

Você deve ver a linha inserida na tabela mestre agora presente na tabela escrava. Se a replicação estiver funcionando corretamente, você verá:

+----+------------------+ | id | value | +----+------------------+ | 1 | Replication Test | +----+------------------+

6. Dicas gerais de solução de problemas

Caso surjam problemas durante ou após a configuração, aqui estão algumas etapas gerais de solução de problemas que você pode considerar:

Conclusão

A replicação MySQL no Debian, conforme demonstrado, envolve a configuração de servidores mestre e escravo para lidar e reproduzir alterações do banco de dados em vários sistemas. Esta configuração pode aumentar significativamente a confiabilidade e eficiência de acesso aos dados. Embora configurar a replicação exija algum esforço e compreensão da arquitetura do banco de dados, seguir essas instruções deve tornar o processo gerenciável e bem-sucedido.

Lembre-se de que é sempre uma boa ideia monitorar regularmente seu servidor MySQL e realizar verificações regulares de consistência e desempenho em seus dados replicados para garantir que seus sistemas funcionem de maneira suave e eficiente.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários