Mi a MongoDB replikáció?
A replikáció arra a folyamatra vonatkozik, amely biztosítja, hogy ugyanazok az adatok több Mongo DB kiszolgálón is elérhetők legyenek. Erre időnként az adatok elérhetőségének növelése érdekében van szükség.
Mert ha a fő MongoDB szerver bármilyen okból meghibásodik, akkor nem lesz hozzáférés az adatokhoz. De ha rendszeres időközönként replikálta az adatokat egy másik kiszolgálóra, akkor az elsődleges kiszolgáló meghibásodása esetén is hozzáférhet egy másik szerver adataihoz.
A replikáció másik célja a terheléselosztás lehetősége. Ha sok felhasználó csatlakozik a rendszerhez, ahelyett, hogy mindenki egy rendszerhez csatlakozna, a felhasználók több szerverhez is csatlakozhatnak, így a terhelés egyenlő eloszlású.
A MongoDB-ben több MongDB-kiszolgáló replikakészletnek nevezett halmazokba van csoportosítva. A Replika készletnek lesz egy elsődleges kiszolgálója, amely elfogadja az összes írási műveletet az ügyfelektől. Az összes utána hozzáadott készletet másodlagos példányoknak nevezzük, amelyek elsősorban az összes olvasási művelethez használhatók.
Ebben az oktatóanyagban megtudhatja -
- Replika készlet: Az első tag hozzáadása az rs.initiate () használatával
- Replika készlet: Másodlagos hozzáadása az rs.add () használatával
- Replika készlet: Újrakonfigurálás vagy eltávolítás az rs.remove () használatával
- A replikakészletek hibaelhárítása
Replika készlet: Az első tag hozzáadása az rs.initiate () használatával
Amint az előző szakaszban említettük, a replikáció engedélyezéséhez először létre kell hoznunk a MongoDB példányok replika készletét.
Tegyük fel, hogy példánkban 3 szerverünk van, ServerA, ServerB és ServerC néven. Ebben a konfigurációban a ServerA lesz az elsődleges szerverünk, a ServerB és a ServerC pedig a másodlagos szerverünk. Az alábbi képernyőkép jobb ötletet ad róla.
Az alábbiakban bemutatjuk azokat a lépéseket, amelyeket be kell tartani a replikakészlet létrehozásához, valamint az első tag hozzáadásához.
1. lépés: Győződjön meg arról, hogy az összes mongod.exe példány, amelyet hozzáad a replikakészlethez, különböző kiszolgálókra van telepítve. Ennek célja annak biztosítása, hogy még ha az egyik szerver leáll, a többi is elérhető lesz, és így a MongoDB más példányai is elérhetők lesznek.
2. lépés: Győződjön meg arról, hogy az összes mongo.exe példány képes csatlakozni egymáshoz. A ServerA-ból adja ki az alábbi 2 parancsot
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Hasonlóképpen tegye ugyanezt a többi szerverről is.
3. lépés: Indítsa el az első mongod.exe példányt a replSet beállítással. Ez az opció biztosítja az összes kiszolgáló csoportosítását, amely része lesz ennek a replikakészletnek.
mongo -replSet "Replica1"
Ahol a "Replika1" a replikakészlet neve. Bármely értelmes nevet kiválaszthat a replika készlet neve számára.
4. lépés: Most, hogy az első kiszolgáló hozzáadódik a replikakészlethez, a következő lépés a replikakészlet elindítása a következő rs.initiate () parancs kiadásával.
5. lépés: Ellenőrizze a replika készletét az rs.conf () parancs kiadásával, hogy biztosítsa a replika megfelelő beállítását
Replika készlet: Másodlagos hozzáadása az rs.add () használatával
A másodlagos szerverek csak az rs.add paranccsal adhatók hozzá a replika készlethez. Ez a parancs felveszi a másodlagos kiszolgálók nevét, és hozzáadja a kiszolgálókat a replikációs készlethez.
1. lépés: Tegyük fel, hogy ha a ServerA, a ServerB és a ServerC rendelkezik, amelyeknek a replikakészlet részének kell lennie, és a ServerA van meghatározva a replikakészlet elsődleges kiszolgálóként.
A ServerB és a ServerC hozzáadásához a replikakészlethez adja ki a parancsokat
rs.add("ServerB")rs.add("ServerC")
Replika készlet: Újrakonfigurálás vagy eltávolítás az rs.remove () használatával
Szerver eltávolításához a konfigurációs készletből az "rs.remove" parancsot kell használnunk
1. lépés: Először hajtsa végre az eltávolítani kívánt példány leállítását. Ezt megteheti úgy, hogy kiadja a db.shutdownserver parancsot a mongo shellből.
2. lépés: Csatlakozás az elsődleges kiszolgálóhoz
3. lépés: Az rs.remove paranccsal távolítsa el a szükséges szervert a replikakészletből. Tehát tegyük fel, hogy ha a ServerA, ServerB és ServerC fájlokkal rendelkezik egy replika-készlettel, és el akarja távolítani a ServerC-t a replikakészletből, adja ki a parancsot
rs.remove("ServerC")
A replikakészletek hibaelhárítása
A következő lépések ugyanazok a módszerek, amelyekkel elháríthatja a replikakészletek használatával kapcsolatos problémákat.
- Győződjön meg arról, hogy az összes mongo.exe példány képes kapcsolódni egymáshoz. Tegyük fel, hogy ha van 3 kiszolgálója, amelyek neve ServerA, ServerB és ServerC. Az A szerverről adja ki az alábbi 2 parancsot
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Futtassa az rs.status parancsot. Ez a parancs megadja a replikakészlet állapotát. Alapértelmezés szerint minden tag "szívdobbanás" üzeneteket küld egymásnak, amelyek csak azt jelzik, hogy a szerver életben van és működik. A "status" parancs megkapja ezeknek az üzeneteknek az állapotát, és megmutatja, hogy van-e probléma a replikakészlet valamely tagjával.
- Ellenőrizze az Oplog méretét - Az Oplog egy gyűjtemény a MongoDB-ben, amely tárolja a MongoDB adatbázisba írt írások előzményeit. A MongoDB ezután ezt az Oplogot használja az írások replikálására a replikakészlet többi tagjának. Az Oplog ellenőrzéséhez csatlakozzon a szükséges tagpéldányhoz, és futtassa az rs.printReplicationInfo parancsot. Ez a parancs megmutatja a napló méretét és azt, hogy mennyi ideig képes tranzakciókat tárolni a naplófájljában, mielőtt megtelik.
Összegzés: