MariaDB (Master-Slave) replikatsiooni seadistamine CentOS/RHEL 7 ja Debian 8/9


Isegi kui mõned IT-inimesed kuulevad fraasi „Andmebaasi replikatsioon”, seostavad nad seda sageli vajadusega omada sama teavet mitu eksemplari, et vältida andmete kadu riistvara rikke või andmete rikutuse korral. Kuigi see on mingil määral tõsi, on andmebaasi replikatsioon palju rohkem kui andmebaasi varundamise ja andmete kättesaadavuse üldine kontseptsioon.

Andmebaasi replikatsiooni muude eeliste hulgas ülema-orja seadistuses võime mainida järgmist:

  1. Varukoopiaid saab teha orjaserveris, ilma et see mõjutaks (ja ei mõjutaks) juhi kirjutamistoiminguid.
  2. Orjal on võimalik teha ressursimahukaid toiminguid (näiteks andmete analüüs), ilma et see mõjutaks ülema jõudlust.

Selles artiklis selgitame, kuidas seadistada MariaDB 10.1 isand-ori replikatsiooni. Vastupidiselt klassikalisele replikatsioonile tutvustas MariaDB versioonis 10.0 globaalsete tehingute ID-de (GTID) kontseptsiooni, mis võimaldab muuta orja, et hõlpsasti teise masteriga ühendust luua ja paljundada. Lisaks sellele registreeritakse orja olek krahhiohutult (oleku värskendused tehakse sama tehinguga nagu andmete värskendused).

Kui otsite MySQL-i replikatsiooni CentOS/RHEL 6 alt, järgige seda juhendit MySQL-i (Master-Slave) replikatsiooni seadistamine CentOS/RHEL 6-l

MariaDB 10.1 installimine CentOS/RHEL 7 ja Debian 8/9

Meie testimiskeskkond koosneb järgmistest masinatest (mõlemad on CentOS 7):

Master: 192.168.0.18
Slave: 192.168.0.19

MariaDB uusima versiooni installimiseks peame lisama nende hoidlad meie serveritesse. Kui kasutate MariaDB vanemat versiooni, ütleme näiteks 5.5, kaaluge artikli alla viimist uuemale versioonile 10.1.

  1. Upgrde MariaDB 5.5 versioonilt MariaDB 10.1

Looge fail/nimega MariaDB.repo /etc/yum.repos.d sees järgmise sisuga nii Master kui ka Slave süsteemis:

# MariaDB 10.1 CentOS repository list - created 2016-01-23 14:16 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Salvestage fail ja installige MariaDB mõlemasse serverisse yum abil:

# yum update && yum install MariaDB-server MariaDB-client

Pakettide ja MariaDB hoidla autentimiseks lisage võti:

# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# add-apt-repository 'deb [arch=amd64,i386] http://mirror.edatel.net.co/mariadb/repo/10.1/debian jessie main'

Märkus. Asendage ülaltoodud esiletõstetud real jaotuse ja koodinimi.

Installige apt-get käsuga:

# apt-get update
# apt-get install mariadb-server

Kui olete MariaDB installinud, käivitage protseduur mysql_secure_installation nii isandal kui ka alluval, seadistame peamasinasse prooviandmebaasi.

MySQL-i näidisandmebaasi seadistamine Master-is

Nüüd seadistame põhiserveris andmebaasi Employees saidilt https://github.com/datacharmer/test_db (mis pakub 4 miljoni kirje andmekogumit kuue tabeli vahel) kahes lihtsas etapis:

Kloonige hoidla ja kasutage seda näidisandmebaasi importimiseks oma MariaDB installi:

# git clone https://github.com/datacharmer/test_db
# cd test_db
# mysql < employees.sql

MySQL Serveri seadistamine Masteris

Peamise seadistamiseks toimige järgmiselt.

1. SAMM: muutke faili /etc/my.cnf . Jaotises [mysqld] lisage järgmised neli rida:

log-bin
server_id=1
replicate-do-db=employees
bind-address=192.168.0.18

ja taaskäivitage MariaDB:

# systemctl restart mariadb

2. SAMM: logige MariaDB serverisse juurena sisse, looge kasutaja ori ja määrake vajalikud toetused:

MariaDB [(none)]> CREATE USER 'slave'@'localhost' IDENTIFIED BY 'SlavePassword';
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO slave IDENTIFIED BY 'SlavePassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;
MariaDB [(none)]> SHOW MASTER STATUS;

