Replikacija podataka je proces kopiranja vaših podataka na više poslužitelja kako bi se poboljšala dostupnost podataka i poboljšala pouzdanost i performanse aplikacije. U MySQL replikacija, podaci se kopiraju iz baze podataka s glavnog poslužitelja na druge čvorove u stvarnom vremenu kako bi se osigurala konzistentnost podataka i također da bi se osigurala sigurnosna kopija i redundantnost.
U ovom vodiču pokazujemo kako možete postaviti MySQL (Gospodar-Rob) replikacija u Distribucije temeljene na RHEL-u kao npr CentOS, Fedora, Rocky Linux, i AlmaLinux.
Dakle, evo našeg MySQL postava laboratorija za replikaciju.
MySQL Master - 10.128.0.14. MySQL Slave - 10.128.15.211.
Započnimo…
Započet ćemo s instaliranjem MySQL baza podataka na oba ovladati; majstorski i rob poslužitelji.
$ sudo dnf install @mysql.
Nakon što je instalacija dovršena, odredite točku za pokretanje poslužitelja baze podataka.
$ sudo systemctl start mysqld.
Zatim ga omogućite za pokretanje do pokretanja sustava ili nakon ponovnog pokretanja.
$ sudo systemctl omogući mysqld.
Nakon toga potvrdite da je MySQL poslužitelj baze podataka radi kao što je prikazano:
$ sudo systemctl status mysqld.
Sljedeći korak je osigurati MySQL baza podataka na oba ovladati; majstorski i rob poslužitelji. To je zato što su zadane postavke nesigurne i predstavljaju neke rupe koje hakeri lako mogu iskoristiti.
Dakle, da biste ojačali MySQL, pokrenite naredbu:
$ sudo mysql_secure_installation.
Prvo ćete morati postaviti MySQL root lozinka. Obavezno navedite jaku root lozinku, po mogućnosti s više od 8 znakova koji su mješavina velikih, malih, posebnih i numeričkih znakova.
Za preostale upite upišite 'Y'
za podešavanje poslužitelja baze podataka na preporučene postavke.
Nakon što završite s ugradnjom i stvrdnjavanjem MySQL na glavnom i podređenom čvoru, sljedeće je konfiguriranje glavnog čvora.
Sljedeći korak je konfiguracija Ovladati; majstorski čvor i odobriti rob pristup čvoru do njega. Prvo, moramo urediti mysql-server.cnf konfiguracijska datoteka.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Dodajte sljedeće retke ispod [mysqld]
odjeljak.
vezana adresa = 10.128.0.14. server-id = 1. log_bin = mysql-bin.
Kada završite, spremite promjene i izađite. Zatim ponovno pokrenite MySQL poslužitelju.
$ sudo sysemctl ponovno pokrenite mysqld.
Zatim se prijavite MySQL ljuska.
$ sudo mysql -u korijen -p.
Izvedite sljedeće naredbe za kreiranje korisnika baze podataka koji će se koristiti za povezivanje glavnog i podređenog uređaja za replikaciju.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY[e-mail zaštićen]'; mysql> ODOBRITE REPLIKACIJU SLAVE NA *.*TO 'replica'@'10.128.15.211';
Primijenite promjene i izađite iz MySQL poslužitelju.
mysql> FLUSH PRIVILEGIJA; mysql> IZLAZ;
Provjerite status glavnog.
mysql> PRIKAŽI MASTER STATUS\G.
Zabilježite naziv datoteke i poziciju. Ovo će vam trebati kasnije kada postavljate slave za replikaciju. U našem slučaju imamo naziv datoteke kao mysql-bin.000001
i Položaj 1232.
Sada se vratite na Slave čvor. Još jednom, uredite mysql-server.cnf konfiguracijska datoteka.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Kao i prije, zalijepite ove linije ispod [mysqld]
odjeljak. Promijenite IP adresu tako da odgovara IP-u slave-a. Također, dodijelite drugačije server-id. Ovdje smo mu dodijelili vrijednost 2.
vezana adresa = 10.128.15.211. server-id = 2. log_bin = mysql-bin.
Spremite promjene i izađite iz datoteke. Zatim ponovno pokrenite poslužitelj baze podataka.
$ sudo systemctl ponovno pokrenite mysqld.
Za konfiguriranje Rob čvor za repliciranje s glavnog čvora, prijavite se na MySQL poslužitelj Slave.
$ sudo mysql -u korijen -p.
Prvo i najvažnije, zaustavite replikacijske niti:
mysql> STOP SLAVE;
Zatim izvedite sljedeću naredbu da konfigurirate slave čvor da replicira baze podataka s glavnog.
mysql> PROMIJENI MASTER U MASTER_HOST='10.128.0.14', MASTER_USER='replika', MASTER_PASSWORD='[e-mail zaštićen]', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1232;
Imajte na umu da je MASTER_LOG_FILE i MASTER_LOG_POS zastavice odgovaraju datoteci i Položaj vrijednosti iz Ovladati; majstorski čvor na kraju 1. koraka.
The MASTER_HOST, MASTER_USER, i MASTER_PASSWORD odgovaraju glavnoj IP adresi, korisniku replikacije i lozinki korisnika replikacije.
Zatim pokrenite podređene niti replikacije:
mysql> START SLAVE;
Sada, da biste testirali radi li replikacija između glavnog i podređenog čvora, prijavite se na MySQL poslužitelj baze podataka na glavnom čvoru:
$ sudo mysql -u korijen -p.
Napravite testnu bazu podataka. Ovdje se zove naša testna baza podataka replication_db.
mysql> CREATE DATABASE replication_db;
Provjerite postojanje baze podataka.
mysql> PRIKAŽI BAZE PODATAKA;
Sada idite na slave čvor, prijavite se na MySQL poslužitelj i potvrdite da je replication_db baza podataka je prisutna. Iz donjeg izlaza možemo vidjeti da je baza podataka prisutna. Ovo je potvrda da se replikacija dogodila s glavnog na slave čvor.
mysql> PRIKAŽI BAZE PODATAKA;
I to je to, uspješno smo pokazali kako možete postaviti a MySQL master-slave model replikacije koji može replicirati baze podataka s glavnog čvora na slave čvor.