Nano Hash - криптовалюты, майнинг, программирование

Убедитесь, что данные не потеряны во время репликации MongoDB

В настоящее время у меня есть набор реплик для производственных данных. Я добавляю новых членов в набор реплик. Состояние новых членов становится ВТОРИЧНЫМ (после STARTUP, STARTUP2 и т.д.).

Гарантирует ли это, что все данные в основном элементе будут реплицированы на новые элементы?

Есть ли способ убедиться, что данные не будут потеряны после репликации?

(Есть ли что-нибудь указанное в официальных документах MongoDB - какие-либо гарантии того, что данные не будут потеряны или что-то в этом роде. Я использую MongoDB 3.2)


Ответы:


1
  • Когда первоначальная синхронизация завершена (клонирует данные из источника и применяет оплоги для сохранения изменений в наборе данных), вы можете вызвать rs.printSlaveReplicationInfo() из основной оболочки mongodb.

rs.printSlaveReplicationInfo()

Это вернет последнюю запись oplog, примененную к вторичным узлам, которые скопированы из коллекции основных узлов oplog.rs.

Ответ возвращается как:

source: m1.example.net:27017
    syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
    0 secs (0 hrs) behind the primary
source: m2.example.net:27017
    syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
    0 secs (0 hrs) behind the primary

Обратите внимание, что оба вторичных элемента отстают от основного на 0 секунд, что указывает на отсутствие задержки репликации.

По сути, это разница ч/б последней операции, записанной на первичном, и времени, которое было применено на вторичном.

  • В качестве дополнительной меры предосторожности вы можете отметить db.stats() на первичном сервере прямо перед запуском синхронизации и сбором той же статистики (db.stats()) с недавно синхронизированных вторичных серверов.

Подробнее о начальной синхронизации читайте здесь

10.08.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..