Duomenų replikacija yra duomenų kopijavimas keliuose serveriuose, siekiant pagerinti duomenų pasiekiamumą ir padidinti programos patikimumą bei našumą. Į MySQL replikacija, duomenys nukopijuojami iš duomenų bazės iš pagrindinio serverio į kitus mazgus realiuoju laiku, kad būtų užtikrintas duomenų nuoseklumas ir atsarginė kopija bei dubliavimas.
Šiame vadove parodome, kaip galite nustatyti MySQL (Šeimininkas-vergas) replikacija į RHEL pagrįsti paskirstymai toks kaip CentOS, Fedora, Rocky Linux, ir AlmaLinux.
Taigi, čia yra mūsų MySQL replikacijos laboratorijos sąranka.
„MySQL Master“ – 10.128.0.14. MySQL Slave – 10.128.15.211.
Pradėkime…
Pradėsime nuo įdiegimo MySQL duomenų bazė tiek meistras ir vergas serveriai.
$ sudo dnf įdiegti @mysql.
Baigę diegti, nurodykite paleisti duomenų bazės serverį.
$ sudo systemctl start mysqld.
Tada įgalinkite jį, kad paleistumėte sistemą arba paleistumėte iš naujo.
$ sudo systemctl įgalinti mysqld.
Po to patvirtinkite, kad MySQL duomenų bazės serveris veikia kaip parodyta:
$ sudo systemctl būsena mysqld.
Kitas žingsnis yra apsaugoti MySQL duomenų bazė tiek meistras ir vergas serveriai. Taip yra todėl, kad numatytieji nustatymai yra nesaugūs ir turi tam tikrų spragų, kuriomis įsilaužėliai gali lengvai pasinaudoti.
Taigi, norėdami sustiprinti MySQL, paleiskite komandą:
$ sudo mysql_secure_installation.
Pirmiausia turėsite nustatyti MySQL root slaptažodis. Būtinai pateikite tvirtą pagrindinį slaptažodį, pageidautina, sudarytą iš daugiau nei 8 simbolių, sudarytų iš didžiųjų, mažųjų, specialiųjų ir skaitinių simbolių.
Norėdami gauti likusius raginimus, įveskite 'Y'
kad pakeistumėte duomenų bazės serverį į rekomenduojamus nustatymus.
Kai baigsite montavimą ir grūdinimą MySQL pagrindiniame ir pavaldiniame mazge, kitas yra pagrindinio mazgo konfigūravimas.
Kitas žingsnis yra sukonfigūruoti Meistras mazgas ir suteikti vergas mazgo prieiga prie jo. Pirmiausia turime redaguoti mysql-server.cnf konfigūracijos failą.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Pridėkite šias eilutes po [mysqld]
skyrius.
bind-adresas = 10.128.0.14. serverio ID = 1. log_bin = mysql-bin.
Baigę išsaugokite pakeitimus ir išeikite. Tada paleiskite iš naujo MySQL serveris.
$ sudo sysemctl iš naujo paleiskite mysqld.
Tada prisijunkite MySQL apvalkalas.
$ sudo mysql -u root -p.
Vykdykite šias komandas, kad sukurtumėte duomenų bazės vartotoją, kuris bus naudojamas pagrindiniam ir pavaldiniui susieti replikacijai.
mysql> KURTI VARTOTOJĄ 'replica'@'10.128.15.211' ATPAŽĮSTA '[apsaugotas el. paštas]'; mysql> SUTEIKTI REPLICATION SLAVE Į *.*Į 'replica'@'10.128.15.211';
Taikykite pakeitimus ir išeikite iš MySQL serveris.
mysql> FLUSH PRIVILEGIJOS; mysql> EXIT;
Patikrinkite meistro būseną.
mysql> RODYTI PAGRINDINĮ STATUSĄ\G.
Atkreipkite dėmesį į failo pavadinimą ir poziciją. Jums to prireiks vėliau, kai nustatysite vergą replikacijai. Mūsų atveju failo pavadinimas yra kaip mysql-bin.000001
ir Padėtis 1232.
Dabar grįžkite į Slave mazgą. Dar kartą redaguokite mysql-server.cnf konfigūracijos failą.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Kaip ir anksčiau, įklijuokite šias eilutes po [mysqld]
skyrius. Pakeiskite IP adresą, kad jis atitiktų vergo IP adresą. Be to, priskirkite kitą serverio ID. Čia mes jam priskyrėme vertę 2.
bind-adresas = 10.128.15.211. serverio ID = 2. log_bin = mysql-bin.
Išsaugokite pakeitimus ir išeikite iš failo. Tada iš naujo paleiskite duomenų bazės serverį.
$ sudo systemctl iš naujo paleiskite mysqld.
Norėdami sukonfigūruoti Vergas mazgas, jei norite replikuoti iš pagrindinio mazgo, prisijunkite prie Slave MySQL serverio.
$ sudo mysql -u root -p.
Visų pirma, sustabdykite replikacijos gijas:
mysql> STOP SLAVE;
Tada vykdykite šią komandą, kad sukonfigūruotumėte pagalbinį mazgą, kad būtų galima kopijuoti duomenų bazes iš pagrindinio.
mysql> PAKEISTI MASTER Į MASTER_HOST='10.128.0.14', MASTER_USER='replica', MASTER_PASSWORD='[apsaugotas el. paštas]', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1232;
Atkreipkite dėmesį, kad MASTER_LOG_FILE ir MASTER_LOG_POS vėliavėlės atitinka failą ir Padėtis vertės iš Meistras mazgas 1 veiksmo pabaigoje.
The MASTER_HOST, MASTER_USER, ir MASTER_PASSWORD atitinka pagrindinį IP adresą, replikacijos vartotoją ir replikacijos vartotojo slaptažodį.
Tada paleiskite vergo replikacijos gijas:
mysql> START SLAVE;
Dabar, norėdami patikrinti, ar replikacija tarp pagrindinio ir pavaldinio mazgo veikia, prisijunkite prie pagrindinio mazgo MySQL duomenų bazės serverio:
$ sudo mysql -u root -p.
Sukurkite bandomąją duomenų bazę. Čia vadinama mūsų bandymų duomenų bazė replikacijos_db.
mysql KURTI DUOMENŲ BAZĘ replikacijos_db;
Patikrinkite, ar yra duomenų bazė.
mysql> RODYTI DUOMENŲ BAZES;
Dabar pereikite prie vergo mazgo, prisijunkite prie MySQL serverio ir patvirtinkite, kad replikacijos_db duomenų bazė yra. Iš toliau pateiktos išvesties matome, kad duomenų bazė yra. Tai patvirtinimas, kad replikacija įvyko iš pagrindinio į pavaldų mazgą.
mysql> RODYTI DUOMENŲ BAZES;
Ir viskas, mes sėkmingai pademonstravome, kaip galite nustatyti a MySQL pagrindinio-pavaldžiojo replikacijos modelis, galintis replikuoti duomenų bazes iš pagrindinio mazgo į pavaldų mazgą.