MariaDB -replikering på RHEL 8/ centos 8

MariaDB -replikering på RHEL 8/ centos 8
Katastrofer skjer, og når de gjør det, kan dyrebare data gå med vinden, aldri mer for å bli gjenfunnet, og når de blir gjenopprettet, bruker selskaper vanligvis opptil millioner av dollar for å få det tilbake og miste verdifull tid som kunne vært brukt i andre operasjoner. Og det er her replikasjonsbegrepet kommer inn. Replikering er ganske enkelt å ha flere kopier av en database. Replikering sikrer at det når som helst er sikkerhetskopier av den primære databasen slik at i tilfelle databasen går ned, kan data fremdeles hentes fra sikkerhetskopifatabasene som sikrer redundans og høy tilgjengelighet. I denne opplæringen lærer du hvordan du konfigurerer MariaDB Master-Slave Replication på CentOS 8.

Laboppsett

Master Node - 192.168.43.1. 3
Slaveknute - 192.168.43.252

Trinn 1: Installer MariaDB på både mester- og slaveservere

Til å begynne med må du installere MariaDB på både mesteren og slaven. Så følg trinnene nedenfor:

Først, logg inn på hovedserveren og oppdater systempakkene som vist:

$ SUDO DNF -oppdatering

Etter å ha oppdatert systemet ditt, fortsett nå og installer MariaDB

$ sudo dnf installer mariadb-server

Når installasjonen er vellykket, kan du bekrefte at MariaDB er installert ved å kjøre kommandoen:

$ RPM -QA | Grep Mariadb

For å få mer detaljert informasjon, utfør kommandoen:

$ rpm -qi mariaDB -server

Start nå MariaDB -tjenesten

$ sudo SystemCTL Start MariaDB

I tillegg kan du også gjøre det også mulig.

$ sudo SystemCTL Aktiver MariaDB

For å bekrefte at MARIADB -databasemotoren er i gang, kan du utstede kommandoen:

$ sudo systemctl status mariadb

Perfekt! MariaDB er i gang som vi forventet.

Som det er, er MariaDB ikke sikret, og noen bruker kan logge seg på databasemotoren og ha tilgang til alle databasene og gjøre endringer. Vi ønsker selvfølgelig ikke at det skal skje og sikring av databasen skal være en topp prioritet. Vi trenger derfor å sikre databasemotoren ved å angi et rotpassord. Så kjør kommandoen nedenfor:

$ sudo mysql_secure_installation

Det som følger er en interaktiv ledetekst som krever å angi rotpassordet for databasen og svare på noen få spørsmål.

Som standard kjører MariaDB på port 3306. Hvis du kjører en brannmur, må du tillate denne porten slik at databasemotoren kan være tilgjengelig for eksterne brukere og tjenester.

For å åpne porten på brannmuren, kjør følgende brannmurregel:

$ SUDO FIREWALLD-CMD-ADD-PORT = 3306/TCP-Zone = public-Permanent

For at regelen skal brukes, last inn brannmuren på nytt:

$ sudo Firewalld-CMD-Reload

Med MariaDB med hell installert og sikret på Master Server, gjenta de samme trinnene på slaveserveren.

Trinn 2: Konfigurer MariaDB på masterserveren

Vi må konfigurere MariaDB Daemon slik at vår tiltenkte masterserver fungerer som en server i oppsettet. Så åpne konfigurasjonsfilen /etc/min.CNF

$ sudo vim /etc /min.CNF

Legg til konfigurasjonen nedenfor

[mysqld]
Bind-adresse = 192.168.43.1. 3
server-id = 1
log_bin = mysql-bin
binLog-format = rad

Lagre og avslutte konfigurasjonsfilen. For å utføre endringene, start MariaDB -tjenesten på nytt.

$ sudo SystemCTL Restart MariaDB-Server

Trinn 3: Konfigurer slaveserveren

Akkurat som masterserveren, må slaven konfigureres til å fungere som en. Så åpne konfigurasjonsfilen som før:

$ sudo vim /etc /min.CNF

Legg til konfigurasjonen nedenfor

