Yadda ake saita MariaDB (Master-Bawa) Kwafi a cikin CentOS/RHEL 7 da Debian 8/9


Ko da a lokacin da wasu mutanen IT suka ji kalmar kwafiwar bayanai, galibi suna danganta shi da buƙatar samun kwafin bayanai iri ɗaya don guje wa asarar bayanai a cikin yanayin gazawar hardware ko lalata bayanai. Duk da yake hakan gaskiya ne a ɗan lokaci, akwai abubuwa da yawa ga kwafin bayanai fiye da ma'anar gama gari na tallafawa bayanan bayanai da wadatar bayanai.

Daga cikin sauran fa'idodin kwafin bayanai a cikin saitin bawa-bawa muna iya ambata:

    Ana iya yin ajiyar ajiya akan uwar garken bawa ba tare da shafar (da kuma shafa shi) ayyukan rubutawa a cikin maigidan ba. Ana iya aiwatar da ayyuka masu ƙarfi (kamar nazarin bayanai) akan bawa ba tare da rinjayar aikin maigida ba.

A cikin wannan labarin zamuyi bayanin yadda ake saita kwafin bawa-bawa a cikin MariaDB 10.1. Sabanin kwafi na al'ada, MariaDB ya gabatar da manufar ID na Kasuwancin Duniya (GTIDs) a cikin v10.0, wanda ke ba da damar canza bawa don haɗawa da yin kwafi daga maigida daban cikin sauƙi. A saman wannan, ana yin rikodin yanayin bawan a cikin hanyar da ba ta dace ba (ana yin sabuntawa ga jihar a cikin ma'amala ɗaya da sabuntawa ga bayanai).

Idan kana neman maimaita MySQL a ƙarƙashin CentOS/RHEL 6, bi wannan jagorar Saita MySQL (Master-Bawa) Kwafi akan CentOS/RHEL 6

Sanya MariaDB 10.1 a cikin CentOS/RHEL 7 da Debian 8/9

Yanayin gwajin mu ya ƙunshi injina masu zuwa (dukansu CentOS 7):

Master: 192.168.0.18
Slave: 192.168.0.19

Don shigar da sabuwar sigar MariaDB, za mu buƙaci ƙara ma'ajiyar su zuwa sabobin mu. Idan kana amfani da tsohuwar sigar MariaDB ce 5.5, la'akari da haɓakawa zuwa sabon sigar 10.1 ta amfani da labarin ƙasa.

    Ɗaukaka MariaDB 5.5 zuwa MariaDB 10.1

Ƙirƙiri fayil mai suna MariaDB.repo a cikin /etc/yum.repos.d tare da abubuwan ciki masu zuwa akan tsarin Master da Slave:

# 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

Ajiye fayil ɗin kuma shigar da MariaDB akan sabobin biyu ta amfani da yum:

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

Ƙara maɓallin don tantance fakiti da ma'ajiyar MariaDB:

# 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'

Lura: Sauya sunan rarraba da lambar lambar a cikin layin da aka haskaka a sama.

Shigar ta amfani da apt-samun umarni:

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

Da zarar kun shigar da MariaDB, gudanar da tsarin mysql_secure_installation akan maigida da bawa, bari mu saita bayanan gwaji na samfurin a cikin babban injin.

Saita Samfuran Bayanan Bayanai na MySQL akan Jagora

Yanzu za mu saita bayanan Ma'aikata a cikin babban uwar garken bayanan daga https://github.com/datacharmer/test_db (wanda ke ba da bayanan bayanan miliyan 4 da aka baza akan tebur shida) a cikin matakai biyu masu sauƙi:

Rufe wurin ajiyar kuma amfani da shi don shigo da bayanan samfurin zuwa shigarwar MariaDB:

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

Ana saita MySQL Server akan Jagora

Don saita maigidan, bi waɗannan matakan:

Mataki 1: Shirya fayil ɗin /etc/my.cnf. Ƙarƙashin ɓangaren [mysqld], ƙara layi huɗu masu zuwa:

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

kuma zata sake farawa MariaDB:

# systemctl restart mariadb

Mataki 2: Shiga zuwa uwar garken MariaDB azaman tushen, ƙirƙirar bawa mai amfani kuma sanya tallafin da ake buƙata:

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;

