Replicação de Mariadb no RHEL 8/ CENTOS 8

Replicação de Mariadb no RHEL 8/ CENTOS 8
Os desastres acontecem e, quando acontecem, os dados preciosos podem seguir o vento, nunca mais para serem recuperados e, quando recuperados, as empresas geralmente gastam milhões de dólares para recuperá -lo e perder tempo valioso que poderia ter sido gasto em outras operações. E é aqui que entra o conceito de replicação. A replicação está simplesmente tendo várias cópias de um banco de dados. A replicação garante que, a qualquer momento, haja cópias de backup do banco de dados primário para que, no caso de o banco de dados diminuir, os dados ainda possam ser recuperados dos bancos de dados de backup, garantindo redundância e alta disponibilidade. Neste tutorial, você aprenderá como configurar a replicação do esclavo mestre de mariadb no CentOS 8.

Configuração do laboratório

Nó mestre - 192.168.43.13
Nó de escravo - 192.168.43.252

Etapa 1: instale o mariadb nos servidores mestre e escravo

Para começar, você precisa instalar o mariadb no mestre e no escravo. Então siga as etapas abaixo:

Primeiro, faça login no servidor mestre e atualize os pacotes do sistema como mostrado:

$ sudo dnf atualização

Depois de atualizar com êxito seu sistema, agora prossiga e instale o mariadb

$ sudo dnf install mariadb-server

Depois que a instalação for bem -sucedida, você pode verificar se o Mariadb está instalado executando o comando:

$ rpm -qa | Grep Mariadb

Para obter informações mais detalhadas, execute o comando:

$ rpm -qi mariadb -server

Agora comece o serviço Mariadb

$ sudo systemctl start mariadb

Além disso, você também pode permitir que o serviço inicie automaticamente em qualquer sessão de inicialização/reinicialização.

$ sudo systemctl Ativar mariadb

Para verificar se o mecanismo de banco de dados MariaDB está em funcionamento, emitir o comando:

$ sudo Systemctl status mariadb

Perfeito! Mariadb está em funcionamento como esperávamos.

Como é, o mariadb não está protegido e qualquer usuário pode fazer login no mecanismo de banco de dados e ter acesso a todos os bancos de dados e fazer alterações. Obviamente, não queremos que isso aconteça e garantir o banco de dados deve ser uma prioridade superior. Portanto, precisamos proteger o mecanismo de banco de dados definindo uma senha de root. Então, execute o comando abaixo:

$ sudo mysql_secure_installation

O que se segue é um prompt interativo que exigirá para definir a senha raiz do banco de dados e responder a algumas perguntas.

Por padrão, o mariadb é executado na porta 3306. Se você estiver executando um firewall, precisará permitir esta porta para que o mecanismo de banco de dados possa ser acessível a usuários e serviços externos.

Para abrir o porto no firewall, execute a seguinte regra do firewall:

$ sudo firewalld-cmd --add-port = 3306/tcp-zone = public --permanent

Para que a regra seja aplicada, recarregue o firewall:

$ sudo firewalld-cmd--reload

Com o MARIADB instalado e protegido com sucesso no servidor mestre, repita as mesmas etapas no servidor escravo.

Etapa 2: Configure o Mariadb no servidor mestre

Precisamos configurar o daemon mariadb para que nosso servidor mestre pretendido atue como um servidor na configuração. Então abra o arquivo de configuração /etc/meu.CNF

$ sudo vim /etc /meu.CNF

Anexe a configuração abaixo

[MySqld]
Address de ligação = 192.168.43.13
servidor-id = 1
log_bin = mysql-bin
binlog-format = linha

Salvar e sair do arquivo de configuração. Para efetuar as mudanças, reinicie o serviço MariaDB.

$ sudo systemctl reinicie o mariadb-server

Etapa 3: Configure o servidor escravo

Assim como o servidor mestre, o escravo precisa ser configurado para agir como um. Então abra o arquivo de configuração como antes:

$ sudo vim /etc /meu.CNF

Anexe a configuração abaixo

[MySqld]
Address de ligação = 192.168.43.252
servidor-id = 2
log_bin = mysql-bin
binlog-format = linha

