GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare MariaDB Master Slave Replication su Ubuntu 18.04

MariaDB è un sistema di gestione di database relazionali open source gratuito ed è una delle opzioni più popolari. La replica è il processo di copia dei dati da un server di database master a un altro server di database slave. Nella topologia master-slave, un server funge da master e altri server da slave. Nella replica master-slave, i dati vengono replicati solo in un modo. Se si modificano i dati sul server slave, non verranno replicati sul server master. Se il server master si interrompe, puoi comunque recuperare i tuoi dati dal server slave.

È possibile utilizzare la replica master-slave di MariaDB per diversi scopi; alcuni di questi sono elencati di seguito:

  • Scalabilità e alta disponibilità
  • Backup
  • Analisi
  • Bilanciamento del carico
  • Aumento delle prestazioni del database
  • Riduzione del failover
  • Sicurezza dei dati

In questo tutorial, ti mostreremo come configurare la replica master-slave MariaDB sul server Ubuntu 18.04.

Prerequisiti

  • Due nuove VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud.
  • Una password root statica configurata su entrambi i server.

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.

apt-get update -y

Fase 2:installa MariaDB su entrambi i server

Innanzitutto, dovrai installare MariaDB su entrambi i server. Puoi installarlo eseguendo il seguente comando:

apt-get install mariadb-server mariadb-client -y

Dopo aver installato MariaDB, esegui il seguente comando per proteggere l'installazione di MariaDB:

mysql_secure_installation

Rispondi a tutte le domande come mostrato di seguito:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

A questo punto, hai installato e protetto entrambi i server MariaDB.

Fase 3:configurazione del server principale

Successivamente, sarà necessario abilitare la registrazione binaria e la replica sul server master. Per farlo, apri il file /etc/mysql/mariadb.conf.d/50-server.cnf con il tuo editor di testo preferito:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Trova la riga bind-address e modifica il valore in 0.0.0.0 per consentire le connessioni in entrata.

bind-address            = 0.0.0.0

Quindi, aggiungi le seguenti righe alla fine del file:

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio MariaDB per implementare le modifiche:

systemctl restart mariadb

Successivamente, dovrai creare un utente di replica. Il server slave utilizzerà questo utente per accedere al server master e richiedere log binari.

Innanzitutto, accedi alla shell di MariaDB con il seguente comando:

mysql -u root -p

Fornisci la tua password di root quando richiesto, quindi crea un utente con il seguente comando:

CREATE USER 'replication'@'%' identified by 'your-password';

Quindi, concedi il privilegio di replica slave a questo utente con il comando seguente:

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

Quindi, svuota i privilegi con il seguente comando:

FLUSH PRIVILEGES;

Quindi, controlla lo stato del server master con il seguente comando:

show master status;

Dovresti ottenere il seguente output:

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

Quindi, esci dalla shell MariaDB con il seguente comando:

EXIT;

Nota :Ricorda il File e Posizione dettagli dall'output di cui sopra. Avrai bisogno di questi valori durante la configurazione del server slave.

Passaggio 4:configurazione del server slave

Quindi, accedi al server slave e apri il file /etc/mysql/mariadb.conf.d/50-server.cnf:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Trova la riga bind-address e modifica il valore in 0.0.0.0 come mostrato di seguito:

bind-address            = 0.0.0.0

Quindi, aggiungi le seguenti righe alla fine del file:

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio MariaDB per implementare le modifiche:

systemctl restart mariadb

Quindi, accedi alla shell MariaDB con il seguente comando:

mysql -u root -p

Fornisci la tua password di root quando richiesto, quindi interrompi i thread slave come mostrato di seguito:

stop slave;

Quindi, esegui il comando seguente per configurare lo slave per replicare il master:

CHANGE MASTER TO MASTER_HOST = 'your-master-host-ip', MASTER_USER = 'replication', MASTER_PASSWORD = 'your-password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 313;

Quindi, avvia i thread slave ed esci dalla shell MariaDB come mostrato di seguito:

start slave;
exit;

Nota :Modifica il comando precedente per utilizzare l'indirizzo IP dell'host principale e la password che hai creato nei passaggi precedenti. Utilizza il nome del file di registro e i valori di posizione che hai ottenuto dal server principale.

Passaggio 5:verifica della replica del database

A questo punto è stata configurata la replica master-slave. Ora è il momento di testare la replica tra master e slave.

Sul server master, accedi alla shell MariaDB con il seguente comando:

mysql -u root -p

Fornisci la tua password di root quando richiesto, quindi crea un database con il nome mydb come mostrato di seguito:

create database mydb;

Quindi, crea una tabella con il nome "prodotti" all'interno del database mydb:

use mydb;
CREATE TABLE products(product_id INT NOT NULL AUTO_INCREMENT,product_name VARCHAR(100) NOT NULL,product_manufacturer VARCHAR(40) NOT NULL,submission_date DATE,PRIMARY KEY ( product_id ));

Quindi, esegui il seguente comando per controllare la tabella:

SHOW TABLES;

Uscita:

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

Sul server slave, accedi alla shell MariaDB con il seguente comando:

mysql -u root -p

Fornisci la tua password di root quando richiesto, quindi controlla lo stato dello slave:

SHOW SLAVE STATUS \G

Dovresti vedere il seguente output:

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: your-master-host-ip
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 721
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 945
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Quindi, esegui il comando seguente per verificare se il database è replicato:

show databases;

Dovresti vedere il database mydb che hai creato sul server principale:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
+--------------------+

Quindi, controlla la tabella dei prodotti che hai creato sul server principale:

MariaDB [(none)]> use mydb;
MariaDB [mydb]> show tables;

Dovresti vedere la tabella dei prodotti nel seguente output:

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

Congratulazioni! La tua replica master-slave MariaDB funziona come previsto. Ora puoi facilmente ripristinare il tuo database in caso di errore. Inizia oggi stesso con la replica master-slave di MariaDB con un pacchetto di hosting VPS di Atlantic.Net.


Linux
  1. Come impostare la replica MySQL Master Slave

  2. Come configurare il server Rsyslog su Ubuntu 18.04 LTS

  3. Come configurare MariaDB Galera Cluster su Ubuntu 20.04

  4. Imposta il server Rsyslog su Ubuntu 20.04 - Come farlo?

  5. Come installare MariaDB su Ubuntu 22.04

Come configurare Git Server su Ubuntu 20.04

Come configurare il server Rsyslog su Ubuntu

Come configurare il server DHCP su Ubuntu

Come installare il server DNS master e slave BIND9 su Ubuntu

Procedura:configurazione iniziale del server Ubuntu 15.04

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