Peamised konfiguratsioonisätted MySQL -i replikatsiooni optimeerimiseks suure liikluskeskkonna jaoks hõlmavad erinevate replikatsioonide ja serveri parameetrite hoolikat häälestamist, et tasakaalustada jõudlust, töökindlust ja andmete järjepidevust.
Kasutage aktiivset/passiivset konfiguratsiooni:
Kõrge liiklusega stsenaariumide korral on soovitatav kasutada aktiivset/passiivset replikatsiooniarhitektuuri, kus üks esmane MySQL-server (Master) käitleb kõiki kirjutamisoperatsioone ja mitmeid passiivseid koopiaid (orjad) käsitlevad lugemisoperatsioone. See jagab töökoormuse tõhusalt, võimaldades koopiad teenindada kirjutuskaitstud liiklust, kuni kapten kirjutab. See seadistamine väldib aktiivse/aktiivse konfiguratsiooni keerukust ja konfliktiprobleeme. Selles seadistuses levinud asünkroonne replikatsioon võib aga magistri- ja koopiate vahel mingit viivitust kehtestada, seega peaks rakenduse loogika arvesse võtma lugemissõnumi järjepidevuse nõudeid.
Replikatsioonirežiim:
MySQL replikatsioon toetab asünkroonseid ja poolsünkroonseid replikatsioonirežiime. Asünkroonne replikatsioon on vaikimisi ja pakub suure jõudluse, kuid võimaliku replikatsiooni viivituse. Poolsünkroonne replikatsioon parandab andmete järjepidevust, pannes meistri ootama, kuni vähemalt üks koopia kinnitab tehingu saamist enne menetlust. See vähendab andmete kadumise riski tõrkesiirde olukordades, kuid lisab latentsusaja. Suure liiklusega tuleks kohandada poolsünkroonse režiimi ajalõpu sätteid (vaikimisi 10 sekundit), et tagada järjepidevuse ja jõudluse vaheline kompromiss. Mõnikord kasutatakse segarežiime, kui kriitiline koopia kasutab poolsünkrooni ja teised kasutavad saadavuse ja jõudluse tasakaalustamiseks asünc.
Binaarne logimise konfiguratsioon:
Luba binaarne logimine meistril, määrates logi-bin ja määrake ainulaadne server-id. Valige `binlog_format = rida`, et logida individuaalsete reamuudatuste, mitte täpsuse ja järjepidevuse avalduste, eriti keerukate töökoormuste korral. Taastumisvõime ja salvestusnõuete tasakaalustamiseks mõistlikult konfigureerige binaarsed logide säilitamispoliitika. Samuti lubage globaalsete tehingute identifikaatorite jaoks lubada `gtid_mode = on` ja` jõuce_gtid_consency = on` replikatsioonihalduse ja tõrkesiirde lihtsustamiseks, automatiseerimise suurendamise lihtsustamiseks.
Replikatsiooni topoloogia jõudluse jaoks:
Replikatsiooni skaleerimiseks suure liiklusega stsenaariumides on soovitatav hierarhiline replikatsiooni topoloogia (mida nimetatakse ka aheldatud või relee replikatsiooniks). Meister kordab vaheserverile (relee ori), mis omakorda kordab teistele koopiatele. See vähendab kapteni koormust, delegeerides võrgu ja replikatsiooniliiklus vahepealsetele koopiatele. See topoloogia leevendab võrgu kitsaskohti ja parandab üldist replikatsiooni läbilaskevõimet. Relee serveritel on vajalik `log_slave_updates` lubamine, mis kannab jõudlust üldkulusid ja nõuab hoolikat jälgimist, et vältida kaskaadne replikatsiooni viivitus.
Paralleelne replikatsioon orjadel:
Luba replikatsiooni jõudluse parandamiseks paralleelne replikatsioon koopiatel. MySQL 5.6+ toetab mitme keermega orja SQL-i täitmist. Konfigureeritavad suvandid nagu `slave_parallel_workers` lubage mitmel replikatsioonil SQL -lõime paralleelselt tehinguid rakendada, vähendades sõltumatute tehingutega töökoormuse replikatsiooni viivitust. Optimaalsete niitide loendamise seadmiseks on vaja hoolikat häälestamist, mis põhineb CPU -l ja töökoormuse omadustel ilma väidet tekitamata.
Võrgu ja ühenduse optimeerimine:
Optimeerige replikatsiooniliikluse võrgu konfiguratsiooni järgi:
- Spetsiaalsete võrguliideste kasutamine replikatsiooniks.
- replikatsioonivoogude tihendamise võimaldamine ribalaiuse kasutamise vähendamiseks.
- tulemüürireeglite nõuetekohane konfigureerimine, et replikatsiooniliiklus turvaliselt lubada.
-SSL-krüptimise kasutamine (lubage suvandid `---SSL`) turvaliseks andmeedastuseks, ehkki see lisab CPU pea kohal.
- Ühenduse ühendamine võib vähendada sagedaste ühenduse seadistuste üldkulusid.
Salvestus ja I/O optimeerimine:
Kasutage binaarse logi kirjutamiseks kaptenil kiiret salvestusruumi (SSD eelistatud), kuna binaarne logimine mõjutab otseselt replikatsiooni. I/O -väite vältimiseks kaaluge relee logide jaoks eraldi salvestusseadmeid. Optimeerige I/O -ajakava seadete ja failisüsteemi parameetrid kirjutamiseks, kuna replikatsioonilogid hõlmavad järjestikuseid kirjutisi perioodiliste FSYNC -dega. Ketta latentsus mõjutab otseselt replikatsiooni viivitust ja üldist jõudlust.
Aegumine ja proovide seaded:
Reguleerige replikatsiooni ajalõpu sätteid, näiteks `slave_net_timeout`, et tagada, et replikatsiooniühendused ei lange enneaegselt kõrge liiklusega või kõrge latentsusajaga võrkudes. Lisaks häälestage mööduvate võrgu tõrkete ajal parema vastupidavuse jaoks häälestage master_retry_count` ja sellega seotud parameetrid.
Jälgimine ja hoiatamine:
Rakendage replikatsiooni viivituse, võrgu läbilaske, ketta I/O ja protsessori kasutamise jälgimine. Tööriistad võivad hoiatada replikatsiooni viivituse künniste ja muude kõrvalekallete osas, mis võivad näidata jõudluse halvenemist. Ennetav jälgimine on replikatsiooni tervise säilitamiseks ülioluline keskkonnas kriitiline.
Ebaõnnestumis- ja varundusstrateegiad:
Koopiad tuleb regulaarselt varundada lisaks replikatsiooni kasutamisele kõrge saadavuse tagamiseks. Testige ebaõnnestumisprotseduure sageli. Kasutage GTID -sid tõrkeoveri taastamise lihtsustamiseks, tuvastades hõlpsalt viimase teostatud tehingu ja tagades koopiate järelejõudmise ilma andmesideta. Aheldatud replikatsiooni topoloogiates veenduge, et relee orjad ja lehtede koopiad oleksid enne tõrkesiirgust täielikult sünkroniseeritud.
Täiendavad seaded:
- Keelake üldkulude vähendamiseks tarbetu logimine ja koopiate jälgimine.
- Vastupidavuse tagamiseks kasutage kaptenil `sync_binlog = 1`, mille teadlikkus mõjutab ketta jõudlust.
- Häälestage `max_allowed_packet`, et käsitseda suurte tehingutega replikatsioonil ilma vigadeta.
Konfiguratsiooni peamiste parameetrite kokkuvõte:
- Master:
- `server-id` (ainulaadne)
-`log-bin = mysql-bin`
- `binlog_format = rida`
- `gtid_mode = on`
- `jõusta_gtid_consency = on`
- `Sync_binlog = 1` (vastupidavuse jaoks)
- koopiate kohta:
- `Server-ID` (ainulaadne erineb Mastrist)
- `relee_log`
- `log_slave_updates` (kui seda kasutatakse vahereleena)
- `slave_parallel_workers` (> 1 paralleelseks replikatsiooniks)
-"Orja-võrk-Timeout" on häälestatud võrgutingimuste jaoks
- replikatsioonirežiim:
- Lubada poolsünkroonne replikatsioon kriitiliste koopiate jaoks (`rpl_semi_sync_master_enabled = on`,` rpl_semi_sync_slave_enabled = on`)
- võrk:
- SSL lubas replikatsiooni
- tihendus on lubatud, kui läbilaskevõime on piiratud
- salvestusruum:
- SSD binaarsete ja relee logide jaoks
- võimaluse korral relee logide eraldi kettad
- Topoloogia:
- Koormuse jaotamiseks kasutage aheldatud või hierarhilist replikatsiooni.