Kas ir MongoDB replikācija?
Replikācija attiecas uz procesu, lai nodrošinātu, ka vieni un tie paši dati ir pieejami vairāk nekā vienā Mongo DB serverī. Dažreiz tas ir nepieciešams, lai palielinātu datu pieejamību.
Jo, ja jūsu galvenais MongoDB serveris kāda iemesla dēļ samazināsies, datiem nebūs piekļuves. Bet, ja datus regulāri kopējat uz citu serveri, varēsiet piekļūt datiem no cita servera pat tad, ja primārais serveris neizdodas.
Vēl viens replikācijas mērķis ir slodzes līdzsvarošanas iespēja. Ja ir daudz lietotāju, kas pieslēdzas sistēmai, tā vietā, lai visi izveidotu savienojumu ar vienu sistēmu, lietotājus var savienot ar vairākiem serveriem, lai slodze būtu vienādi sadalīta.
Programmā MongoDB vairāki MongDB serveri ir grupēti komplektos, kurus sauc par kopiju kopijām. Kopijas kopijai būs primārais serveris, kas pieņems visas klienta rakstīšanas darbības. Visus pārējos gadījumus, kas pēc tam pievienoti kopai, sauks par sekundārajiem gadījumiem, kurus galvenokārt varēs izmantot visām lasīšanas operācijām.
Šajā apmācībā jūs uzzināsiet -
- Kopiju kopa: Pirmā dalībnieka pievienošana, izmantojot rs.initiate ()
- Replikas kopa: Sekundārā pievienošana, izmantojot rs.add ()
- Replikas kopa: Pārkonfigurēšana vai noņemšana, izmantojot rs.remove ()
- Kopiju komplektu problēmu novēršana
Kopiju kopa: Pirmā dalībnieka pievienošana, izmantojot rs.initiate ()
Kā minēts iepriekšējā sadaļā, lai iespējotu replikāciju, mums vispirms jāizveido MongoDB instanču kopiju kopa.
Pieņemsim, ka mūsu piemērā mums ir 3 serveri ar nosaukumu ServerA, ServerB un ServerC. Šajā konfigurācijā ServerA būs mūsu primārais serveris, un ServerB un ServerC būs mūsu sekundārie serveri. Zemāk esošais ekrānuzņēmums sniegs labāku priekšstatu par to.
Tālāk ir norādītas darbības, kas jāievēro, izveidojot kopiju kopu, kā arī pievienojot kopai pirmo dalībnieku.
1. darbība. Pārliecinieties, vai visi mongod.exe gadījumi, kas tiks pievienoti kopiju kopai, ir instalēti dažādos serveros. Tas ir paredzēts, lai nodrošinātu, ka pat tad, ja viens serveris nedarbosies, būs pieejami citi un līdz ar to arī citi MongoDB gadījumi.
2. solis. Pārliecinieties, vai visas mongo.exe instances var izveidot savienojumu savā starpā. No ServerA izsniedziet zemāk 2 komandas
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Līdzīgi dariet to pašu no atlikušajiem serveriem.
3. solis. Sāciet pirmo mongod.exe gadījumu ar opciju replSet. Šī opcija nodrošina visu serveru grupēšanu, kas būs daļa no šīs kopiju kopas.
mongo -replSet "Replica1"
Kur "Replika1" ir jūsu kopiju kopas nosaukums. Replikas kopas nosaukumam varat izvēlēties jebkuru nozīmīgu nosaukumu.
4. solis. Tagad, kad kopiju kopai ir pievienots pirmais serveris, nākamais solis ir kopijas kopas uzsākšana, izsniedzot šādu komandu rs.initiate ()
5. solis. Pārbaudiet kopijas kopiju, izsniedzot komandu rs.conf (), lai pārliecinātos, ka kopija ir iestatīta pareizi
Replikas kopa: Sekundārā pievienošana, izmantojot rs.add ()
Sekundāros serverus var pievienot kopijas kopai, vienkārši izmantojot komandu rs.add. Šī komanda uzņem sekundāro serveru nosaukumu un pievieno serverus replikācijas kopai.
1. solis. Pieņemsim, ka, ja jums ir ServerA, ServerB un ServerC, kam jābūt daļai no jūsu replikas kopas, un ServerA, ir noteikts kā primārais serveris reprodukcijas komplektā.
Lai pievienotu ServerB un ServerC kopiju kopai, izsniedziet komandas
rs.add("ServerB")rs.add("ServerC")
Replikas kopa: Pārkonfigurēšana vai noņemšana, izmantojot rs.remove ()
Lai noņemtu serveri no konfigurācijas kopas, mums jāizmanto komanda "rs.remove"
1. solis. Vispirms veiciet tā eksemplāra izslēgšanu, kuru vēlaties noņemt. To var izdarīt, izsniedzot komandu db.shutdownserver no mongo čaumalas.
2. solis. Izveidojiet savienojumu ar primāro serveri
3. solis. Izmantojiet komandu rs.remove, lai noņemtu nepieciešamo serveri no kopiju kopas. Pieņemsim, ka, ja jums ir kopija ar ServerA, ServerB un ServerC un vēlaties noņemt ServerC no kopiju kopas, izsniedziet komandu
rs.remove("ServerC")
Kopiju komplektu problēmu novēršana
Šīs darbības ir vienādi veidi, kā novērst problēmas, kad rodas problēmas ar kopiju kopu izmantošanu.
- Pārliecinieties, vai visas mongo.exe instances var izveidot savienojumu savā starpā. Pieņemsim, ja jums ir 3 serveri ar nosaukumu ServerA, ServerB un ServerC. No servera A izdodiet zemāk 2 komandas
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Palaidiet komandu rs.status. Šī komanda piešķir kopiju kopas statusu. Pēc noklusējuma katrs dalībnieks sūtīs viens otram ziņojumus ar nosaukumu "sirdsdarbība", kas tikai norāda, ka serveris ir dzīvs un darbojas. Komanda "statuss" iegūst šo ziņojumu statusu un parāda, vai replikas kopā ir kādi dalībnieki.
- Pārbaudiet Oplog lielumu - Oplog ir MongoDB kolekcija, kurā glabājas MongoDB datu bāzē veikto rakstu vēsture. Pēc tam MongoDB izmanto šo Oplog, lai replikētu rakstus citiem replikas kopas dalībniekiem. Lai pārbaudītu Oplog, izveidojiet savienojumu ar nepieciešamo dalībnieka instanci un palaidiet komandu rs.printReplicationInfo. Šī komanda parādīs žurnāla lielumu un to, cik ilgi tas var glabāt darījumus savā žurnāla failā, pirms tas kļūst pilns.
Kopsavilkums: