Natrag na blog

Postavljanje replikacije u MySQL-u na Ubuntuu

Postavljanje replikacije u MySQL-u na Ubuntuu

MySQL replikacija je zanimljiva značajka koja korisnicima omogućuje upravljanje s više kopija jedne ili više MySQL baza podataka. Podaci se automatski kopiraju s izvorne na replike baze podataka. To može biti korisno u brojnim situacijama, kao što je rad s podacima bez ugrožavanja glavne baze podataka, sigurnosno kopiranje podataka ili skaliranje pristupa bazi podataka itd.

U ovom vodiču, proći ćemo kroz korake postavljanja MySQL instance na jednom poslužitelju kao izvorne baze podataka, a zatim konfiguriranja MySQL instance na drugom poslužitelju da funkcionira kao njezina replika.

Preduvjeti

Ovaj vodič će prikazati vrlo jednostavan primjer MySQL replikacije. Uključuje jednu izvornu i jednu replika bazu podataka. Izvorna baza podataka je primarna kopija baze podataka, dok će replika baza podataka biti replika izvorne baze podataka. Za našu demonstraciju, dva poslužitelja su konfigurirana sa sljedećim IP adresama:

  • Izvorni poslužitelj: 31.171.240.179
  • Replika poslužitelj: 31.171.250.139

Svaki poslužitelj je konfiguriran s najnovijom Ubuntu 20.04 server konfiguracijom. Prvo slijedite korake vodiča koji pokazuju kako postaviti svoj Ubuntu poslužitelj. Imajte na umu da broj replika baza podataka može biti veći. Ovaj vodič pretpostavlja da već imate instaliran i konfiguriran MySQL. Trebate pomoć s instalacijom MySQL-a? Ovaj vodič detaljno prikazuje korake instalacije i osnovnog korištenja MySQL-a.

Ukratko, evo paketa koji su vam potrebni:

Vatrozidi na oba sustava trebali bi biti konfigurirani tako da dopuštaju promet s oba sustava na priključku 3306. To je zadani priključak za MySQL. Više o osnovama UFW-a uz demonstraciju možete saznati u našem blog postu.

Konfiguracija izvorne baze podataka

  • Podešavanje MySQL konfiguracije

MySQL koristi my.cnf kao primarnu konfiguracijsku datoteku. Ažurirat ćemo my.cnf kako bismo poslužitelj označili kao izvor. Prvo otvorite konfiguracijsku datoteku pomoću uređivača teksta:

Zatim dodajte sljedeće retke ispod odjeljka mysqld:

Replication in MySQL 4

Što znače ovi retci?

  • bind-address: Ovo je unos koji definira povezanost između usluge i IP adrese. Prema zadanim postavkama, vrijednost može biti 127.0.0.1 (localhost). Nova vrijednost bit će IP adresa poslužitelja.
  • server-id: U MySQL replikaciji, svaki poslužitelj mora imati jedinstveni ID poslužitelja. To može biti bilo koji broj. Radi jednostavnosti, postavljen je na 1.
  • log_bin: Pohranjuje stvarne pojedinosti replikacije. Replika baze podataka kopirat će sve što je registrirano u dnevniku.
  • binlog_do_db: Ovaj unos označava bazu podataka koja će biti predmet replikacije na replika poslužitelju. Može postojati više od jedne baze podataka. Ovdje je ogledna baza podataka newdatabase.

Nakon unosa izmjena, spremite konfiguracijsku datoteku. MySQL zahtijeva ponovno pokretanje kako bi učitao promjene u my.cnf:

  • Dodjeljivanje dopuštenja replika korisniku

Sljedeći korak je stvaranje replika korisnika i dodjeljivanje odgovarajućih privilegija. To je potrebno učiniti iz MySQL ljuske. Prvo pokrenite MySQL ljusku:

Zatim stvorite namjenskog korisnika za repliku baze podataka. Promijenite korisničko ime i lozinku na odgovarajući način:

Sada dodijelite odgovarajuće privilegije korisniku:

Više o MySQL korisnicima i dopuštenjima možete saznati u našem blog postu. Zatim ponovno učitajte tablicu dodjele kako bi promjene stupile na snagu:

FLUSH PRIVILEGES

  • Podešavanje baze podataka

