GNU/Linux >> Linux Esercitazione >  >> Debian

Come configurare la replica master-slave MySQL (MariaDB) su Debian 10

La replica di MySQL è un processo di copia dei dati da un server di database (master) a uno o più server (slave).

MySQL supporta diverse topologie di replica con la topologia Master/Slave che è una delle topologie più note in cui un server di database funge da master, mentre uno o più server agiscono da slave. Per impostazione predefinita, la replica è asincrona in cui il master invia gli eventi che descrivono le modifiche del database al suo log binario e gli slave richiedono gli eventi quando sono pronti.

In questa guida, ti mostreremo come configurare la replica master/slave di MariaDB con un server master e uno slave su Debian 10. MariaDB è l'implementazione predefinita di MySQL in Debian. Gli stessi passaggi si applicano a Oracle MySQL.

Questo tipo di topologia di replica è più adatto per la distribuzione di repliche di lettura per il ridimensionamento in lettura, il backup di database live per il ripristino di emergenza e per i processi di analisi.

Prerequisiti #

Supponiamo che tu abbia due server che eseguono Debian 10, che comunicano tra loro su una rete privata. Se il tuo provider di hosting non supporta gli indirizzi IP privati, puoi utilizzare gli indirizzi IP pubblici e configurare il firewall per consentire il traffico sulla porta 3306 solo da fonti attendibili.

I server utilizzati in questo esempio hanno i seguenti indirizzi IP:

Master IP: 10.10.8.12
Slave IP:  10.10.8.164

Installazione di MariaDB #

L'impostazione predefinita I repository Debian 10 includono MariaDB versione 10.3. È meglio installare la stessa versione di MariaDB su entrambi i server per evitare potenziali problemi.

Installa MariaDBon sia sul master che sullo slave eseguendo i seguenti comandi:

sudo apt-get updatesudo apt-get install mariadb-server

Configurazione del server master #

Il primo passo è configurare il server principale. Apporteremo le seguenti modifiche:

  • Imposta il server MariaDB in ascolto sull'IP privato.
  • Imposta un ID server univoco.
  • Abilita la registrazione binaria.

Apri il file di configurazione di MariaDB e decommenta o imposta le seguenti righe:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
master:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.12
server-id              = 1
log_bin                = /var/log/mysql/mysql-bin.log

Al termine, salva il file e riavvia il servizio MySQL per rendere effettive le modifiche:

sudo systemctl restart mariadb

Il passaggio successivo consiste nel creare un nuovo utente di replica. Accedi al server MariaDB come utente root:

sudo mysql

Esegui le seguenti query SQL per creare un utente denominato replica e concedi il REPLICATION SLAVE privilegio per l'utente:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Assicurati di cambiare l'IP con il tuo indirizzo IP slave. Puoi nominare l'utente come vuoi.

Mentre sei ancora all'interno del prompt di MySQL, esegui il seguente comando che stamperà il nome e la posizione del file binario.

SHOW MASTER STATUS\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 328
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.001 sec)

Prendi nota del nome del file, 'mysql-bin.000001' e Posizione '328' . Questi valori sono necessari durante la configurazione del server slave e probabilmente saranno diversi sul tuo server.

Configurazione del server slave #

Apporteremo le stesse modifiche sul server slave di quelle sul master:

  • Imposta il server MySQL in ascolto sull'IP privato.
  • Imposta un ID server univoco.
  • Abilita la registrazione binaria.

Apri il file di configurazione di MariaDB e modifica le seguenti righe:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
slave:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.164
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log

Riavvia il servizio MariaDB:

sudo systemctl restart mariadb

Il passaggio successivo consiste nel configurare i parametri che il server slave utilizzerà per connettersi al server master. Accedi alla shell MariaDB:

sudo mysql

Inizia interrompendo i thread slave:

STOP SLAVE;

Eseguire la query seguente per configurare la replica master/slave:

CHANGE MASTER TOMASTER_HOST='10.10.8.12',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=328;

Assicurati di utilizzare l'indirizzo IP, il nome utente e la password corretti. Il nome e la posizione del file di registro devono corrispondere ai valori ottenuti dal server principale.

Una volta terminato, avvia i thread slave.

START SLAVE;

Verifica la configurazione #

A questo punto, dovresti avere una configurazione di replica Master/Slave funzionante.

Per verificare che tutto sia impostato correttamente, crea un nuovo database sul server master:

sudo mysql
CREATE DATABASE replicatest;

Accedi alla shell MySQL slave:

sudo mysql

Esegui il comando seguente per elencare tutti i database:

SHOW DATABASES;

Noterai che il database che hai creato sul server master viene replicato sullo slave:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Debian
  1. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  2. Come installare e configurare Mariadb 10 in Debian 11

  3. Come installare MySQL Server su Debian 9

  4. Come installare Zabbix su Debian 9

  5. Come configurare un firewall con CSF su Debian 9

Come configurare server e client NTP su Debian 10

Come configurare LAMP con Debian 11

Come configurare Samba Server con Debian 11

Come installare MySQL 8.0 Server su Debian 11 Bullseye

Come installare MySQL/MariaDB su Debian 11

Come impostare la replica MySQL Master-Slave su RHEL 7?