Umurni na ƙarshe (SHOW MASTER STATUS) yana dawo da matsayi na yanzu a cikin log ɗin binary (daidaitaccen daidaitawa waɗanda ke nuna daidai lokacin da bawa ya kamata ya fara kwafi daga:

Mataki na 3: Fita saurin MariaDB (tare da fita;) kuma yi amfani da umarni mai zuwa don ɗaukar hoto na bayanan ma'aikata. Lokacin da ka danna Shigar, za a sa ka rubuta kalmar sirri don tushen da ka kafa a baya ta hanyar mysql_secure_installation:

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

Bayan an gama jujjuyar, sake haɗawa zuwa uwar garken bayanan don buɗe tebur sannan kuma fita:

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

Mataki na 4: Kwafi juji zuwa ga bawa:

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

Mataki na 5: Gudun mysql_upgrade hanya don haɓaka teburin tsarin (za a sa ku shigar da kalmar sirri ta MariaDB):

# mysql_upgrade -u root -p

Mataki na 6: Ba da izinin sabis na bayanai ta hanyar Tacewar zaɓi:

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

Yanzu bari mu saita bawan.

Ana saita MySQL Server akan Bawa

Don saita bawan, bi waɗannan matakan:

Mataki 1: Ƙirƙiri asusu don aiwatar da ayyukan kwafi. Haɗa zuwa uwar garken MariaDB na gida tare da:

# mysql -u root –p

kuma shigar da kalmar sirrin da kuka saita a baya.

MATAKI 2: Da zarar an haɗa zuwa uwar garken bayanai, ƙirƙiri mai amfani da rumbun adana bayanai mara komai, sannan a ba da izini:

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

Mataki na 3: Fita da sauri na MariaDB kuma ɗora juji da aka ƙirƙira a cikin uwar garken uwar garken:

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

Mataki na 4: Shirya fayil ɗin /etc/my.cnf don sanya ID na uwar garke ga bawa a ƙarƙashin sashin [mysqld]. Lura cewa yana buƙatar zama lamba daban fiye da 1, kamar yadda muka yi amfani da 1 a cikin maigidan:

server_id=2
replicate-do-db=employees

Sake kunna uwar garken bayanai:

# systemctl restart mariadb

Mataki na 5: Gudun mysql_upgrade hanya don haɓaka teburin tsarin (za a sa ku shigar da kalmar sirri ta MariaDB):

# mysql_upgrade -u root -p

MATAKI NA 6: Da zarar an shigo da juji ga bawa, muna ƴan matakai ne kawai don fara maimaitawa. Shiga cikin bayanan bayanan kuma gudanar da umarni masu zuwa a cikin gaggawar MariaDB. Ba da kulawa ta musamman ga masu canjin MASTER_LOG_FILE da MASTER_LOG_POS, waɗanda zasu dace da ƙimar da SHOW MASTER STATUS ya mayar a mataki na 2 na Configuring the master a sama.

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;

Mataki na 7: Fara bawa kuma duba matsayinsa ba tare da fita daga gaggawar MariaDB ba:

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

Ba wai kuna buƙatar wannan yanzu ba, amma lura cewa zaku iya dakatar da bawa da:

MariaDB [(none)]> STOP SLAVE;

idan umurnin NUNA MATSAYIN BAYI\G; ya dawo da kowane kurakurai. Yi amfani da waɗancan kurakuran don gyara matsala sannan a kunna START BAYI; don sake gwadawa.

Gwada Maimaita Database/MariaDB Database

Bari mu ƙara rikodin zuwa teburin ma'aikata a cikin uwar garken uwar garken:

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');

Sa'an nan kuma tabbatar da cewa an maimaita wannan canji a cikin bawa:

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

Kamar yadda kake gani, kwafi yana aiki daidai daga ubangida zuwa bawa.

Takaitawa

A cikin wannan labarin mun bayyana yadda ake shigar da sabuwar sigar MariaDB a cikin CentOS/RHEL 7 da Debian 8/9, kuma mun tattauna yadda ake saita kwafin bawa-bawa tare da GTIDs. Don ƙarin bayani, ƙila za ku so ku koma zuwa Jagoran Maimaitawa na MariaDB, kuma kada ku yi shakka a tuntuɓe mu ta amfani da fom ɗin da ke ƙasa idan kuna da tambayoyi ko sharhi.