[mysqld]
Bind-adresse = 192.168.43.252
server-id = 2
log_bin = mysql-bin
binLog-format = rad

Være opptatt av å gi en annen 'server_id'Fra masterserveren, som er 2 i dette tilfellet. Og akkurat som masterserveren, 'bind_address'Parameter skal peke på slavens IP -adresse.

Lagre og avslutte filen.

Trinn 3: Opprett en replikasjonsbruker i hovedserveren

For å konfigurere slaven for replikering, må vi dra tilbake til hovednoden og opprette en replikasjonsbruker. Logg deg på MariaDB -databasemotoren.

$ mysql -u root -p

Først må du stoppe slavebrukeren.

Mariadb [(ingen)]> stopp slave;

Opprett en replikasjonsbruker med kommandoene som er vist:

MariaDB [(Ingen)]> Gi replikasjonslave på *.* Til 'replica_user' @'192.168.43.252 '
Identifisert av 'p@ssword123';
Spørring OK, 0 rader berørt (0.06 sek)
MariaDB [(ingen)]> Flush Privileges;
Spørring OK, 0 rader berørt (0.04 sek)
MariaDB [(Ingen)]> Spyltbord med leselås;
Spørring OK, 0 rader berørt (0.02 sek)
MariaDB [(Ingen)]> Avslutt;
Spørring OK, 0 rader berørt (0.02 sek)

Deretter kan du sjekke at statusen til mesteren ved å løpe:

MariaDB [(Ingen)]> Vis masterstatus \ G

Legg nøye merke til verdiene til filnavnet og posisjonen. Disse vil senere bli brukt til å konfigurere slaven for replikering.

Fra utgangen over, oversettes dette til:

Fil: mysql-bin.000001
Posisjon: 1317

Gå ut av MariaDB -motoren og lag en sikkerhetskopi av Master Server som vist:

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

Logg deg tilbake til MariaDB og lås opp tabellene:

MariaDB [(ingen)]> låse opp tabeller;
MariaDB [(Ingen)]> Avslutt;

Husk sikkerhetskopien vi opprettet for masterdatabasen? Vi er klare til å kopiere den til slaveserveren. Så kjør kommandoen nedenfor:

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

Trinn 4: Konfigurer slaven for replikasjon

Tilbake på slaveknuten, importerer du backup -filen som vi kopierte fra mesteren til MariaDB -motoren.

$ mysql -u root -p < masterdatabase.sql

Og deretter starte MariaDB -tjenesten på nytt

$ SystemCTL Restart MariaDB

Logg deg på MariaDB -databasemotoren og konfigurer slaven som følger:

Mariadb [(ingen)]> stopp slave; MariaDB [(Ingen)]> Endre master til master_host = '192.168.43.13 ', master_user =' replica_user ',
Master_password = 'p@ssword123', master_log_file = 'mysql-bin.000001 ' ,
Master_log_pos = 1317;

Husk verdiene som vi sa at du bør huske og muligens notere dem når du viser statusen til masterserveren? Disse har endelig blitt definert i Master_log_file og Master_log_pos attributter som sett.

Til slutt, start slaven for å initialisere slaven for å begynne å gjenskape fra mesteren:

MariaDB [(ingen)]> Start slave;

Sjekk deretter slavens status

MariaDB [(Ingen)]> Vis slavestatus;

Hvis konfigurasjonen ble gjort perfekt, bør du ikke få utdataene nedenfor fri fra feil.

Slaven er nå klar for replikering.

Trinn 5: Testdatabase replikasjon

Til syvende og sist må vi bekrefte om oppsettet vårt fungerer. Så logg inn på MariaDB -forekomst i masteren og lag en testdatabase som vist

MariaDB [(ingen)]> Opprett database replica_db;

Bekreft deretter opprettelsen av databasen

MariaDB [(ingen)]> Vis databaser;

Gå tilbake til slaveknuten og sjekk om databasen eksisterer.

Perfekt! Oppsettet vårt fungerer! Alle de påfølgende databasene som er opprettet i masteren, blir automatisk replikert og endres synkronisert på slaveknuten. Og dette bringer oss til slutten av denne guiden.