Так я столкнулся следующие проблемы в последнее время:потери данных из-за неожиданный отказ от MongoDB реплики установить
У меня есть 5-член набора реплик набора (приоритет)
- 1 х первичный (2)
- 2 х вторичный (0,5)
- 1 х скрытое резервное копирование (0)
- 1 х арбитр (0)
Одна из вторичных реплик с приоритетом 0,5 (назовем его B) столкнулась с какой-то сетевой проблемой и имела прерывистую связь с остальной частью набора реплик. Однако, несмотря на наличие staler данных и более низкий приоритет, чем существующий основной (давайте назовем его ) она взяла на себя главную роль:
[ReplicationExecutor] VoteRequester: не получил голоса от ххх, потому что: данные кандидата является staler чем шахты, соответственно: {термин: 29, voteGranted: ложь, причина: "данные о кандидате является staler, чем у меня", хорошо: 1,0}
[ReplicationExecutor] выборы удались, предполагая, что основную роль в перспективе 29
[ReplicationExecutor ] переход к ОСНОВАНИЮ
И , несмотря на отсутствие каких-либо проблем с подключением с остальной частью набора реплик:
[ReplicationExecutor] уйдя из первичного, так как новый термин начал: 29
So Вопрос 1: как это было возможно при обстоятельствах?
Двигаясь дальше, (теперь второстепенный) начал откат данных:
[rsBackgroundSync] Начиная откат из-за OplogStartMissing: наш последний раз оп неправдоподобным: (срок: 28, метка времени: ххх) , Источника ГТД: (срок: 29, отметка времени: ххх) хешей: (ххх/ххх)
[rsBackgroundSync] начала отката
[rsBackgroundSync] откатить 0
[ReplicationExecutor] Переход к ROLLBACK
Это привело к тому, что данные были записаны для удаления. Итак, Вопрос 2: Как пропадает OplogStart?
И последнее, но не менее важное: Вопрос 3, как это можно предотвратить?
Заранее благодарю вас!
'' 3.2.4' и protocolVersion: 1 '! –
Эта проблема не так ли? https://jira.mongodb.org/browse/SERVER-18453. Я вижу, что это отвечает на вопросы 2 и 3 ... но как насчет вопроса 1? –