Налаштування реплікаційного набору MongoDB: покрокова інструкція

pic

Фото Caspar Camille Rubin на Unsplash

Налаштування реплікації MongoDB з трьома вузлами (один основний і два вторинні) забезпечує високу доступність, відмовостійкість і консистентність даних. Цей посібник проведе вас через усі етапи налаштування, пояснивши кожен крок та надасть розуміння, чому тринадцятинове налаштування реплікації є оптимальним.

Чому використовувати реплікаційний набір з трьох вузлів?

1. Висока доступність

• Забезпечує автоматичний перехід до резервного вузла при відмові основного.

  • З трьома вузлами два з них можуть створити більшість для вибору нового основного вузла у разі відмови одного з вузлів.

2. Відмовостійкість

• Може витримати відмову одного вузла, зберігаючи доступність і консистентність даних.

  • У налаштуванні з двома вузлами можна втратити можливість запису при відмові одного з вузлів.

3. Консистентність і довговічність даних

• Більшість за умовою запису гарантує, що дані записуються на принаймні два вузли перед підтвердженням.

  • Це запобігає втраті даних у разі відмови.

4. Кворум для виборів

• Три вузли гарантують більшість для виборів:

• Два вузли можуть створити більшість, якщо один вузол вийде з ладу.

  • Відмова одного вузла не порушує роботу системи.

Кроки для налаштування реплікаційного набору MongoDB

  1. Створіть директорію для реплікаційного набору
mkdir replicaset-cmd

Пояснення:

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

2. Створіть ключовий файл для автентифікації

openssl rand -base64 755 > keyfile  
chmod 400 keyfile

Пояснення:

Генерація ключового файлу: Генерує випадковий ключовий файл розміром 755 байт для автентифікації зв'язку між вузлами.

  • Права доступу до файлу: Обмежує доступ до ключового файлу, щоб лише власник міг його читати.

3. Створіть директорії для кожного члена реплікаційного набору

mkdir -p m{1,2,3}/db

Пояснення:

Це створює директорії для зберігання даних:

• m1/db для першого вузла

• m2/db для другого вузла

• m3/db для третього вузла

Параметр -p гарантує створення батьківських директорій, якщо вони не існують.

4. Запустіть екземпляри MongoDB для кожного члена

mongod --replSet myReplSet --dbpath ./m1/db --logpath ./m1/mongodb.log --port 27017 --fork --keyFile ./keyfile  
mongod --replSet myReplSet --dbpath ./m2/db --logpath ./m2/mongodb.log --port 27018 --fork --keyFile ./keyfile  
mongod --replSet myReplSet --dbpath ./m3/db --logpath ./m3/mongodb.log --port 27019 --fork --keyFile ./keyfile

Пояснення:

Кожна команда запускає екземпляр MongoDB з такими параметрами:

Назва реплікаційного набору: myReplSet

Унікальний порт: 27017, 27018, 27019

Автентифікація за ключем: Забезпечує безпечний зв'язок

  • Запуск у фоновому режимі: Кожен екземпляр працює у фоновому режимі.
  • Обробка помилок:
cat ./m1/mongodb.log

5. Підключіться до основного екземпляра

mongosh "mongodb://localhost:27017"

6. Ініціалізуйте реплікаційний набір

rs.initiate()

Пояснення:

Ініціалізує реплікаційний набір. Перший вузол (порт 27017) стає основним за замовчуванням.

7. Створіть адміністратора користувача

use admin  
db.createUser({user: 'Yourname', pwd: passwordPrompt(), roles: ["root"]})

Пояснення:

• Перехід до адміністративної бази даних.

• Створення користувача (naomi) з правами адміністратора для повного доступу.

  • passwordPrompt() безпечно запитує пароль.

8. Автентифікуйтесь як адміністративний користувач

db.getSiblingDB("admin").auth("naomi", passwordPrompt())

Пояснення:

Вхід як користувач naomi в адміністративну базу даних.

9. Додайте вторинні вузли до реплікаційного набору

rs.add("localhost:27018")  
rs.add("localhost:27019")

Пояснення:

Додає вторинні вузли до реплікаційного набору для забезпечення резервування і балансування навантаження.

10. Перевірте статус реплікаційного набору

rs.status()

Пояснення:

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

11.

Перевірка статусу реплікації

db.serverStatus()['repl']

Пояснення:

Показує деталі реплікаційного набору, такі як затримка реплікації та поточні ролі членів.

Висновок

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

Перекладено з: Setting Up a MongoDB Replica Set: A Step-by-Step Guide

Leave a Reply

Your email address will not be published. Required fields are marked *