Ինչպես տեղադրել Load Balancing MySQL Server ProxySQL-ով Debian 11-ում
Այս էջում
- Նախադրյալներ
- Կարգավորեք պահեստները
- ProxySQL-ի և Percona XtraDB Cluster Client-ի տեղադրում
- MySQL Cluster/Percona XtraDB կլաստերի ավելացում ProxySQL-ին
- ProxySQL մոնիտորինգի օգտագործողի կարգավորում
- Ծրագրերի համար տվյալների բազայի օգտագործողի կարգավորում
- Ստուգեք տվյալների բազան և օգտագործողը
- Եզրակացություն
ProxySQL-ը բարձր արդյունավետությամբ MySQL վստահված սերվեր է, որը կարող է տեղադրվել բազմաթիվ միջավայրերում, ինչպիսիք են VM-ը, K8-ը, մերկ մետաղական և Docker կոնտեյներները: ProxySQL-ը բաց կոդով լուծում է, որն ապահովում է բարձր հասանելիություն ձեր MySQL կլաստերի համար՝ կապի մուլտիպլեքսավորման աջակցությամբ, տրամադրում է հարցումների կանոններ՝ երթուղղելու սկզբնական գրությունները և բաշխում է ընթերցումները կրկնօրինակների միջև:
ProxySQL-ն աջակցում է և՛ AMD64 (x86_64) և՛ ARM64-ին համապատասխան: Այն ապահովում է հավելվածի շերտի վստահված անձ ձեր հավելվածի համար, ինչպես նաև տրամադրում է առաջադեմ հարցումներ՝ ձախողման հայտնաբերմամբ:
Այս ուղեցույցում դուք կտեղադրեք և կկարգավորեք MySQL Cluster-ի բեռների հավասարակշռումը ProxySQL-ի միջոցով Debian 11 սերվերի վրա: Դուք կտեղադրեք ProxySQL v2-ը percona XtraDB Client-ի հետ, այնուհետև կավելացնեք Percona XtraDB Cluster-ը ProxySQL-ին, կարգավորեք ProxySQL մոնիտորինգի օգտվողը, այնուհետև կավելացնեք տվյալների բազան և օգտվողը, որը կօգտագործվի ձեր հավելվածների համար:
Նախադրյալներ
Այս ուղեցույցից սկսելու համար դուք պետք է ունենաք հետևյալ պահանջները.
- Linux սերվեր, որն աշխատում է Debian 11 համակարգով - Այս օրինակում օգտագործվում է Debian սերվեր՝ «proxysql-deb» հոսթի անունով:
- Ոչ արմատային օգտատեր՝ sudo/root ադմինիստրատորի արտոնություններով:
- Լիովին կազմաձևված MySQL Cluster կամ Percona XtraDB Cluster:
վերջ։ Երբ բոլոր պահանջները պատրաստ լինեն, այժմ կարող եք սկսել ProxySQL տեղադրումը:
Կարգավորեք պահեստները
Առաջին քայլը, որը դուք պետք է անեք այս ուղեցույցի համար, ձեր սերվերին և՛ ProxySQL, և՛ Percona XtraDB պահեստները ավելացնելն է: Percona XtraDB պահոցը կօգտագործվի «percona-xtradb-cluster-client» փաթեթը տեղադրելու համար, որը պահանջում է ProxySQL-ը:
Սկսելու համար տեղադրեք որոշ հիմնական կախվածություններ՝ մուտքագրելով հետևյալ apt հրամանը: Մուտքագրեք y, երբ ձեզ հուշում են, և սեղմեք ENTER՝ շարունակելու համար:
sudo apt install wget gnupg2 lsb-release curl apt-transport-https ca-certificates
Հաջորդը, ներբեռնեք պահեստային ֆայլը Percona XtraDB-ի համար և տեղադրեք այն ստորև «dpkg» հրամանի միջոցով:
wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
Այժմ թարմացրեք և թարմացրեք ձեր Debian փաթեթի ինդեքսը՝ օգտագործելով ստորև նշված apt հրամանը: Դուք պետք է տեսնեք, որ նոր Percona XdtraDB պահոցն ավելացվել է:
sudo apt update
Այնուհետև մուտքագրեք «percona-release» հրամանը՝ Percona XtraDB Cluster 8.0 պահոցը միացնելու համար:
sudo percona-release setup pxc80
Երբ ավելացված է Percona XtraDB պահոցը, այժմ գործարկեք հետևյալ հրամանը՝ ProxySQL-ի համար GPG բանալին և պահոց ավելացնելու համար:
wget -q -nv -O /etc/apt/trusted.gpg.d/proxysql-2.4.x-keyring.gpg 'https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/repo_pub_key.gpg'
echo deb https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/$(lsb_release -sc)/ ./ | tee /etc/apt/sources.list.d/proxysql.list
Թարմացրեք և նորից թարմացրեք ձեր Debian փաթեթի ինդեքսը՝ նոր պահոցը apple-ի համար:
sudo apt update
Երկու Percona XtraDB և ProxySQL պահեստների ավելացմամբ դուք կարող եք տեղադրել ProxySQL և Percona XtraDB հաճախորդների փաթեթները:
ProxySQL-ի և Percona XtraDB Cluster Client-ի տեղադրում
Այս բաժնում դուք կտեղադրեք ProxySQL v2 փաթեթը Percona XtraDB հաճախորդի փաթեթով: Մուտքագրեք հետևյալ apt հրամանը՝ և՛ ProxySQL, և՛ Percona XtraDB հաճախորդների փաթեթները տեղադրելու համար:
sudo apt install proxysql2 percona-xtradb-cluster-client
Երբ ձեզ հուշում են, մուտքագրեք y՝ հաստատելու համար և սեղմեք ENTER՝ շարունակելու համար:
ProxySQL-ը տեղադրվելուց հետո այն ավտոմատ կերպով կաշխատի և ավտոմատ կերպով կսկսվի համակարգի գործարկման ժամանակ: Մուտքագրեք հետևյալ systemctl հրամանի օգտակար ծրագիրը՝ ProxySQL ծառայության կարգավիճակը ստուգելու համար:
sudo systemctl is-enabled proxysql
sudo systemctl start proxysql
«միացված» ելքը հաստատում է, որ ProxySQL-ն ավտոմատ կերպով կսկսվի համակարգի բեռնման ժամանակ: Եվ «ակտիվ (աշխատող)» ելքը հաստատում է, որ ProxySQL-ն աշխատում է:
Հաջորդը, մուտքագրեք հետևյալ mysql հրամանը՝ «admin» լռելյայն օգտագործողով և գաղտնաբառով ProxySQL սերվեր մուտք գործելու համար:
mysql -u admin -padmin -h 127.0.0.1 -P 6032 --prompt='proxysql-deb> '
Հաջողությունից հետո դուք պետք է ստանաք ProxySQL shell-ը հետևյալ կերպ. Դուք միացել եք ProxySQL ադմինիստրատորի մոդուլին Percona XtraDB հաճախորդի միջոցով:
Այժմ մուտքագրեք հետևյալ հարցումը՝ ProxySQL սերվերի տվյալների բազաների ցանկը ստանալու համար: Դուք պետք է տեսնեք բազմաթիվ տվյալների բազաներ, որոնք հասանելի են ProxySQL սերվերում:
SHOW DATABASES;
Երբ տեղադրված է ProxySQL սերվերը և Percona XtraDB Cluster հաճախորդը, դուք պատրաստ եք ավելացնել MySQL կամ Percona XtraDB Cluster-ը ProxySQL սերվերին և կարգավորել բեռների հավասարակշռումը:
MySQL Cluster/Percona XtraDB կլաստերի ավելացում ProxySQL-ին
Առաջին քայլը, որը դուք պետք է անեք ProxySQL սերվերը տեղադրելուց հետո, ձեր MySQL կամ percona XtraDB կլաստերը ProxySQL սերվերին ավելացնելն է: Եվ դա կարելի է հասնել ProxySQL shell-ի միջոցով: Այս օրինակը օգտագործում է Percona XtraDB Cluster-ը հետևյալ մանրամասներով.
Hostname IP Address Port
---------------------------------
pxc01 192.168.5.15 3306
pxc02 192.168.5.16 3306
pxc03 192.168.5.17 3306
Նախքան սկսելը, համոզվեք, որ մուտք եք գործել ProxySQL shell: Այնուհետև մուտքագրեք հետևյալ հարցումները՝ ձեր MySQL սերվերները ProxySQL-ին ավելացնելու համար: Համոզվեք, որ փոխեք IP հասցեների և նավահանգիստների մանրամասները ձեր MySQL կլաստերի մանրամասներով:
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.15',3306);
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.16',3306);
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.17',3306);
«Հարցումը OK, 1 տող ազդված է» ելքը հաստատում է, որ MySQL սերվերն ավելացվել է ProxySQL սերվերին:
Մուտքագրեք հետևյալ հարցումը՝ ստուգելու այն MySQL սերվերների ցանկը, որոնք հասանելի են ProxySQL-ում: Դուք պետք է տեսնեք ProxySQL սերվերին ավելացված երեք MySQL սերվերներ:
SELECT * FROM mysql_servers;
ProxySQL-ին ավելացված MySQL կամ Percona XtraDB կլաստերի դեպքում, հաջորդիվ ձեզ անհրաժեշտ կլինի ProxySQL-ում կարգավորել Percona XtraDB կլաստերի մոնիտորինգը:
ProxySQL մոնիտորինգի օգտագործողի կարգավորում
Ապահովելու համար, որ MySQL-ը կամ Percona XtraDB Cluster-ը առողջ են, ProxySQL-ը շարունակաբար կվերահսկի բոլոր հասանելի MySQL սերվերների հետադարձ կապը: Դրան հասնելու համար դուք պետք է ստեղծեք նոր օգտվող ձեր percona XtraDB կլաստերի վրա, այնուհետև սահմանեք մոնիտորինգի օգտվողին ProxySQL սերվերի վրա:
Մուտք գործեք ձեր Percona XtraDB Cluster սերվեր, մուտք գործեք MySQL կեղև «mysql» հրամանի միջոցով, այնուհետև կատարեք հետևյալ MySQL հարցումները՝ «monitor» գաղտնաբառով նոր օգտվողի «մոնիտոր» ստեղծելու համար:
CREATE USER 'monitor'@'%' IDENTIFIED WITH mysql_native_password by 'monitor';
GRANT USAGE ON *.* TO 'monitor'@'%';
FLUSH PRIVILEGES;
SELECT USER,host FROM mysql.user;
SHOW GRANTS FOR 'monitor'@'%';
Հաջորդը, անցեք ProxySQL սերվեր և կատարեք հետևյալ հարցումը՝ սահմանելու այն օգտվողին, որը կօգտագործվի Percona XtraDB կլաստերի մոնիտորինգի համար: Սա կփոխի «mysql-monitor_username» լռելյայն փոփոխականը՝ «monitor» օգտագործողի հետ և «mysql-monitor_password» փոփոխականը «monitor» գաղտնաբառի համար: >'.
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_password';
Մուտքագրեք հետևյալ հարցումը՝ ProxySQL սերվերի վրա Percona XtraDB կլաստերի մոնիտորինգի համար որոշ լրացուցիչ պարամետրեր թարմացնելու համար:
UPDATE global_variables SET variable_value='2000' WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');
Պահպանեք «global_variables»-ում ձեր կատարած փոփոխությունները ProxySQL սերվերում՝ կատարելով հետևյալ հարցումները:
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;
Դուք պետք է ստանաք այսպիսի արդյունք:
Այժմ կատարեք հետևյալ հարցումը՝ ստուգելու «global_variables» ցանկը «mysql-monitor_»-ի համար ProxySQL սերվերում:
SELECT * FROM global_variables WHERE variable_name LIKE 'mysql-monitor_%';
Դուք պետք է ստանաք արդյունք, ինչպիսին է հետևյալ սքրինշոթը. «mysql-monitor_username» փոփոխականը պետք է ունենա «monitor» օգտագործողի արժեքը, իսկ գաղտնաբառի համար «mysql-monitor_password» փոփոխականը՝ «monitor»: Նաև կարող եք տեսնել 'mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval' is արժեքը փոխվել է '2000':
Վերջապես, մուտքագրեք հետևյալ հարցումները՝ ստուգելու Percona XtraDB կլաստերի մոնիտորինգի կարգավիճակը ProxySQL սերվերի վրա: Սա ձեզ ցույց կտա վերջին գրանցամատյանի կարգավիճակի և վերջին ping-ի տեղեկամատյանները ProxySQL սերվերից բոլոր հասանելի Percona XtraDB Cluster սերվերներին:
SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 6;
SELECT * FROM monitor.mysql_server_ping_log ORDER BY time_start_us DESC LIMIT 6;
Հաջողության դեպքում դուք պետք է ստանաք այսպիսի արդյունք:
ProxySQL սերվերի վերջին միացման տեղեկամատյանները Percona XtraDB Cluster-ին:
ProxySQL սերվերի վերջին ping մատյանները Percona XtraDB Cluster-ին:
ProxySQL սերվերի կողմից վերահսկվող MySQL կամ Percona XtraDB կլաստերի միջոցով դուք այժմ պատրաստ եք կարգավորել նոր օգտվող, որը կօգտագործեն ձեր հավելվածները:
Ծրագրերի համար տվյալների բազայի օգտագործողի կարգավորում
Տեղադրված և կազմաձևված ProxySQL սերվերի, ինչպես նաև MySQL կամ Percona XtraDB Cluster-ի ավելացված տվյալների բազայի հետ միասին, դուք այժմ կստեղծեք նոր օգտվող, որը կօգտագործեն ձեր հավելվածները: Այսպիսով, MySQL սերվերին ուղղակիորեն միանալու փոխարեն, ձեր հավելվածները պետք է միանան ProxySQL սերվերին, որը լռելյայն աշխատում է «6033» նավահանգստում:
Ձեր հավելվածների համար նոր օգտվող ստեղծելու համար դուք պետք է կատարեք հետևյալ քայլերը.
- Ստեղծեք նոր օգտվող MySQL կլաստերի կամ Percona XtraDB կլաստերի վրա և սահմանեք արտոնություններ:
- Ավելացրեք ձեր Percona XtraDB Cluster օգտատերը ProxySQL սերվերին. ներդիր «mysql_users» աղյուսակում:
Սկսելու համար վերադարձեք ձեր Percona XtraDB Cluster սերվեր և մուտք գործեք MySQL shell արմատային օգտագործողի միջոցով: Այնուհետև ստեղծեք նոր MySQL օգտատեր և օգտագործողին տրամադրեք բոլոր տվյալների բազա մուտք գործելու արտոնություններ՝ մուտքագրելով հետևյալ հարցումները։ Այս օրինակում դուք կստեղծեք նոր օգտվող «sbuser»՝ «sbpass» գաղտնաբառով: Նաև համոզվեք, որ փոխեք «192.168.5.85» IP հասցեն ProxySQL ծառայության IP հասցեով:
CREATE USER 'sbuser'@'192.168.5.85' IDENTIFIED WITH mysql_native_password by 'sbpass';
GRANT ALL PRIVILEGES ON *.* TO 'sbuser'@'192.168.5.85';
FLUSH PRIVILEGES;
Հաջորդը, վերադարձեք ProxySQL սերվեր և կատարեք հետևյալ հարցումը՝ ձեր նոր MySQL օգտվողին ProxySQL սերվերին ավելացնելու համար: Ձեր MySQL օգտվողները պետք է ավելացվեն ProxySQL սերվերի «mysql_users» աղյուսակին: Բացի այդ, այս գրելու պահին ProxySQL սերվերը դեռ չի աջակցում կոդավորված գաղտնաբառին:
INSERT INTO mysql_users (username,password) VALUES ('sbuser','sbpass');
Այժմ մուտքագրեք հետևյալ հարցումները՝ ձեր ProxySQL սերվերում փոփոխությունները հաստատելու և պահպանելու համար: Դրանով ձեր նոր օգտվողը պատրաստ է, և դուք կարող եք օգտագործել այս MySQL օգտվողը ձեր հավելվածների համար:
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
Դրանով ձեր հավելվածն այժմ պետք է միանա ProxySQL սերվերին «sbuser» օգտվողի և «sbpass» գաղտնաբառով 6033 պորտով:
Ստուգեք տվյալների բազան և օգտագործողը
Այս բաժնում դուք կստուգեք ProxySQL-ի տեղադրումը` միանալով ProxySQL սերվերին՝ օգտագործելով ձեր ստեղծած օգտատերը և գաղտնաբառը:
Մուտքագրեք հետևյալ «mysql» հրամանը՝ ProxySQL սերվեր մուտք գործելու համար նոր օգտվողի «sbuser» և «sbpass» գաղտնաբառով: Հաջողության դեպքում դուք պետք է տեսնեք ProxySQL սերվերի կեղևը:
mysql -u sbuser -psbpass -h 127.0.0.1 -P 6033 --prompt='proxysql-deb> '
Մուտքագրեք հետևյալ հարցումը՝ Percona XtraDB կլաստերի տվյալների բազաների ցանկը ստուգելու համար: Այս օրինակում կա մեկ տվյալների բազա «percona» Percona XtraDB կլաստերի վրա:
show databases;
Անցեք «percona» տվյալների շտեմարանին ներքևում գտնվող «Օգտագործեք» հարցման միջոցով:
use percona
Այնուհետև մուտքագրեք հետևյալ հարցումները՝ «percona» բազայի ցանկի աղյուսակները ստուգելու համար: Այնուհետև առբերեք առկա տվյալները ընթացիկ տվյալների բազայի վերաբերյալ, որտեղ դուք աշխատում եք:
show tables;
select * from example;
Դուք պետք է ստանաք այսպիսի արդյունք. Տվյալների բազաները, որոնք պահվում են Percona XtraDB կլաստերում, հասանելի են ProxySQL սերվերից: Սա նշանակում է, որ ձեր ProxySQL-ի տեղադրումը որպես բեռնվածքի հավասարակշռող Percona XtraDB կլաստերի համար հաջող էր:
Այնուհետև մուտքագրեք հետևյալ հարցումները՝ «percona» և «օրինակ» աղյուսակում նոր տվյալներ տեղադրելու համար:
INSERT INTO percona.example VALUES (4, 'pxc04');
INSERT INTO percona.example VALUES (5, 'pxc05');
Այնուհետև նորից ստուգեք նոր թարմացված տվյալները՝ օգտագործելով հետևյալ հարցումը։ հաջողության դեպքում դուք պետք է ստանաք «օրինակ» աղյուսակում հասանելի նոր տվյալները: Սա հաստատում է, որ ձեր օգտվողը կարող է կարդալ և գրել Percona XtraDB Cluster-ի տվյալների բազաներում:
select * from example;
Վերջապես, որպեսզի համոզվեք, որ ձեր նոր տվյալները թարմացվում են Percona XtraDB Cluster-ում, դուք պետք է հաստատեք անմիջապես percona XtraDB Cluster սերվերից:
Մուտք գործեք ձեր Percona XtraDB Cluster սերվերը, մուտք գործեք MySQL թաղանթ արմատային օգտագործողի միջոցով, այնուհետև գործարկեք հետևյալ հարցումը՝ տվյալների բազայից «percona» աղյուսակի «օրինակ» ստանալու համար: .
select * from percona.example;
Հաջողության դեպքում դուք պետք է ստանաք նոր տվյալները, որոնք ավելացրել եք ProxySQL սերվերի միջոցով:
Սա նկատի ունենալով, ձեր ProxySQL սերվերի տեղադրումը որպես MySQL Cluster-ի կամ Percona XtraDB Cluster-ի համար բեռնվածության հավասարակշռող միջոց է հաջողվել:
Եզրակացություն
Այս ուղեցույցում դուք կարգավորել եք MySQL Cluster-ի կամ Percona XtraDB Cluster-ի Load Balancing-ը ProxySQL-ի միջոցով Debian 11 սերվերի վրա: Դուք տեղադրել եք ProxySQLv2, ավելացրել եք Percona XtraDB Cluster-ը ProxySQL-ին և կարգավորել եք Percona XtraDB Cluster մոնիտորինգը ProxySQL-ում:
Բացի դրանից, դուք նաև ստեղծել և կազմաձևել եք MySQL կամ Percona XtraDB Cluster օգտվողներ, որոնք կարող են օգտագործվել ձեր հավելվածների համար: Դուք նաև ստուգել եք MySQL Cluster-ի կամ Percona XtraDB Cluster-ի բեռի հավասարակշռումը ProxySQL-ի միջոցով, որը թույլ է տալիս ձեր տվյալների բազայի սերվերի և ձեր հավելվածների բարձր հասանելիությունը և սխալների հանդուրժողականությունը:
Դրանով դուք այժմ կարող եք ավելի շատ percona XtraDB Cluster հանգույցներ ավելացնել ձեր բեռը հավասարակշռող տվյալների բազայի սերվերին: Նաև կարող եք կարգավորել Read/Write բաժանումը ProxySQL-ի միջոցով, կարգավորել ProxySQL Sharding-ը և ստեղծել SSL կապ proxySQL-ից Percona XtraDB կլաստերին: ProxySQL-ի մասին ավելին իմանալու համար այցելեք ProxySQL-ի պաշտոնական փաստաթղթերը: