MongoDB Репликация: Как да създадете MongoDB Комплект реплики
Какво е MongoDB Репликация?
Репликацията се отнася до процеса на гарантиране, че едни и същи данни са налични на повече от един Mongo DB сървър. Това понякога се изисква с цел увеличаване на наличността на данни.
Защото ако вашият основен MongoDB Сървърът спира поради някаква причина, няма да има достъп до данните. Но ако сте репликирали данните на друг сървър на редовни интервали, ще имате достъп до данните от друг сървър, дори ако основният сървър се повреди.
Друга цел на репликацията е възможността за балансиране на натоварването. Ако има много потребители, свързващи се към системата, вместо всички да се свързват към една система, потребителите могат да бъдат свързани към множество сървъри, така че да има равномерно разпределение на товара.
In MongoDB, многократни MongoDB Сървърите са групирани в комплекти, наречени комплекти реплики. Комплектът реплики ще има основен сървър, който ще приема всички операции за запис от клиенти. Всички други екземпляри, добавени към набора след това, ще се наричат вторични екземпляри, които могат да се използват основно за всички операции за четене.
Как да създадете комплект реплика MongoDB Добавяне на първия член с помощта на rs.initiate()
Както бе споменато в предишния раздел, за да активираме репликацията, първо трябва да създадем набор от реплики MongoDB инстанции.
Да приемем, че за нашия пример имаме 3 сървъра, наречени ServerA, ServerB и ServerC. В тази конфигурация ServerA ще бъде нашият първичен сървър, а ServerB и ServerC ще бъдат нашите вторични сървъри. Екранната снимка по-долу ще даде по-добра представа за него.
По-долу са стъпките, които трябва да се следват за създаване на MongoDB комплект копия заедно с добавянето на първия член към набора.
Стъпка 1) Уверете се, че всички екземпляри на mongod.exe са добавени
Уверете се, че всички копия на mongod.exe, които ще бъдат добавени към набора реплики, са инсталирани на различни сървъри. Това е, за да се гарантира, че дори ако един сървър се повреди, останалите ще бъдат достъпни и следователно други екземпляри на MongoDB ще е на разположение.
Стъпка 2) Всички копия на mongo.exe се свързват един с друг
Уверете се, че всички екземпляри на mongo.exe могат да се свързват един с друг. От ServerA издайте следните 2 команди.
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
По същия начин направете същото от останалите сървъри.
Стъпка 3) Стартирайте първия екземпляр на mongod.exe
Стартирайте първото копие на mongod.exe с опцията replSet. Тази опция осигурява групиране за всички сървъри, които ще бъдат част от този набор от реплики.
mongo –replSet "Replica1"
Където „Replica1“ е името на вашия набор от реплики. Можете да изберете произволно смислено име за вашето име на набор от реплики.
Стъпка 4) Първият сървър се добавя към комплекта реплики
След като първият сървър е добавен към набора реплики, следващата стъпка е да инициирате набора реплики чрез подаване на следната команда rs.initiate ().
Стъпка 5) Проверете комплекта реплики
Проверете комплекта реплики, като издадете командата rs.conf(), за да сте сигурни, че репликата е настроена правилно.
Набор от реплики: Добавяне на вторичен чрез rs.add()
Вторичните сървъри могат да бъдат добавени към набора реплики само с помощта на командата rs.add. Тази команда приема името на вторичните сървъри и добавя сървърите към набора за репликация.
Стъпка 1) Да предположим, че имате ServerA, ServerB и ServerC, които трябва да бъдат част от вашия набор от реплики, а ServerA е дефиниран като основен сървър в набора от реплики.
За да добавите ServerB и ServerC към комплекта реплики, издайте командите
rs.add("ServerB") rs.add("ServerC")
Комплект реплики: Преконфигуриране или премахване с помощта на rs.remove()
За да премахнем сървър от конфигурационния набор, трябва да използваме командата “rs.remove”.
Стъпка 1) Първо извършете изключване на екземпляра, който искате да премахнете. Човек може да направи това, като издаде командата db.shutdownserver от mongo shell.
Стъпка 2) Свържете се с основния сървър
Стъпка 3) Използвайте командата rs.remove, за да премахнете необходимия сървър от набора реплики. Да предположим, че ако имате набор от реплики със ServerA, ServerB и ServerC и искате да премахнете ServerC от набора реплики, издайте командата
rs.remove("ServerC")
Отстраняване на неизправности в комплекти реплики
Следващите стъпки са същите начини, по които можете да отстраните неизправности, когато възникнат проблеми с използването на комплекти реплики.
- Уверете се, че всички екземпляри на mongo.exe могат да се свързват един с друг. Да предположим, че имате 3 сървъра, наречени ServerA, ServerB и ServerC. От сървър A издайте следните 2 команди
mongo –host ServerB –port 27017 mongo –host ServerC –port 27017
- Изпълнете командата rs.status. Тази команда дава статуса на набора реплики. По подразбиране всеки член ще изпраща съобщения един на друг, наречени „сърдечни съобщения“, което просто показва, че сървърът е жив и работи. Командата „статус“ получава състоянието на тези съобщения и показва дали има някакви проблеми с членове в набора реплики.
- Проверете размера на Oplog – Oplog е колекция в MongoDB който съхранява историята на писанията, които са извършени на MongoDB база данни. MongoDB след това използва този Oplog, за да репликира записите към другите членове в набора реплики. За да проверите Oplog, свържете се с необходимия екземпляр на член и изпълнете командата rs.printReplicationInfo. Тази команда ще покаже размера на регистрационния файл и колко дълго може да задържи транзакции в регистрационния файл, преди да се напълни.
Oбобщение
Репликация в MongoDB се отнася до процеса за гарантиране, че едни и същи данни са налични на повече от един Mongo DB сървър. Много членове (MongoDB екземпляри) могат да бъдат добавени към набора Replica в зависимост от изискванията.