Replica MariaDB su RHEL 8/ CENTOS 8

Replica MariaDB su RHEL 8/ CENTOS 8
Le catastrofi accadono e quando lo fanno, dati preziosi possono andare con il vento, mai più per essere recuperati e, quando recuperati, le aziende di solito spendono fino a milioni di dollari per riaverlo e perdere tempo prezioso che avrebbe potuto essere speso in altre operazioni. Ed è qui che entra in gioco il concetto di replica. La replica ha semplicemente più copie di un database. La replica garantisce che in qualsiasi momento ci siano copie di backup del database primario in modo che nel caso in cui il database si trasferisca, i dati possano ancora essere recuperati dai database di backup garantendo ridondanza e alta disponibilità. In questo tutorial, imparerai come configurare la replica MariaDB Master-Slave su CentOS 8.

Setup di laboratorio

Master Node - 192.168.43.13
Nodo slave - 192.168.43.252

Passaggio 1: installare MariaDB su server master e slave

Per cominciare, è necessario installare MariaDB sia sul Master che su Slave. Quindi segui i passaggi seguenti:

Innanzitutto, accedi al server principale e aggiorna i pacchetti di sistema come mostrato:

$ sudo dnf aggiornamento

Dopo aver aggiornato correttamente il sistema, ora procedi e installa MariaDB

$ sudo dnf Installa MariaDB-Server

Una volta che l'installazione ha esito positivo, è possibile verificare che MariaDB sia installato eseguendo il comando:

$ rpm -qa | Grep Mariadb

Per ottenere informazioni più dettagliate, eseguire il comando:

$ rpm -qi mariadb -server

Ora inizia il servizio MariaDB

$ sudo systemctl avvia mariadb

Inoltre, è possibile anche abilitare l'avvio automatico del servizio su qualsiasi sessione di avvio/riavvio.

$ sudo systemctl abilita MariaDB

Per verificare che il motore del database MARIADB sia attivo e funzionante, emettere il comando:

$ sudo systemctl status mariadb

Perfetto! Mariadb è attivo e funzionante come ci aspettavamo.

Così com'è, MariaDB non è protetto e qualsiasi utente può accedere al motore del database e avere accesso a tutti i database e apportare modifiche. Naturalmente, non vogliamo che ciò accada e garantiamo il database dovrebbe essere una priorità assoluta. Pertanto, dobbiamo proteggere il motore del database impostando una password di root. Quindi, esegui il comando qui sotto:

$ sudo mysql_secure_installation

Ciò che segue è un prompt interattivo che richiederà di impostare la password di root per il database e rispondere ad alcune domande.

Per impostazione predefinita, MariaDB funziona sulla porta 3306. Se si esegue un firewall, è necessario consentire questa porta in modo che il motore del database possa essere accessibile a utenti e servizi esterni.

Per aprire la porta sul firewall, eseguire la seguente regola del firewall:

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

Per applicare la regola, ricaricare il firewall:

$ sudo firewalld-cmd--ricarichi

Con MariaDB installato e fissato con corretto sul server principale, ripeti gli stessi passaggi sul server slave.

Passaggio 2: configurare MariaDB sul server principale

Dobbiamo configurare il demone MariaDB in modo che il nostro server master previsto funga da server nella configurazione. Quindi apri il file di configurazione /etc/mio.Cnf

$ sudo vim /etc /mio.Cnf

Aggiungi la configurazione di seguito

[mysqld]
Bind-Address = 192.168.43.13
server-id = 1
log_bin = mysql-bin
Binlog-Format = riga

Salva ed esci dal file di configurazione. Per effettuare i cambiamenti, riavviare il servizio MARIADB.

$ sudo systemctl riavvio mariadb-server

Passaggio 3: configurare il server slave

Proprio come il server principale, lo slave deve essere configurato per agire come uno. Quindi apri il file di configurazione come prima:

$ sudo vim /etc /mio.Cnf

Aggiungi la configurazione di seguito

[mysqld]
Bind-Address = 192.168.43.252
server-id = 2
log_bin = mysql-bin
Binlog-Format = riga

