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.
Крок 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. Ця команда надає статус набору реплік. За замовчуванням кожен учасник надсилатиме один одному повідомлення, які називаються повідомленнями «серцебиття», які лише вказують на те, що сервер активний і працює. Команда «status» отримує статус цих повідомлень і показує, чи є проблеми з будь-якими членами в наборі реплік.
- Перевірте розмір Oplog – Oplog є колекцією в MongoDB який зберігає історію записів, зроблених у MongoDB , що постійно розширюється. MongoDB потім використовує цей Oplog для реплікації записів іншим членам набору реплік. Щоб перевірити Oplog, підключіться до потрібного екземпляра члена та запустіть команду rs.printReplicationInfo. Ця команда покаже розмір журналу та скільки часу він може зберігати транзакції у своєму файлі журналу, перш ніж він заповниться.
Підсумки
Реплікація в MongoDB відноситься до процесу забезпечення того, щоб однакові дані були доступні на більш ніж одному сервері Mongo DB. Багато учасників (MongoDB екземпляри) можна додати до набору Replica залежно від вимог.