При добавлении арбитра в набор реплик команда rs.addArb долго не отвечает, а потом завершается ошибкой:
Reconfig attempted to install a config that would change the implicit default write concern. Use the setDefaultRWConcern command to set a cluster-wide write concern and try the reconfig again
Причина
Начиная с MongoDB 5.0, если глобальный write concern не задан явно, сервер вычисляет его сам по составу набора реплик. Добавление арбитра меняет этот вычисленный параметр, и MongoDB отказывается делать это молча: она просит явно указать, с каким подтверждением записи работать.
Решение
Задайте глобальный write concern явно. В примере запись считается успешной, когда её подтвердили два узла:
db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})
Значение выбирайте под свою схему: "w": 1 — быстрее, но запись может потеряться при сбое основного узла; "w": "majority" — надёжнее. Проверить текущую настройку и затем добавить арбитра:
db.adminCommand({ getDefaultRWConcern: 1 })
rs.addArb("arbiter-host:27017")