Що таке реплікація MongoDB?
Реплікація відноситься до процесу забезпечення того, що однакові дані доступні на більш ніж одному сервері DB Mongo. Це іноді потрібно для збільшення доступності даних.
Оскільки, якщо ваш основний сервер MongoDB з будь-якої причини не працює, доступ до даних не буде. Але якщо дані регулярно реплікувались на інший сервер, ви зможете отримати доступ до даних з іншого сервера, навіть якщо основний сервер вийде з ладу.
Ще однією метою тиражування є можливість балансування навантаження. Якщо до системи підключається багато користувачів, замість того, щоб усі підключалися до однієї системи, користувачі можуть бути підключені до декількох серверів, щоб був рівний розподіл навантаження.
У MongoDB кілька серверів MongDB згруповані в набори, які називаються наборами реплік. Набір реплік матиме основний сервер, який прийматиме всі операції запису від клієнтів. Усі інші екземпляри, додані до набору після цього, будуть називатися вторинними екземплярами, які можуть бути використані переважно для всіх операцій читання.
У цьому підручнику ви дізнаєтесь -
- Набір реплік: Додавання першого учасника за допомогою rs.initiate ()
- Набір реплік: додавання вторинного за допомогою rs.add ()
- Набір копій: переналаштування або видалення за допомогою rs.remove ()
- Усунення несправностей наборів реплік
Набір реплік: Додавання першого учасника за допомогою rs.initiate ()
Як згадувалося в попередньому розділі, для того, щоб увімкнути реплікацію, нам спочатку потрібно створити набір копій екземплярів MongoDB.
Припустимо, що для нашого прикладу ми маємо 3 сервери, які називаються ServerA, ServerB та ServerC. У цій конфігурації ServerA буде нашим основним сервером, а ServerB і ServerC будуть нашими вторинними серверами. Нижче скріншот дасть краще уявлення про це.
Нижче наведені кроки, яких потрібно виконати для створення набору реплік разом із додаванням першого члена до набору.
Крок 1) Переконайтеся, що всі екземпляри mongod.exe, які будуть додані до набору реплік, встановлені на різних серверах. Це гарантує, що навіть якщо один сервер не працює, інші будуть доступні, а отже, будуть доступні інші екземпляри MongoDB.
Крок 2) Переконайтеся, що всі екземпляри mongo.exe можуть підключатися один до одного. На сервері ServerA виконайте наведені нижче 2 команди
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Подібним чином виконайте те саме з інших серверів.
Крок 3) Запустіть перший екземпляр 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.
Крок 2) Підключіться до основного сервера
Крок 3) За допомогою команди rs.remove видаліть необхідний сервер із набору реплік. Отже, припустимо, якщо у вас є набір реплік із ServerA, ServerB та ServerC, і ви хочете видалити ServerC з набору реплік, виконайте команду
rs.remove("ServerC")
Усунення несправностей наборів реплік
Наступні кроки - це однакові способи усунення несправностей, коли виникають проблеми при використанні наборів реплік.
- Переконайтеся, що всі екземпляри mongo.exe можуть підключатися один до одного. Припустимо, якщо у вас є 3 сервери, які називаються ServerA, ServerB та ServerC. На сервері A виконайте наведені нижче 2 команди
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Запустіть команду rs.status. Ця команда надає статус набору реплік. За замовчуванням кожен учасник надсилатиме один одному повідомлення, що називаються повідомленнями "серцебиття", що просто вказує на те, що сервер працює і працює. Команда "статус" отримує статус цих повідомлень і показує, чи є проблеми з будь-якими членами набору реплік.
- Перевірте розмір Oplog - Oplog - це колекція в MongoDB, яка зберігає історію записів, зроблених до бази даних MongoDB. Потім MongoDB використовує цей Oplog для реплікації записів до інших членів набору реплік. Щоб перевірити Oplog, підключіться до необхідного екземпляра члена та запустіть команду rs.printReplicationInfo. Ця команда покаже розмір журналу та скільки часу він може зберігати транзакції у своєму журналі, перш ніж він заповниться.
Короткий зміст: