Kif Twaqqaf ir-Replikazzjoni MariaDB (Master-Slave) f'CentOS/RHEL 7 u Debian 8/9
Anke meta xi nies tal-IT jisimgħu l-frażi Replikazzjoni tad-Database, ħafna drabi jassoċjawha mal-ħtieġa li jkollhom kopji multipli tal-istess informazzjoni biex jiġi evitat it-telf tad-dejta fil-każ ta 'falliment tal-hardware jew korruzzjoni tad-dejta. Filwaqt li dan huwa minnu sa ċertu punt, hemm ħafna aktar għar-replikazzjoni tad-database mill-kunċett komuni ta 'backup ta' database u d-disponibbiltà tad-data.
Fost benefiċċji oħra tar-replikazzjoni tad-database f'setup master-slave nistgħu nsemmu:
- Il-backups jistgħu jsiru fuq is-server slave mingħajr ma jiġu affettwati (u jiġu affettwati minn) l-operazzjonijiet tal-kitba fil-master.
- Operazzjonijiet li jużaw ħafna riżorsi (bħal analiżi tad-dejta) jistgħu jsiru fuq l-iskjav mingħajr ma jinfluwenzaw il-prestazzjoni tal-kaptan.
F'dan l-artikolu ser nispjegaw kif twaqqaf replikazzjoni master-slave f'MariaDB 10.1. Għall-kuntrarju tar-replikazzjoni klassika, MariaDB introduċiet il-kunċett ta 'Global Transaction IDs (GTIDs) f'v10.0, li jippermetti li tbiddel slave biex tikkonnettja u tirreplika minn kaptan differenti faċilment. Barra minn hekk, l-istat tal-iskjav huwa rreġistrat b'mod sikur għall-ħabta (l-aġġornamenti għall-istat isiru fl-istess tranżazzjoni bħall-aġġornamenti tad-dejta).
Jekk qed tfittex replikazzjoni MySQL taħt CentOS/RHEL 6, segwi din il-gwida Setup MySQL (Master-Slave) Replication on CentOS/RHEL 6
Installazzjoni ta' MariaDB 10.1 f'CentOS/RHEL 7 u Debian 8/9
L-ambjent tal-ittestjar tagħna jikkonsisti mill-magni li ġejjin (it-tnejn huma CentOS 7):
Master: 192.168.0.18 Slave: 192.168.0.19
Biex tinstalla l-aħħar verżjoni ta 'MariaDB, ser ikollna nżidu r-repożitorji tagħhom mas-servers tagħna. Jekk qed tuża verżjoni eqdem ta' MariaDB ngħidu aħna 5.5, ikkunsidra li taġġorna għall-aħħar verżjoni 10.1 billi tuża l-artikolu hawn taħt.
- Aġġorna MariaDB 5.5 għal MariaDB 10.1
Oħloq fajl bl-isem MariaDB.repo
ġewwa /etc/yum.repos.d bil-kontenut li ġej kemm fuq is-sistemi Master u Slav:
# 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
Issejvja l-fajl u installa MariaDB fuq iż-żewġ servers billi tuża yum:
# yum update && yum install MariaDB-server MariaDB-client
Żid iċ-ċavetta biex tivverifika l-pakketti u r-repożitorju 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'
Nota: Ibdel l-isem tad-distribuzzjoni u l-isem tal-kodiċi fil-linja enfasizzata hawn fuq.
Installa bl-użu tal-kmand apt-get:
# apt-get update # apt-get install mariadb-server
Ladarba tkun stallajt MariaDB, mexxi l-proċedura mysql_secure_installation
kemm fuq il-kaptan kif ukoll fuq l-iskjav, ejja nwaqqfu database tat-test kampjun fil-magna prinċipali.
Twaqqif ta 'Database MySQL ta' Kampjun fuq Master
Issa se nwaqqfu fis-server prinċipali d-database Impjegati
minn https://github.com/datacharmer/test_db (li tipprovdi sett ta’ data ta’ 4 miljun rekord mifrux fuq sitt tabelli) f’żewġ passi sempliċi:
Ikklonja r-repożitorju u użah biex timporta d-database tal-kampjun għall-installazzjoni MariaDB tiegħek:
# git clone https://github.com/datacharmer/test_db # cd test_db # mysql < employees.sql
Konfigurazzjoni ta 'MySQL Server fuq Master
Biex tikkonfigura l-kaptan, segwi dawn il-passi:
PASS 1: Editja l-fajl /etc/my.cnf
. Taħt it-taqsima [mysqld]
, żid l-erba' linji li ġejjin:
log-bin server_id=1 replicate-do-db=employees bind-address=192.168.0.18
u erġa ibda MariaDB:
# systemctl restart mariadb
PASS 2: Idħol fis-server MariaDB bħala root, oħloq l-iskjav tal-utent u assenja l-għotjiet meħtieġa:
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;
L-aħħar kmand (SHOW MASTER STATUS) jirritorna l-pożizzjoni attwali fil-log binarju (il-koordinati eżatti li jindikaw eżattament f'liema punt l-iskjav għandu jibda jirreplika minn:
PASS 3: Oħroġ mill-pront ta 'MariaDB (b'ħruġ;
) u uża l-kmand li ġej biex tieħu ritratt tad-database tal-impjegati. Meta tolqot Enter, tkun imħeġġeġ biex ittajpja l-password għall-għeruq li waqqaft qabel permezz ta' mysql_secure_installation
:
# mysqldump -u root -p employees > employees-dump.sql
Wara li titlesta d-dump, erġa' qabbad mas-server tad-database biex tiftaħ it-tabelli u mbagħad toħroġ:
MariaDB [(none)]> UNLOCK TABLES; MariaDB [(none)]> exit;
PASS 4: Ikkopja d-dump lill-iskjav:
# scp employees-dump.sql [email :/root/
PASS 5: Mexxi l-proċedura mysql_upgrade
biex taġġorna t-tabelli tas-sistema (inti se tintalab biex iddaħħal il-password tal-għerq ta' MariaDB):
# mysql_upgrade -u root -p
PASS 6: Ħalli s-servizz tad-database permezz tal-firewall:
# firewall-cmd --add-service=mysql # firewall-cmd --add-service=mysql --permanent # firewall-cmd --reload
Issa ejja kkonfigurat l-iskjav.
Konfigurazzjoni ta' MySQL Server fuq Slav
Biex tikkonfigura l-iskjav, segwi dawn il-passi:
PASS 1: Oħloq il-kont biex twettaq il-kompiti ta 'replikazzjoni. Qabbad mas-server MariaDB lokali ma':
# mysql -u root –p
u daħħal il-password li waqqaft qabel.
PASS 2: Ladarba tkun imqabbda mas-server tad-database, oħloq l-utent u database vojta, u agħti l-permessi:
MariaDB [(none)]> CREATE DATABASE employees; MariaDB [(none)]> GRANT ALL PRIVILEGES ON employees.* TO 'slave'@'localhost' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES;
PASS 3: Oħroġ mill-pront MariaDB u tagħbija d-dump maħluqa fis-server prinċipali:
# mysql -u root -p employees < employees-dump.sql
PASS 4: Editja l-fajl /etc/my.cnf
biex tassenja ID tas-server lill-iskjav taħt it-taqsima [mysqld]
. Innota li jeħtieġ li jkun numru sħiħ differenti minn 1, peress li użajna 1 fil-kaptan:
server_id=2 replicate-do-db=employees
Ibda mill-ġdid is-server tad-database:
# systemctl restart mariadb
PASS 5: Mexxi l-proċedura mysql_upgrade
biex taġġorna t-tabelli tas-sistema (inti tkun imħeġġeġ biex iddaħħal il-password tal-għerq ta' MariaDB):
# mysql_upgrade -u root -p
PASS 6: Ladarba l-miżbla tkun ġiet importata lill-iskjav, aħna biss ftit passi biex tibda replika. Idħol fid-database u mexxi l-kmandi li ġejjin fil-pront MariaDB. Oqgħod attent ħafna għall-varjabbli MASTER_LOG_FILE
u MASTER_LOG_POS
, li għandhom jaqblu mal-valuri rritornati minn SHOW MASTER STATUS fi PASS 2 ta' “Konfigurazzjoni tal-kaptan” hawn fuq.
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;
PASS 7: Ibda l-iskjav u iċċekkja l-istatus tiegħu mingħajr ma toħroġ mill-pront ta' MariaDB:
MariaDB [(none)]> START SLAVE; MariaDB [(none)]> SHOW SLAVE STATUS\G;
Mhux li għandek bżonn dan issa, imma innota li tista 'twaqqaf l-iskjav bi:
MariaDB [(none)]> STOP SLAVE;
jekk il-kmand SHOW SLAVE STATUS\G;
jirritorna xi żbalji. Uża dawk l-iżbalji biex issolvi l-problemi u mbagħad ħaddem START SLAVE;
biex terġa’ tittestja.
Test MySQL/MariaDB Database Replikazzjoni
Ejja nżidu rekord mat-tabella tal-impjegati fis-server prinċipali:
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');
Imbagħad ivverifika li din il-bidla ġiet replikata fl-iskjav:
MariaDB [(none)]> USE employees; MariaDB [(none)]> SELECT * FROM employees WHERE emp_no=500000;
Kif tistgħu taraw, ir-replikazzjoni qed taħdem b'mod korrett minn kaptan għal slave.
Sommarju
F'dan l-artikolu spjegajna kif tinstalla l-aħħar verżjoni ta 'MariaDB f'CentOS/RHEL 7 u Debian 8/9, u ddiskutejna kif twaqqaf replikazzjoni master-slave b'GTIDs. Għal aktar informazzjoni, tista 'tkun trid tirreferi għall-Gwida ta' Replikazzjoni MariaDB, u toqgħodx lura milli tikkuntattjana billi tuża l-formola hawn taħt jekk għandek mistoqsijiet jew kummenti.