Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā es varu pievienot vairāk vergu savai MySQL replikācijas iestatīšanai, neradot veiktspējas problēmas


Kā es varu pievienot vairāk vergu savai MySQL replikācijas iestatīšanai, neradot veiktspējas problēmas


Lai pievienotu vairāk vergu MySQL replikācijas iestatīšanai, neradot veiktspējas problēmas, apsveriet iespēju pieņemt daudzslāņainu replikācijas arhitektūru, nevis savienot visus vergus tieši ar primāro avotu. Kad daudzi vergi savienojas tieši ar vienu avotu, tas palielina šī avota slodzi, jo katrs vergs uztur savienojumu un avotu, kam katram ir jānosūta binārā žurnāla dati, kas var kļūt par tīkla un veiktspējas sašaurinājumu. Tā vietā konfigurējiet replikāciju hierarhiski, ja primārais avots atkārtojas vienā vai dažās starpposma replikās, kas pēc tam atkārtojas pārējiem vergiem. Šī metode samazina tiešo savienojumu skaitu ar primāro un vienmērīgāk sadala replikācijas slodzi visos serveros.

Starpposma replikas ir jākonfigurē, lai paši reģistrētu binārus atjauninājumus (ar iespējotiem `log_slave_updates`, lai tie varētu kalpot kā avoti pakārtotajām replikām. Šī iestatīšana efektīvi rada replikācijas ķēdi vai koku, kas var ievērojami uzlabot veiktspēju un mērogojamību.

Turklāt replikācijas režīmam ir liela nozīme veiktspējas un datu konsekvencē. MySQL atbalsta asinhronos un daļēji sinhronos replikācijas režīmus. Asinhronā replikācija ļauj primārajam serverim rīkoties ar darījumiem, negaidot vergus, uzlabojot rakstīšanas caurlaidspēju, bet, iespējams, izraisot replikācijas nobīdi. Daļēji sinhronā replikācija nodrošina, ka vismaz viens vergs atzīst darījumu, pirms primārais to izdara, uzlabojot datu konsekvenci par nelielu izmaksu līdz latentumam. Pielāgojiet šos iestatījumus atbilstoši lietojumprogrammas konsekvences un latentuma prasībām.

Lai optimizētu tālāk, noskaņojiet replikācijas pavedienus uz vergiem. Sākot ar MySQL 5.6, tiek atbalstīta vairāku vītņu replikācija, kas ļauj vairākiem SQL pavedieniem paralēli piemērot releju žurnāla notikumus. Tas var samazināt replikācijas nobīdi, it īpaši, ja darba slodze ir saistīta ar daudzām dažādām datu bāzēm vai tabulām, kuras var patstāvīgi apstrādāt ar vairākiem pavedieniem.

Diska I/O konfigurācija ir arī būtiska: novietojiet releju žurnālus un datu bāzes failus atsevišķos fiziskos diskos, lai samazinātu I/O apgalvojumu. Tas var palīdzēt vergiem efektīvāk sekot replikācijas straumei.

Lielā vidē apsveriet iespēju sadalīt atbildību, deleģējot dažādas datu bāzes vai tabulas uz dažādām replikām, lai līdzsvarotu slodzi un novērstu strīdu uz jebkuru atsevišķu kopiju.

Pievienojot jaunu vergu, ir svarīgi to pareizi nodrošināt:

- Piešķiriet unikālu "server_id", lai izvairītos no konfliktiem.
- Inicializējiet vergu ar primārā datu momentuzņēmumu vai dublējumu, lai pārliecinātos, ka tas sāk atkārtoties no konsekventa punkta.
- Konfigurējiet vergu ar avota savienojuma informāciju un replikācijas iestatījumiem.
-Inicializācijas laikā izmantojiet tādas iespējas kā `-SKIP-SLAVE-START`, lai novērstu replikācijas sākumu priekšlaicīgi.
- Sāciet replikāciju, kad iestatīšana ir pabeigta, un uzraugiet jebkuru nobīdi vai kļūdas.

Datu dublēšanu un atjaunošanu par jauniem vergiem var veikt, izmantojot tādus rīkus kā `mysqldump`, Percona Xtrabackup vai MySQL klona spraudnis, atkarībā no tolerances lieluma un dīkstāves. Xtrabackup utilīta var izveidot karstu dublējumu, neslēdzot avota datu bāzi, samazinot dīkstāvi.

Sinhronizācijai un sākotnējai slodzes līdzsvarošanai tādi rīki kā Pt-Table-Sync var palīdzēt nodrošināt datu konsistenci starp galveno un vergu pēc atjaunošanas.

Rezumējot, galvenās stratēģijas, lai pievienotu vairāk vergu bez veiktspējas degradācijas, ietver:

- Izmantojiet hierarhiskas replikācijas topoloģiju ar starpposma replikām.
- Iespējot `log_slave_updates` uz starpposma replikām.
- Izvēlieties starp asinhronajiem un daļēji sinhronajiem replikācijas režīmiem, pamatojoties uz konsekvences un latentuma vajadzībām.
- Vergos izmantojiet vairāku vītņu replikāciju.
- Optimizējiet I/O, fiziski atdalot releju žurnālus un datu failus.
- Izplatiet replikācijas darba slodzi, izmantojot datu bāzi vai tabulas segregāciju.
- Rūpīgi nodrošiniet jaunus vergus ar unikāliem servera ID un konsekventiem momentuzņēmumiem.
- sākotnējai iestatīšanai izmantojiet atbilstošus rezerves un sinhronizācijas rīkus.
- Nepārtraukti uzraudzīt replikācijas nobīdi un veiktspējas metriku.

Šī pieeja palīdz uzturēt mērogojamu un izpildāmu replikācijas arhitektūru, pieaugot vergu skaitam, izvairoties no primārā avota sašaurinājumiem un nodrošinot efektīvu replikācijas caurlaidspēju.

Detalizētas praktiskas procedūras, lai izveidotu un pārvaldītu to, var atrast oficiālajā MySQL dokumentācijā un no pieredzējušiem MySQL pakalpojumu sniedzējiem, kuri specializējas augstas pieejamības un replikācijas arhitektūrās.