Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitkä ovat keskeiset kokoonpanoasetukset mysql -replikaation optimoimiseksi suurelle liikenteelle


Mitkä ovat keskeiset kokoonpanoasetukset mysql -replikaation optimoimiseksi suurelle liikenteelle


Tärkeimmät kokoonpanoasetukset MySQL -replikaation optimoimiseksi suuren liikenteen ympäristöille sisältyy erilaisten replikaation ja palvelinparametrien huolellinen virittäminen suorituskyvyn, luotettavuuden ja tietojen johdonmukaisuuden tasapainottamiseksi.

Käytä aktiivista/passiivista kokoonpanoa:
Korkean liikenteen skenaarioissa on suositeltavaa käyttää aktiivista/passiivista replikaatioarkkitehtuuria, jossa yksi ensisijainen MySQL Server (Master) käsittelee kaikki kirjoitustoiminnot ja useita passiivisia replikas (orjia) käsittelevät lukutoimenpiteitä. Tämä jakaa työmäärän tehokkaasti, jolloin kopiot voivat palvella vain luku-liikennettä, kun Master Hands kirjoittaa. Tämä asetus välttää aktiivisten/aktiivisten kokoonpanojen monimutkaisuus- ja konfliktikysymykset. Asynkroninen replikaatio, joka on yleinen tässä asennuksessa, voi kuitenkin tuoda jonkin verran viivettä isäntä- ja kopioiden välillä, joten sovelluslogiikassa on otettava huomioon lukemisen jälkeen ja kirjoittamisen jälkeinen johdonmukaisuusvaatimukset.

Replikointitila:
MySQL-replikaatio tukee asynkronisia ja osittain synkronisia replikaatiotiloja. Asynkroninen replikaatio on oletus ja tarjoaa korkean suorituskyvyn, mutta mahdollisella replikaatioviiveellä. Puoli-synkroninen replikaatio parantaa datan johdonmukaisuutta tekemällä päällikön odottamaan, kunnes vähintään yksi kopio tunnistaa tapahtuman vastaanottamisen ennen jatkamista. Tämä vähentää tietojen menettämisen riskiä virheellisissä tilanteissa, mutta lisää viivettä. Suuren liikenteen osalta puolisynkronisen moodin aikakatkaisuasetuksia tulisi säätää (oletus 10 sekuntia), jotta varmistetaan asianmukaiset kompromissit johdonmukaisuuden ja suorituskyvyn välillä. Joskus käytetään sekoitettuja tiloja, joissa kriittinen kopio käyttää puoliksi synkronointia ja muut käyttävät ASYNC: tä tasapainottaakseen saatavuutta ja suorituskykyä.

Binaarinen kirjauskokoonpano:
Ota binaarinen kirjaus mestarissa asettamalla "log-bin" ja määrittämällä yksilöllinen "palvelin-id". Valitse `binLog_forma = rivi" yksittäisten rivin muutoksien kirjaamiseen tarkkuuden ja johdonmukaisuuden lauseiden sijasta, etenkin monimutkaisissa työmäärissä. Määritä binaaristen lokien säilyttämiskäytännöt viisaasti tasapainottamaan palautuskykyä ja tallennusvaatimuksia. Ota myös käyttöön `gtid_mode = on` ja` feforce_gtid_consistency = "globaalien transaktioiden tunnisteiden yksinkertaistamiseksi replikaation hallintaa ja vikaantumista, parantaen automaatiota.

Replikointi topologia suorituskykyyn:
Suuren liikenteen skenaarioiden replikaation skaalaamiseksi suositellaan hierarkkista replikaatiotopologiaa (jota kutsutaan myös ketjuksi tai releen replikaatioon). Päällikkö toistaa välipalvelimelle (rele orja), joka puolestaan ​​toistaa muihin kopioihin. Tämä vähentää päällikön kuormitusta siirtämällä verkko- ja replikaatioliikenteen välituotteisiin. Tämä topologia lievittää verkon pullonkauloja ja parantaa replikaation yleistä suorituskykyä. Relepalvelimien `Log_slave_updates` salliminen on välttämätöntä, mikä kantaa suorituskyvyn yläpuolella ja vaatii huolellista seurantaa asennusten replikaation viiveen estämiseksi.

Orjien rinnakkainen replikointi:
Ota rinnakkainen replikaatio replikoissa replikaation suorituskyvyn parantamiseksi. MySQL 5.6+ tukee monisäikeistä orja-SQL-suorituskykyä. Konfiguroitavat vaihtoehdot, kuten `Slave_Parallel_Workers`, salli useiden replikointi SQL -kierteet käyttää tapahtumia rinnakkain, vähentämällä replikaatioviiveitä työkuormille riippumattomilla tapahtumilla. Tarvitaan huolellista viritystä optimaalisten säikeiden määrän asettamiseksi prosessorin ja työmäärän ominaisuuksien perusteella aiheuttamatta kiistoja.