Potrebna nam je kopija izvorne baze podataka na replici. Moguće je ručno izgraditi strukturu. Međutim, u većini slučajeva to je prilično nezgodno. Zato je izravan izvoz baze podataka najoptimalnije rješenje. U ovom primjeru, izvorna baza podataka je newdatabase. Promijenite trenutnu bazu podataka:

Sljedeća naredba će zaključati bazu podataka, sprječavajući bilo kakve nove promjene:

Zatim provjerite status baze podataka:

Replication in MySQL 3

S ove pozicije, replika baze podataka započet će replikaciju s izvora. Ovi brojevi će biti korisni kasnije, pa ih zabilježite. Ako se unesu bilo kakve promjene iz istog prozora, MySQL će automatski otključati bazu podataka. Stoga se preporučuje da sljedeće korake izvršite u drugoj kartici ili prozoru terminala. Baza podataka je još uvijek zaključana. Izvezite je u prijenosnu SQL datoteku:

Zadatak je sada završen. Zatim otključajte bazu podataka:

Na kraju, izađite iz ljuske:

Replica Configuration

Sada je vrijeme za konfiguraciju replike baze podataka.

  • Uvoz izvorne baze podataka

Potrebna nam je kopija izvorne baze podataka na replika poslužitelju. Za to ćemo koristiti SQL datoteku koju smo ranije izvezli. Pokrenite MySQL ljusku:

Nakon toga kreirajte praznu bazu podataka koristeći isti naziv baze podataka:

Zatim izađite iz ljuske:

Sada uvezite SQL datoteku u bazu podataka:

sudo mysql -u

  • Podešavanje MySQL konfiguracije

Potrebno je deklarirati nekoliko stvari u MySQL konfiguracijskoj datoteci. Otvorite konfiguracijsku datoteku u uređivaču teksta:

Sljedeći unosi ići će pod odjeljak mysqld. U suprotnom neće raditi. Prvi je ID poslužitelja. Kao što je ranije spomenuto, on mora biti jedinstven za sve poslužitelje u konfiguraciji replikacije izvor-replika. Za demonstraciju, postavljen je na 2:

Zatim dodajte sljedeće retke:

Replication in MySQL 2

Ovdje je samo relay-log novi unos. To je zapisnik koji replika poslužitelj stvara tijekom replikacije. Format zapisnika je isti kao i binarni zapisnik. Spremite konfiguracijsku datoteku i ponovno pokrenite MySQL:

  • Omogućavanje replikacije

Napokon, spremni smo omogućiti replikaciju unutar MySQL-a. Pokrenite MySQL ljusku:

Pokrenite sljedeću naredbu. Prvo, u skladu s tim promijenite IP adresu, korisničko ime i lozinke:

CHANGE MASTER TO MASTER_HOST

Naredba postiže sljedeće:

  • Trenutni poslužitelj označen je kao replika izvornog poslužitelja.
  • Replika poslužitelj ima ispravne vjerodajnice za prijavu.
  • Replika poslužitelj zna odakle započeti replikaciju. Sjećate se statusa baze podataka koji smo provjerili na izvornom poslužitelju? Izvorna datoteka zapisnika i pozicija zapisnika dolaze od tamo.

Na kraju, aktivirajte replika poslužitelj:

START REPLICA

  • Razno

Trebate provjeriti pojedinosti o trenutnom stanju replike? Pokrenite sljedeću naredbu u MySQL ljusci. Znak \G na kraju služi za preraspodjelu teksta kako bi bio čitljiviji:

Replication in MySQL 1

Ako postoji problem s povezivanjem, pokušajte pokrenuti replika poslužitelj kako biste ga preskočili:

Zaključak

MySQL replikacija ima mnogo implikacija. To je samo kratka demonstracija njezinog osnovnog oblika. Međutim, lako se može proširiti na višestruke izvor-replika konfiguracije. Isti koraci također će se primijeniti na sve složene konfiguracije više razine. Uvijek je dobra ideja testirati svaku konfiguraciju nakon toga. Pokušajte izvršiti neke insertdelete ili update naredbe na izvornoj bazi podataka. Ako konfiguracija radi, baza podataka replike trebala bi ispravno preuzeti sve.

Osim toga, možete pogledati više resursa s našeg bloga koji pokrivaju što možete učiniti s MySQL-om:

Ugodan rad!

 

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.