MySQL Master-Slave -replikoinnin määrittäminen Ubuntu 18.04:ssä


MySQL master-slave -replikointi on menettely, jonka avulla tietokantatiedostoja voidaan replikoida tai kopioida yhden tai useamman verkon solmun välillä. Tämä kokoonpano tarjoaa redundanssin ja vikasietoisuuden, joten pääsolmun vian sattuessa tietokannat voidaan silti palauttaa orjasolmussa. Tämä antaa käyttäjille mielenrauhan, että kaikkea ei menetetä missään tapauksessa, koska tietokantojen kopiot voidaan silti hakea toiselta palvelimelta.

Tässä oppaassa opit suorittamaan MySQL-tietokannan Master-slave -replikoinnin Ubuntu 18.04 -järjestelmässä.

Edellytykset

Asetuksissa meillä on kaksi palvelinta, joissa on Ubuntu 18.04 seuraavilla IP-osoitteilla.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Sukellaan nyt ja katsotaan, kuinka voimme määrittää Master-slave -replikoinnin asetukset Ubuntussa.

Vaihe 1: Asenna MySQL isäntä- ja orjasolmuihin

Ubuntu -tietovarastot sisältävät MySQL:n version 5.7. Jotta voit hyödyntää uusia ominaisuuksia ja välttää mahdolliset ongelmat, sinun tulee asentaa uusin MySQL-versio. Mutta ensin päivitetään kaksi solmua käyttämällä seuraavaa apt-komentoa.

sudo apt update

Asenna MySQL molempiin solmuihin suorittamalla komento.

sudo apt install mysql-server mysql-client

Avaa seuraavaksi mysql-määritystiedosto.

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Vieritä pääsolmua ja etsi bind-address-attribuutti alla olevan kuvan mukaisesti.

bind-address 	 =127.0.0.1

Muuta takaisinkytkentäosoite vastaamaan pääsolmun IP-osoitetta.

bind-address  	=10.128.0.28

Määritä seuraavaksi arvo server-id-attribuutille [mysqld]-osiossa. Valitsemasi numero ei saa vastata mitään muuta palvelintunnusnumeroa. Määritetään arvo 1.

server-id	 =1

Kopioi ja liitä alla olevat rivit määritystiedoston lopussa.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Poistu määritystiedostosta ja käynnistä MySQL-palvelu uudelleen, jotta muutokset tulevat voimaan pääsolmussa.

sudo systemctl restart mysql

Anna komento varmistaaksesi, että MySQL-palvelin toimii odotetulla tavalla.

sudo systemctl status mysql

Täydellinen! MySQL-palvelin toimii odotetusti!

Vaihe 2: Luo uusi käyttäjä replikointia varten pääsolmussa

Tässä osiossa aiomme luoda replikointikäyttäjän pääsolmuun. Tämän saavuttamiseksi kirjaudu sisään MySQL-palvelimelle kuvan osoittamalla tavalla.

sudo mysql -u root -p

Jatka seuraavaksi ja suorita alla olevat kyselyt luodaksesi replikakäyttäjä ja myöntämällä käyttöoikeudet toisinnusorjalle. Muista käyttää IP-osoitettasi.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Suorita seuraavaksi seuraava komento.

mysql> SHOW MASTER STATUS\G

Tulosteen tulee olla samanlainen kuin alla näet.

Ole tarkkana ja huomioi mysql-bin.000002-arvo ja sijaintitunnus 1643. Nämä arvot ovat tärkeitä määritettäessä orjapalvelinta.

Vaihe 3: Määritä MySQL-slave-palvelin

Siirry orjapalvelimelle ja avaa MySQL-määritystiedosto, kuten teimme pääpalvelimen kanssa.

sudo vim  /etc/mysql/mysql.conf.d/mysqld.cnf

Kuten pääpalvelin, jatka seuraavien rivien muokkaamista.

bind-address           = 10.128.0.29

Kuten aiemmin, määritä arvo server-id-attribuutille [mysqld]-osiossa. Valitse tällä kertaa eri arvo. Aloitetaan 2.

server-id		=2 

Liitä jälleen alla olevat rivit määritystiedoston loppuun.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Seuraavaksi käynnistä MySQL-palvelin uudelleen orjasolmussa.

sudo systemctl restart mysql

Kun olet valmis, tallenna ja poistu tekstieditorista

Kirjaudu seuraavaksi MySQL-kuoreen kuvan osoittamalla tavalla.

sudo mysql -u root -p

Tässä vaiheessa sinun on määritettävä asetukset, joiden avulla orjapalvelin voi muodostaa yhteyden pääpalvelimeen. Mutta ensin lopeta orjalangat kuvan osoittamalla tavalla.

mysql> STOP SLAVE; 

Anna orjapalvelimen replikoida pääpalvelin suorittamalla komento.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='Saturn@1234', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Jos olet tarpeeksi innokas, huomaat, että olemme käyttäneet mysql-bin.00002-arvoa ja sijaintitunnusta 1643, jotka näytettiin aiemmin orjareplikointikäyttäjän luomisen jälkeen.

Lisäksi on käytetty pääpalvelimen IP-osoitetta, replikointikäyttäjää ja salasanaa.

Aloita myöhemmin aiemmin lopettamasi ketju.

mysql> START SLAVE;

Vaihe 4: Tarkista MySQL Master-Slave Replication

Tarkistaaksemme, toimiiko asennus todella odotetusti, luomme uuden tietokannan isäntäkoneeseen ja tarkistamme, onko se replikoitu MySQL Slave -palvelimella.

Kirjaudu MySQL:ään pääpalvelimella.

sudo mysql -u root -p

Luodaan testitietokanta. Tässä tapauksessa luomme tietokannan nimeltä replication_db.

mysql> CREATE DATABASE replication_db;

Kirjaudu nyt sisään MySQL-esiintymääsi orjapalvelimella.

sudo mysql -u root -p

Listaa nyt tietokannat kyselyn avulla.

mysql> SHOW DATABASES;

Huomaat, että isäntäkoneella luomasi tietokanta on replikoitu orjalle. Mahtavaa! MySQL Master-slave -replikaatiosi toimii odotetusti! Voit nyt olla varma, että virhetilanteissa tietokantatiedostojen kopiot replikoidaan orjapalvelimelle.

Johtopäätös

Tässä oppaassa opit määrittämään MySQL Master-slave -replikointiasetukset Ubuntu 18.04:ssä.