Шта је МонгоДБ репликација?
Репликација се односи на процес осигурања да су исти подаци доступни на више од једног Монго ДБ сервера. То је понекад потребно у сврху повећања доступности података.
Јер ако се ваш главни МонгоДБ сервер из било ког разлога поквари, неће бити приступа подацима. Али ако сте податке редовно реплицирали на други сервер, моћи ћете да приступите подацима са другог сервера чак и ако примарни сервер закаже.
Друга сврха репликације је могућност уравнотежења оптерећења. Ако се на систем повезује много корисника, уместо да се сви повезују на један систем, корисници могу да се повежу на више сервера тако да постоји једнака расподела оптерећења.
У МонгоДБ-у су вишеструки МонгДБ сервери груписани у скупове који се називају Реплика скупови. Скуп реплика ће имати примарни сервер који ће прихватити све операције уписивања од клијената. Све остале инстанце додате у скуп након овога назваће се секундарне инстанце које се првенствено могу користити за све операције читања.
У овом упутству ћете научити -
- Сет реплика: Додавање првог члана помоћу рс.инитиате ()
- Сет реплика: Додавање секундарног помоћу рс.адд ()
- Сет реплика: Поновно подешавање или уклањање помоћу рс.ремове ()
- Решавање проблема са комплетима реплика
Сет реплика: Додавање првог члана помоћу рс.инитиате ()
Као што је поменуто у претходном одељку, да бисмо омогућили репликацију, прво морамо створити скуп реплика МонгоДБ инстанци.
Претпоставимо да за наш пример имамо 3 сервера названа СерверА, СерверБ и СерверЦ. У овој конфигурацији СерверА ће бити наш примарни сервер, а СерверБ и СерверЦ ће бити наши секундарни сервери. Испод снимка екрана ћете добити бољу идеју о томе.
Испод су кораци које треба следити за креирање комплета реплика заједно са додавањем првог члана скупу.
Корак 1) Уверите се да су све инстанце монгод.еке које ће бити додате скупу реплика инсталиране на различитим серверима. На овај начин се осигурава да чак и ако један сервер пропадне, остали ће бити доступни, а самим тим и други примери МонгоДБ-а.
Корак 2) Уверите се да се све инстанце монго.еке могу међусобно повезати. Из СерверА издајте наредбе 2 испод
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Слично томе, учините исту ствар са преосталим серверима.
Корак 3) Покрените прву инстанцу монгод.еке опцијом реплСет. Ова опција пружа груписање за све сервере који ће бити део овог скупа реплика.
mongo -replSet "Replica1"
Где је „Реплица1“ назив вашег комплета реплика. За име скупа реплика можете одабрати било које значајно име.
Корак 4) Сада када је први сервер додат скупу реплика, следећи корак је покретање комплета реплика издавањем следеће наредбе рс.инитиате ()
Корак 5) Потврдите скуп реплика издавањем наредбе рс.цонф () да бисте осигурали да је реплика правилно постављена
Сет реплика: Додавање секундарног помоћу рс.адд ()
Секундарни сервери се могу додати у реплику помоћу команде рс.адд. Ова наредба узима име секундарних сервера и додаје их у скуп репликације.
Корак 1) Претпоставимо да ли имате СерверА, СерверБ и СерверЦ, који морају бити део вашег комплета реплика и СерверА, дефинисан је као примарни сервер у скупу реплика.
Да бисте додали СерверБ и СерверЦ у скуп реплика, издајте наредбе
rs.add("ServerB")rs.add("ServerC")
Сет реплика: Поновно подешавање или уклањање помоћу рс.ремове ()
Да бисмо уклонили сервер из скупа конфигурације, треба да користимо команду „рс.ремове“
Корак 1) Прво извршите искључивање инстанце коју желите уклонити. То се може учинити издавањем наредбе дб.схутдовнсервер из монго љуске.
Корак 2) Повежите се са примарним сервером
Корак 3) Помоћу команде рс.ремове уклоните потребан сервер из комплета реплика. Па претпоставимо ако имате скуп реплика са СерверА, СерверБ и СерверЦ и желите да уклоните СерверЦ из комплета реплика, издајте наредбу
rs.remove("ServerC")
Решавање проблема са комплетима реплика
Следећи кораци су исти начини на које се може решити проблем када се наиђу на проблеме приликом употребе скупова реплика.
- Уверите се да се све инстанце монго.еке могу међусобно повезати. Претпоставимо ако имате 3 сервера звана СерверА, СерверБ и СерверЦ. На серверу А издајте следеће две наредбе
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Покрените команду рс.статус. Ова наредба даје статус комплета реплика. Подразумевано је да ће сваки члан међусобно слати поруке под називом "откуцаји срца", што само указује на то да је сервер жив и да ради. Команда "статус" добија статус ових порука и показује да ли постоје проблеми са било којим чланом у скупу реплика.
- Проверите величину Оплога - Оплог је колекција у МонгоДБ која чува историју писања извршених у МонгоДБ базу података. МонгоДБ затим користи овај Оплог за копирање писања осталим члановима у скупу реплика. Да бисте проверили Оплог, повежите се са потребном инстанце члана и покрените наредбу рс.принтРеплицатионИнфо. Ова наредба ће приказати величину дневника и колико дуго може да држи трансакције у својој датотеци дневника пре него што се напуни.
Резиме: