androide

Come configurare il master mysql (mariadb)

[CENTOS] - #61 Backup e ripristino Mysql con i Binary Log

[CENTOS] - #61 Backup e ripristino Mysql con i Binary Log

Sommario:

Anonim

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 fungono da slave. Per impostazione predefinita, la replica è asincrona quando il master invia eventi che descrivono le modifiche al database nel suo registro binario e gli slave richiedono gli eventi quando sono pronti.

In questa guida, ti mostreremo come impostare la replica Master / Slave MariaDB con un server master e uno slave su Debian 10. MariaDB è l'implementazione predefinita di MySQL in Debian. Lo stesso vale per Oracle MySQL.

Questo tipo di topologia di replica è più adatto per la distribuzione di repliche di lettura per il ridimensionamento della lettura, il backup di database live per il ripristino di emergenza e per i lavori 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 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

Il repository Debian 10 predefinito include MariaDB versione 10.3. È meglio installare la stessa versione di MariaDB su entrambi i server per evitare potenziali problemi.

Installa MariaDB sia sul master che sullo slave emettendo i seguenti comandi:

sudo apt-get update sudo apt-get install mariadb-server

Configurazione del server principale

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

  • Impostare il server MariaDB per l'ascolto sull'IP privato. Impostare un ID server univoco. Abilitare 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

Una volta fatto, salva il file e riavvia il servizio MySQL per rendere effettive le modifiche:

sudo systemctl restart mariadb

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

sudo mysql

Eseguire le seguenti query SQL per creare un utente chiamato replica e concedere all'utente il privilegio REPLICATION SLAVE :

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 desideri.

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

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 della posizione '328'. Questi valori sono necessari durante la configurazione del server slave e probabilmente saranno diversi sul server.

Configurazione del server slave

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

  • Impostare il server MySQL per l'ascolto sull'IP privato. Impostare un ID server univoco. Abilitare 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 prossimo passo è configurare i parametri che il server slave utilizzerà per connettersi al server master. Accedi alla shell MariaDB:

sudo mysql

Inizia arrestando i thread slave:

STOP SLAVE;

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

CHANGE MASTER TO MASTER_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 essere uguali ai valori ottenuti dal server principale.

Al termine, avviare i thread slave.

START SLAVE;

Prova la configurazione

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

Per verificare che tutto sia configurato correttamente, creare un nuovo database sul server principale:

sudo mysql

CREATE DATABASE replicatest;

Accedi alla shell MySQL slave:

sudo mysql

Eseguire il comando seguente per elencare tutti i database:

SHOW DATABASES;

Noterai che il database che hai creato sul server principale è replicato sullo slave:

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

Conclusione

In questo tutorial, ti abbiamo mostrato come creare una replica Master / Slave MariaDB su Debian 10.

Sentiti libero di lasciare un commento in caso di domande.

debian mysql mariadb