Master-Slave replikasiyası nədir və necə qurulur.

Gunel Ismayil
Kodera
Published in
4 min readSep 15, 2018
“grayscale photo of man using magnifying glass” by mari lezhava on Unsplash

MySQL replikasiyası vasitəsilə data serverdə (master) olan dataların bir neçə serverlərə (slave) avtomatik kopyalanmasına imkan yaradır. Bu da bizə data serverdə problem yaransa onu əvəzləyə biləcək bir və ya bir neçə serverin olması üstünlüyünü verir. Master-slave bir tərəfli işləyir, yəni data yalnız master-dən slave-ə yazılır. Yazılma əməliyyatları master, oxunma əməliyyatları isə slave ilə aparılır. Bu replikasiyanı qurmaq üçün ən azı iki serverə ehtiyac olacaq.

Əvvəlcə virtual maşında iki data server yaratmaq lazımdır. Nəzərə alaq ki sistem artıq yüklənib. Qeyd edim ki, burada centos 7 isitfadə olunacaq. Hər iki maşında mysql eyni qaydada quraşdırılma aparılır. İlk öncə master serverdən (192.168.53.146) başlayaq

Yum install mariadb-server

Mysql statusunu yoxlayıb sönlüdürsə yandırırıq.

Systemctl status mariadb

systemctl start mariadb

Systemctl enable mariadb

Minimal install olduğuna görə lazımi bütün package-ləri özümüz yükləməliyik.

Yum install net-tools

3306 portunda mysqld servisinin işləndiyi görünür.

Netstat –nltp

İşlək servislər arasında mysql servisini tapıb firewall-a əlavə etmək lazımdır ki, servisə kənardan qoşulmanı təmin edək.

firewall-cmd — get-services | grep mysql — color

firewall-cmd — permanent — add-service=mysql

firewall-cmd –reload

mysql_secure_installation

Mysql-ə qoşulmazdan əvvəl bir sadə üsul istifadə edək mysql-ə user və pass yazmamaq üçün hər dəfə. root direktoriyasının altında vi my.cnf yaradıb içinə aşağıdakıları yazırıq.

İndi isə serverimizi konfiqurasiya edək ki, bu server master kimi fəaliyyət göstərsin və slave serveri dəyişiklikləri izləsin və özündə update etsin.

Vi /etc/my.cnf

mysql

qoşulub iki əlavə databaza və içində table yaradıb insert edərk.

Root istifadəçisi ilə slave istifadəçisi yaradıb ona replikasiya icazəlarini veririk.

Systemctl restart mariadb

Hazırda konfiqurasiya etdiyimiz master serverinin statusunu yoxlayırıq onun əsas iki parametrini yadda saxlamaq lazımdır. Slave server quraşdırarkən bizə lazım olacaq.

Mysqldump test > test.sql

Test olaraq test databazasanı götürdüm və yenidən mysql-ə qoşulub

Unlock tables

etmək lazımdır. Bu faylı digər serverə slave-ə ataq.

Scp test.sql root@192.168.53.145:/root/

Keçək slave (192.168.53.145) serverə.

yum install mariadb

systemctl enable mariadb

systemctl start mariadb

firewall-cmd — permanent — add-service=mysql

firewall-cmd — reload

systemctl start mariadb

mysql_secure_installation

sonra vi /etc/my.cnf faylı yaradıb içinə sətirləri əlavə edin. İkinci sətir hansi bazanın update olunmağını istəyiriksə adını yazırıq.

Export etdiyimiz faylı bura import edirik aşağıdakı kimi.

Və slave-də masterə qoşulmanı təmin konfiqləri yazaq.

Quraşdırılma hazırdır. İndi əgər masterə data yazsanız o slave-ə update olmuş olacaq.

Slave-de baxanda həmin insert etdiyimizi görəcik.

--

--