Viimane käsk (SHOW MASTER STATUS) tagastab praeguse asukoha binaarlogis (täpsed koordinaadid, mis näitavad täpselt, millises punktis ori peaks hakkama paljundama:

3. SAMM: väljuge MariaDB viipast (koos exit; ) ja kasutage töötajate andmebaasi hetktõmmise tegemiseks järgmist käsku. Kui vajutate sisestusklahvi Enter, palutakse teil sisestada varem seadistatud juurjuure parool mysql_secure_installation kaudu:

# mysqldump -u root -p employees > employees-dump.sql

Kui prügila on lõpule viidud, ühendage tabelite avamiseks uuesti andmebaasi serveriga ja seejärel väljuge:

MariaDB [(none)]> UNLOCK TABLES;
MariaDB [(none)]> exit;

4. SAMM: kopeerige prügikast alamale:

# scp employees-dump.sql [email :/root/ 

5. SAMM: käivitage süsteemitabelite värskendamiseks protseduur mysql_upgrade (teil palutakse sisestada MariaDB juurparool):

# mysql_upgrade -u root -p

6. SAMM: lubage andmebaasiteenusel tulemüüri kaudu:

# firewall-cmd --add-service=mysql
# firewall-cmd --add-service=mysql --permanent
# firewall-cmd --reload

Nüüd konfigureerime orja.

MySQL Serveri konfigureerimine alluval

Orja konfigureerimiseks toimige järgmiselt.

1. SAMM: looge paljundusülesannete täitmiseks konto. Looge ühendus kohaliku MariaDB serveriga:

# mysql -u root –p

ja sisestage varem seadistatud parool.

2. SAMM. Kui olete andmebaasiserveriga ühendatud, looge kasutaja ja tühi andmebaas ning andke õigused:

MariaDB [(none)]> CREATE DATABASE employees;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON employees.* TO 'slave'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;

3. SAMM: väljuge viipast MariaDB ja laadige põhiserverisse loodud prügikast:

# mysql -u root -p employees < employees-dump.sql

4. SAMM. Redigeerige faili /etc/my.cnf , et määrata serveri ID jaotisele [mysqld] . Pange tähele, et see peab olema erinev täisarv kui 1, kuna me kasutasime põhiseadet 1:

server_id=2
replicate-do-db=employees

Taaskäivitage andmebaasiserver:

# systemctl restart mariadb

5. SAMM: käivitage süsteemitabelite värskendamiseks protseduur mysql_upgrade (teil palutakse sisestada MariaDB juurparool):

# mysql_upgrade -u root -p

6. SAMM: Kui prügimägi on orjale imporditud, on paljundamise alustamiseks vaid mõned sammud. Logige sisse andmebaasi ja käivitage järgmised käsklused MariaDB viipas. Pöörake erilist tähelepanu muutujatele MASTER_LOG_FILE ja MASTER_LOG_POS , mis peaksid vastama väärtustele, mille SHOW MASTER STATUS tagastas ülaltoodud jaotise „Master halduri seadistamine” 2. etapis.

MariaDB [(none)]> CHANGE MASTER TO
  MASTER_HOST='192.168.0.18',
  MASTER_USER='slave',
  MASTER_PASSWORD='SlavePassword',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='master-bin.000001',
  MASTER_LOG_POS=314,
  MASTER_CONNECT_RETRY=10,
  MASTER_USE_GTID=current_pos;

7. SAMM: käivitage ori ja kontrollige selle olekut MariaDB viipast väljumata:

MariaDB [(none)]> START SLAVE;
MariaDB [(none)]> SHOW SLAVE STATUS\G;

Mitte et teil seda praegu vaja oleks, kuid pange tähele, et saate orja peatada:

MariaDB [(none)]> STOP SLAVE;

kui käsk SHOW SLAVE STATUS\G; tagastab vead. Kasutage neid tõrkeid tõrkeotsinguks ja käivitage uuesti testimiseks käsk START SLAVE; .

Testige MySQL/MariaDB andmebaasi replikatsiooni

Lisame põhiserveri töötajate tabelisse kirje:

MariaDB [(none)]> INSERT INTO employees (emp_no, birth_date, first_name, last_name, gender, hire_date) VALUES (500000, '1983-07-12', 'Dave', 'Null', 'M', '2014-12-12');

Seejärel veenduge, et see muudatus oleks orjas kordunud:

MariaDB [(none)]> USE employees;
MariaDB [(none)]> SELECT * FROM employees WHERE emp_no=500000;

Nagu näete, töötab replikatsioon õigesti masterilt orjale.

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas installida uusim MariaDB versioon CentOS/RHEL 7 ja Debian 8/9, ning arutanud, kuidas seadistada ülema-orja replikatsiooni GTID-dega. Lisateabe saamiseks võite vaadata MariaDB replikatsioonijuhendit ja kui teil on küsimusi või kommentaare, võtke meiega kindlasti ühendust alloleva vormi abil.