Огляд реплікації в MongoDB

MongoDB - це база даних з відкритим кодом, орієнтована на документи, яка є масштабованою, це база даних NoSQL. Його можна використовувати для зберігання даних з великим обсягом.

MongoDB зберігає дані у форматі JSON, який є дуже гнучким, а модель документа потім відображає об'єкти в кодах додатків.

Що таке реплікація MongoDB?

Під реплікацією ми маємо на увазі групування серверів, які виконують однакові функції. У випадку з MongoDB у нас є сервери MongoDB для зберігання даних. Мета реплікації - забезпечити високу доступність даних. У випадку, якщо будь-який із серверів знизиться, у нас завжди повинна бути копія даних, наявних на іншому сервері, щоб не впливати на доступність.

Дані слід повторювати періодично і через регулярні проміжки часу, щоб переконатися, що ми не втрачаємо жодних даних, і навіть якщо основний сервер виходить з ладу, другий повинен мати можливість обслуговувати запити користувачів.

Реплікація також дуже ефективна у випадку збалансування навантаження, наприклад, якщо у нас є кількість користувачів, які намагаються читати або записувати дані на сервери, у цьому випадку було б несправедливо, якби всі запити надсилалися або отримувались із просто на одному сервері повинен бути механізм врівноваження, який повинен однаково розподіляти навантаження на доступні сервери кластеру, щоб жоден сервер не втрачав пам'яті або пропускної здатності і не знижувався.

Робота реплікації в процесі MongoDB

Реплікація в MongoDB досягається за допомогою наборів реплік. Набори реплік - це групування серверів MongoDB. Є первинний сервер і він відповідає за отримання всіх запитів або операцій запису від клієнтів, а інші екземпляри, які будуть додані до набору реплік, називатимуться вторинними екземплярами, які будуть відповідати за всі операції зчитування.

  • Як показано на наведеній діаграмі, всі дані копіюють первинний вузол на вторинні вузли, у будь-якому наборі реплік буде лише один первинний вузол.
  • Щоразу, коли трапляється аварія або виконується якась робота з обслуговування, обирається новий первинний вузол.
  • Після відновлення аварійного стану, невдалий вузол тепер виступає як вторинний вузол.
  • Клієнтська програма завжди спілкується з первинним вузлом, після чого слідує реплікація даних на всі вторинні вузли.

Набори реплік, створення та операції

Для того, щоб створити повноцінну реплікацію серверів MongoDB, нам спочатку потрібно створити набір репліку екземплярів MongoDB.

Уявімо собі, що у нас є три сервери, repl1, repl2 і repl3, де repl1 є основним сервером, а решта - вторинними.

Додавання реплікації первинного вузла в MongoDB:

  • Переконайтеся, що екземпляри mongo.exe встановлені на всіх серверах.
  • Усі mongod.exe повинні бути в змозі пінг один одного, тобто вони вміють спілкуватися. Щоб перевірити те саме, будь ласка, запустіть такі команди з первинних серверів (спочатку), тобто у нашому випадку repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Аналогічно ми можемо зробити те ж тест і з інших серверів

  • За допомогою команди mongo –replset ми маємо змогу запустити наш перший екземпляр mongod.exe.
    mongo –replset “Replica_A” Де Replica_A - назва нашого набору реплік.
  • Як і зараз, ми додали перший сервер до нашого набору реплік, наступним кроком є ​​ініціювання набору реплік шляхом видачі команди rs.initiate ().
  • Наступним кроком є ​​крок перевірки, де ми переконаємось, що все, що ми налаштували досі, є правильним, ми можемо це зробити, запустивши команду rs.conf ().

Додавання реплікації вторинного вузла в MongoDB:

Після додавання основного сервера легко додати інші вторинні вузли, ми можемо це зробити, видавши команду rs.add ().

Отже, запустіть команду нижче, якщо repl1 - це наш основний сервер, а repl2 та repl3 - вторинні сервери відповідно.

rs.add ("repl2")

rs.add ("repl3")

Видалення серверів із набору реплік:

Щоб видалити сервер з будь-якого набору реплік, це можна зробити за допомогою команди rs.remove ().

У процесі, як зазначено нижче, беруть участь певні кроки:

  • Спочатку вимкніть екземпляр, який потрібно видалити. Це можна зробити, запустивши команду db.shutdownserver через клітинку mongo.
  • Наступним кроком є ​​підключення до основного сервера.
  • Виконайте наступну команду, скажімо, що у нас є repl1, repl2 та repl3 як основні та вторинні сервери відповідно, і ми хочемо видалити repl3, тоді ми виконаємо наступну команду:

rs.remove ("repl3")

Деякі команди для усунення несправностей

  • Усі mongod.exe повинні бути в змозі пінг один одного, тобто вони вміють спілкуватися. Щоб перевірити те саме, будь ласка, запустіть такі команди з первинних серверів (спочатку), тобто у нашому випадку repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Аналогічно ми можемо зробити те ж тест і з інших серверів

  • Rs.status () надасть статус вашому набору реплік
  • Для перевірки oplog, що представляє собою журнал для запису всіх операцій запису, які були зроблені, видайте цю команду - rs.printReplicationInfo.

Переваги реплікації в MongoDB

Мета реплікації - забезпечити високу доступність даних. Якщо будь-який із серверів знизиться, у нас завжди має бути копія даних, наявних на іншому сервері, щоб не впливати на доступність. Реплікація також дуже ефективна у випадку балансування навантаження, наприклад, якщо у нас є номер Користувачі користувачів намагаються читати або записувати дані на сервери.

Отже, якщо коротко розповісти, основні переваги реплікації служать наступній меті:

  1. Висока доступність
  2. Балансування завантаження

Висновок:

Як ми бачили, реплікація MongoDB - це процес, коли ми реплікуємо дані на більш ніж одному сервері, щоб забезпечити високу доступність. Це можна зробити, створивши набір реплік і додавши основний та вторинний сервери.

Рекомендовані статті:

Це було керівництвом щодо реплікації в MongoDB. Тут ми обговорюємо створення, функціонування, роботу, переваги та деякі команди для усунення несправностей. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Інструменти графічного інтерфейсу MongoDB
  2. Команди MongoDB
  3. Альтернативи MongoDB
  4. Як встановити MongoDB