Verkon ja yhteyden optimointi:
Optimoi verkon kokoonpanot replikaatioliikenteelle:
- käyttämällä omistettuja verkkorajapintoja replikaatioon.
- Pakkauksen mahdollistaminen replikaatiovirroilla kaistanleveyden käytön vähentämiseksi.
- Palomuurisääntöjen määrittäminen asianmukaisesti replikaatioliikenteen sallimiseksi turvallisesti.
-SSL-salauksen käyttäminen (ota ``--SSL` -vaihtoehdot) turvallisen tiedonsiirron varalta, vaikka se lisää jonkin verran suorittimen yleiskustannuksia.
- Yhteyden yhdistäminen voi vähentää yleiskustannuksia usein yhteyden asennuksista.

Varastointi ja I/O -optimointi:
Käytä Fast Storage (SSD suositeltavaa) mestarissa binaarislokien kirjoittamisessa, koska binaarinen kirjaus vaikuttaa suoraan replikaatioon. Harkitse replikoissa erillisiä välityslaitteita välityslokille I/O -väitteiden välttämiseksi. Optimoi I/O -aikataulun asetukset ja tiedostojärjestelmäparametrit kirjoitetuille, koska replikointilokit sisältävät peräkkäisiä kirjoituksia jaksollisilla fsyncs. Levyn latenssi vaikuttaa suoraan replikaatioviiveeseen ja yleiseen suorituskykyyn.

Aikakatkaisu- ja uudelleenjärjestelyasetukset:
Säädä replikaation aikakatkaisuasetukset, kuten `Slave_Net_Timeout`, varmistaaksesi, että replikointiyhteydet eivät pudota ennenaikaisesti korkean liikenteen tai korkean viiveen verkoissa. Lisäksi viritä `Master_Retry_count` ja siihen liittyvät uudelleenkysymykset paremman kestävyyden saavuttamiseksi ohimenevien verkkovirheiden aikana.

Seuranta ja hälytys:
Toteuta replikaatioviiveen, verkon läpimenon, levy I/O: n ja prosessorin käytön seuranta. Työkalut voivat hälyttää replikaation viivekynnyksiä ja muita poikkeavuuksia, jotka voivat osoittaa suorituskyvyn heikkenemistä. Ennakoiva seuranta on kriittistä korkean liikenteen ympäristöissä replikaation terveyden ylläpitämiseksi.

Väärä- ja varmuuskopiointistrategiat:
Kopiot on varmuuskopioitava säännöllisesti sen lisäksi, että replikaatio käytetään korkeaan saatavuuteen. Testaa virhetoimenpiteitä usein. Käytä GTID: itä yksinkertaistaaksesi vikaantumis palautumista tunnistamalla viimeksi suoritettu tapahtuma helposti ja varmistamalla, että replikan tarttuminen tarttuu ilman tietojen menetystä. Ketjutetuissa replikaatiotopologioissa varmista, että releorjat ja lehden kopiot synkronoidaan täysin ennen vikaantumista.

Lisäasetukset:
- Poista tarpeeton hakku ja seuranta replikoissa yleiskustannusten vähentämiseksi.
- Käytä `sync_binlog = 1` Masterissa kestävyyden suhteen, tietoisuudella se vaikuttaa levyn suorituskykyyn.
- Viritä `max_allowed_packet` suurten tapahtumien käsittelemiseksi replikaatiossa ilman virheitä.

Yhteenveto keskeisistä kokoonpanoparametreista:
- Mestarissa:
- `Server-ID` (Ainutlaatuinen)
-`log-bin = mysql-bin`
- `binlog_forma = rivi`
- `gtid_mode = päällä`
- `feforce_gtid_consistency = päällä`
- `sync_binlog = 1` (kestävyyden kannalta)
- kopioissa:
- `Server-ID` (ainutlaatuinen erilainen kuin Master)
- `relay_log`
- `log_slave_updates` (jos sitä käytetään välireleenä)
- `Slave_Parallel_Workers` (> 1 rinnakkaista replikointia varten)
-`Slave-Net-Timeout` viritetty verkkoolosuhteisiin
- replikointitila:
- Ota puoliksi synkroninen replikointi kriittisille replikoille (`rpl_semi_sync_master_enabled = on`,` rpl_semi_sync_slave_enabled = on`)
- Verkko:
- SSL käytössä replikaatio
- Pakkaus on käytössä, jos suorituskyky on rajoitettu
- Varastointi:
- SSD binaari- ja välityslokit
- Erota relilokkien levyt, jos mahdollista
- topologia:
- Käytä ketjutettua tai hierarkkista replikaatiota kuorman jakamiseen.

Näiden asetusten toteuttaminen yhdistettynä infrastruktuuriin, joka pystyy käsittelemään korkean verkon ja levyn läpimenoa, varmistaa, että MySQL -replikaatio toimii optimaalisesti suurissa liikenneympäristöissä paremmalla replikaatioviiveen hallinnalla, vikasietoisuudella ja tietojen johdonmukaisuudella.