Esteja ansioso para fornecer um diferente 'server_id'Do servidor mestre, que é 2 neste caso. E assim como o servidor mestre, o 'bind_address'O parâmetro deve apontar para o endereço IP do escravo.

Salvar e sair do arquivo.

Etapa 3: Crie um usuário de replicação no servidor mestre

Para configurar o escravo para replicação, precisamos voltar ao nó principal e criar um usuário de replicação. Faça login no mecanismo de banco de dados Mariadb.

$ mysql -u root -p

Primeiro, pare o usuário do escravo.

Mariadb [(nenhum)]> pare de escravo;

O usuário Criar um usuário de replicação com os comandos mostrados:

Mariadb [(nenhum)]> Grant Replicação Slave On *.* Para 'réplica_user' @'192.168.43.252 '
Identificado por 'p@ssword123';
Consulta ok, 0 linhas afetadas (0.06 seg)
Mariadb [(nenhum)]> Privilégios de descarga;
Consulta ok, 0 linhas afetadas (0.04 seg)
Mariadb [(none)]> Limite as mesas com o bloqueio de leitura;
Consulta ok, 0 linhas afetadas (0.02 Sec)
Mariadb [(nenhum)]> saída;
Consulta ok, 0 linhas afetadas (0.02 Sec)

Depois disso, verifique se o status do mestre está em execução:

Mariadb [(nenhum)]> Mostrar status mestre \ g

Anote cuidadosamente os valores do nome do arquivo e a posição. Estes serão usados ​​posteriormente para configurar o escravo para replicação.

Da saída acima, isso se traduz em:

Arquivo: mysql-bin.000001
Posição: 1317

Saia do mecanismo MariaDB e crie uma cópia de backup do servidor mestre, como mostrado:

$ sudo mysqldump --l -databases -u root -p> masterDatabase.SQL

Faça login de volta ao mariadb e desbloqueie as tabelas:

Mariadb [(nenhum)]> Desbloquear tabelas;
Mariadb [(nenhum)]> saída;

Lembre -se da cópia de backup que criamos para o banco de dados mestre? Estamos prontos para copiá -lo para o servidor escravo. Então execute o comando abaixo:

$ SCP MasterDatabase.raiz [email protected]:/raiz/

Etapa 4: configure o escravo para replicação

De volta ao nó escravo, importe o arquivo de backup que copiamos do mestre para o mecanismo MariaDB.

$ mysql -u root -p < masterdatabase.sql

E depois reinicie o serviço de mariadb

$ Systemctl reinicie o mariadb

Agora faça login no mecanismo de banco de dados Mariadb e configure o escravo da seguinte forma:

Mariadb [(nenhum)]> pare de escravo; Mariadb [(nenhum)]> Mude o mestre para master_host = '192.168.43.13 ', master_user =' réplica_user ',
Master_password = 'p@ssword123', master_log_file = 'mysql-bin.000001 ' ,
Master_log_pos = 1317;

Lembre -se dos valores que dissemos que você deve se lembrar e possivelmente anotar -os ao exibir o status do servidor mestre? Estes finalmente foram definidos no Master_log_file e Master_log_pos atributos como visto.

Por fim, comece o escravo para inicializar o escravo para começar a replicar do mestre:

Mariadb [(nenhum)]> escravo de início;

Em seguida, verifique o status do escravo

Mariadb [(nenhum)]> Mostrar status de escravo;

Se a configuração foi feita perfeitamente, você não deve obter a saída abaixo de nenhum erro.

O escravo agora está pronto para replicação.

Etapa 5: Replicação do banco de dados de teste

Por fim, precisamos confirmar se nossa configuração está funcionando. Portanto, faça login na instância do mariadb no mestre e crie um banco de dados de teste como mostrado

Mariadb [(nenhum)]> Crie réplica de banco de dados;

Em seguida, confirme a criação do banco de dados

Mariadb [(nenhum)]> mostrar bancos de dados;

Volte para o nó escravo e verifique se o banco de dados existe.

Perfeito! Nossa configuração está funcionando! Todos os bancos de dados subsequentes criados no mestre serão replicados automaticamente e as mudanças sincronizadas no nó escravo. E isso nos leva ao final deste guia.