Essere desideroso di fornire un diverso 'server_id'Dal server principale, che è 2 in questo caso. E proprio come il server principale, il 'bind_address'Il parametro dovrebbe indicare l'indirizzo IP dello slave.

Salva ed esci dal file.

Passaggio 3: creare un utente di replica nel server principale

Per configurare lo slave per la replica, dobbiamo tornare al nodo principale e creare un utente di replica. Accedi al motore del database MariaDB.

$ mysql -u root -p

Innanzitutto, fermare l'utente degli schiavi.

MariaDB [(Nessuno)]> Stop Slave;

Crea un utente di replica con i comandi mostrati:

MariaDB [(Nessuno)]> Grant Replication Slave su *.* A 'replica_user' @'192.168.43.252 '
Identificato da 'p@ssword123';
Query ok, 0 righe interessate (0.06 sec)
MariaDB [(Nessuno)]> Privilegi a filo;
Query ok, 0 righe interessate (0.04 sec)
MariaDB [(Nessuno)]> Tabelle a filo con blocco di lettura;
Query ok, 0 righe interessate (0.02 sec)
MariaDB [(Nessuno)]> uscita;
Query ok, 0 righe interessate (0.02 sec)

Successivamente, controlla quello stato del master eseguendo:

MariaDB [(Nessuno)]> Mostra stato principale \ g

Annotare attentamente i valori del nome file e della posizione. Questi verranno successivamente utilizzati per configurare lo slave per la replica.

Dall'output sopra, questo si traduce in:

File: Mysql-bin.000001
Posizione: 1317

Esci dal motore MariaDB e crea una copia di backup del server principale come mostrato:

$ sudo mysqldump -all -database -u root -p> masterdatabase.SQL

Accedi a MariaDB e sblocca i tavoli:

MariaDB [(Nessuno)]> Tabelle di sblocco;
MariaDB [(Nessuno)]> uscita;

Ricorda la copia di backup che abbiamo creato per il database principale? Siamo pronti a copiarlo sul server slave. Quindi esegui il comando di seguito:

$ SCP MasterDatabase.sql [email protected]:/root/

Passaggio 4: configurare lo slave per la replica

Di nuovo sul nodo slave, importa il file di backup che abbiamo copiato dal master al motore MARIADB.

$ mysql -u root -p < masterdatabase.sql

E poi riavviare il servizio MariaDB

$ SystemCtl Riavvia MariaDB

Ora accedi al motore del database MARIADB e configura lo slave come segue:

MariaDB [(Nessuno)]> Stop Slave; MariaDB [(Nessuno)]> Cambia Master su Master_Host = '192.168.43.13 ', master_user =' replica_user ',
Master_Password = 'P@ssword123', master_log_file = 'mysql-bin.000001 ' ,
Master_log_pos = 1317;

Ricorda i valori che abbiamo detto che dovresti ricordare e possibilmente annotarli quando si visualizza lo stato del server principale? Questi sono stati finalmente definiti in Master_log_file E Master_log_pos attributi come visto.

Infine, inizia lo schiavo per inizializzare lo schiavo per iniziare a replicare dal maestro:

MariaDB [(Nessuno)]> Avvia slave;

Quindi controlla lo stato dello slave

MariaDB [(Nessuno)]> Mostra status di slave;

Se la configurazione è stata eseguita perfettamente, non è necessario ottenere l'output di seguito gratuitamente da eventuali errori.

Lo schiavo è ora pronto per la replica.

Passaggio 5: test di replica del database

Alla fine, dobbiamo confermare se la nostra configurazione funziona. Quindi accedi all'istanza MariaDB nel master e crea un database di test come mostrato

MariaDB [(Nessuno)]> Crea database replica_db;

Quindi conferma la creazione del database

MariaDB [(Nessuno)]> Show Database;

Torna al nodo slave e controlla se esiste il database.

Perfetto! La nostra configurazione funziona! Tutti i database successivi creati nel master verranno replicati automaticamente e le modifiche sono sincronizzate sul nodo slave. E questo ci porta alla fine di questa guida.