Andmete rände edenemise jälgimine kildede vahel MongoDB -s hõlmab mitmete aspektide mõistmist, kuidas MongoDB haldab kilde klastreid, tasakaalustaja protsessi käitumist ja mehhanisme tüki rännete ja klastri üldise tervise jälgimise mehhanisme.
MongoDB Sharding levitab andmeid horisontaalse skaleerimise toetamiseks mitmest kildust. Andmete migratsioon kildede vahel toimub peamiselt tüki rände kaudu, mida haldab automaatselt MongoDB tasakaalustaja või mida saab käsitsi käivitada. Selle rändeprotsessi jälgimine on oluline, et tagada klastris jõudlus, kättesaadavus ja tasakaalustatud andmete jaotus.
Mongodb -kilde ja tasakaalustaja mõistmine
Karjutatud klastris jaotab MongoDB andmeid tükkideks. Need tükid levitatakse kilblaste vahel vastavalt Shard Key'le. Tasakaalustaja on taustprotsess, mis töötab Config Serveri koopia komplekti esmasel ja jälgib aktiivselt andmete jaotust, et säilitada saldo kihte vahel. Tasakaalustaja otsustab, millal ja milliseid tükke tuleb migreerida konkreetsete künniste põhjal, mis on seotud andmemahu erinevusega. Ränne toimub isegi andmete jaotuse tagamiseks ja päringu jõudluse optimeerimiseks.
Tasakaalustaja töötab läbipaistvalt, kuid seda saab vastavalt vajadusele konfigureerida või keelata. See migreerib tükid kontrollitud viisil, võimaldades korraga ainult ühe migratsiooni kilbi kohta, et minimeerida mõju jõudlusele. Kõrge tasakaalustamatuse tingimustes (nt kui kildude vaheline erinevus ületab künnise  vaikimisi, kolm korda suurem kui konfigureeritud tüki suurus) käivitatakse migratsioon.
Tasakaalustaja ja migratsiooni oleku kontrollimine
Shardi rände edenemise jälgimiseks on kasulikud mitmed käsud ja logide ülevaatused:
- Sh.status () või db.printshardingstatus (): Need käsud annavad ülevaate kilde olekust, sealhulgas iga kilbistatud kollektsiooni tükkide jaotus. Ehkki need ei anna otsest protsenti rände edenemisest, võib nende pakutav tükkjaotuse kontekst olla proxy, et mõista, kui tasakaal on andmete tasakaalus ja kas ränded jätkuvad.
- Tasakaalustaja tegevuslogid: tasakaalustaja logib oma tegevused, sealhulgas tükk ränne, konfiguratsiooniserverite ja Mongose eksemplaride logides. Nende logide jälgimine võib paljastada, milliseid tükke rändatakse koos nende lähte- ja sihtkildudega ning migreerumise ajal ilmnevad kõik vead või viivitused.
- Praegune ränne: MongoDB piirab kilpi ühe rändega korraga, kuid mitme kilduga võib see käivitada mitu paralleelset klastri kogu rännet (kuni poole kildude arvust). Aktiivse rände jälgimist saab kaudselt teha, kontrollides tasakaalustaja logisid või kasutades konfiguratsiooniserveris administratiivseid käske rändelukkude ja migratsiooniga seotud loendurite nägemiseks.
Käsud ja mõõdikud jälgimiseks
- Käsk Balancerstatus: `sh.getbancerState ()` käitamine või klastri kontrollimine käskudega, mis paljastavad tasakaalustajate tegevuse, aitab näha, kas tasakaalustaja on lubatud või praegu aktiivne.
- ChunkMigrationLockTimeout Count: MongoDB jälgib konkreetseid mõõdikuid, näiteks `ShardingStatistics.CountdonormovechunkLockTimeout`, et mõista, kas lukkude tõttu on tükeldatud migratsioonid, mis võivad näidata rändeprobleeme või jõudluspudelid.
- Mongos ConnPoolStats käsk: kildadega ühenduste jälgimine, kasutades `db.runcommand ({connPoolStats: 1})` Mongose eksemplarist aitab kontrollida, kas migratsioonid põhjustavad ühenduse suurenenud kasutamist või kitsaskohti šardi primaaridel. Ühenduse statistika näitab koormuse jaotust.
- Andmete suuruse jälgimine SHARDi kohta: päringuga Config Database SHARD -metaandmeid saab kontrollida, kui palju kilp on määratud tükkide suurust ja arvu. Suur lahknevus viitab jätkuvale rännele või tasakaalustamatusele.
Käsitsi rände jälgimine
Kui käsitsi tükkide rännet käivitatakse selliste käskude abil nagu `Movechunk` või` Moverange'i, blokeerib operatsioon, kuni migratsioon lõppeb. See sünkroonkäitumine võimaldab viivitamatult kinnitada rände edu või ebaõnnestumist. Pikema töötava automatiseeritud rände korral, mida hallatakse tasakaalustajat, ei paljasta MongoDB otsest progressi protsenti.
Korduva olekukontrolli kasutamine rändetappide vahelise `sh.status ()` kaudu aitab järeldada edusamme, jälgides lähtekilde tükkide langust ja sihtkilbi suurenemist.
Tööriistad ja armatuurlauad
Hallatud pilveteenus Mongodb Atlas pakub rände avaekraani visuaalselt rände jälgimiseks, sealhulgas nende oleku ja kõigi ajalooliste rännete jälgimiseks. See liides aitab jälgida ATLAS -i keskkonda.
Isehaldustatud juurutamisel seadistavad administraatorid sageli armatuurlaudade jälgimise, kasutades MongoDB seirevahendeid, näiteks MMS (MongoDB haldusteenus) või kolmandate osapoolte tööriistad, mis sõeluvad MongoDB logisid ja mõõdikuid (nt Prometheus koos Grafanaga). Need seadistused suudavad jälgida mõõdikuid, mis on seotud tasakaalustaja aktiivsusega, tükkide rännete, ketta kasutamise ja võrgu läbilaskevõimega, mis kõik näitavad kaudselt rände edenemist.
Orvu dokumentide käitlemine ja lugemine järjepidevus migratsioonide ajal
Tükkide rände ajal kopeeritakse rändtüki dokumendid sihtkilpi ja pärast seda, kui seda kinnitatakse, tähistatakse allikakildi dokumendid orvuks kuni puhastamiseni. See puhastusviivitus (`OrphancleanupDelaySecs`) on loodud tagamaks, et käimasolevaid päringuid ei mõjutata.
Oluline on jälgida mis tahes sekundaarsete lugemiste dokumente, kuna sekundaarsed lugemised rände ajal võivad dokumendid vahele jätta, kui päringud hõlmavad rändevahemikke. Selle käitumise teadlikkus on hädavajalik rände progressi hindamisel ja järjepidevuse lugemisel.
Seiretappide kokkuvõte
1. Kontrollige killustamise olekut: tükijaotuse jälgimiseks kasutage regulaarselt `sh.status ().
2. Kontrollige tasakaalustaja olekut: kontrollida tasakaalustajat on lubatud ja aktiivne `sh.getbancerstate ()` kaudu.
3. Monitori logid: jälgige tasakaalustaja ja migratsiooniga seotud logisid Mongose ja konfiguratsiooniserverites.
4. RAHKE TÜÜDUDE KORRALDAMINE: päringu Config andmebaasi metaandmete kollektsioonid (nagu `config.chunks`) tükkide jälgimiseks.
5. Uurige ühenduse statistikat: kasutage ebaharilike ühendusharude tuvastamiseks rände ajal `connPoolstats`.
6. Vaata rändelukke ja mõõdikuid: tuvastage migratsiooni aegumised või lukustatud probleemid mõõdikute korral.
7. Käsitsi käsud: kasutage kontrollitud migratsiooni ja sünkroonse tagasiside jaoks `movechunk` või` moverange.
8. võimenduse jälgimise tööriistad: kasutage ATLAS -i migratsiooniekraane või kohandatud seire armatuurlaudu.
9. Mõista rändemõju: arvestage orbude dokumentide puhastamist ja võimalikke sekundaarseid lugemisvajadusi.