DBAtlas · Atlas de operaciones de bases de datos

Resincronizar un miembro desde cero

MongoDBReplica Set

Comando

// On the SECONDARY to be resynced (NEVER on the PRIMARY):
db.getSiblingDB("admin").shutdownServer()
// At the OS level: empty the dbPath contents (or move them elsewhere as a backup)
// and restart mongod with the same configuration; the member starts an initial sync automatically.
// Monitor progress (stateStr: STARTUP2 -> SECONDARY):
rs.status()

Qué hace

MongoDB no tiene un comando resync aparte; detener el secundario, vaciar su directorio de datos y reiniciarlo inicia una nueva sincronización inicial desde el primario (o una sync source).

Cuándo usarlo

Cuando un miembro se retrasa tanto que queda fuera de la ventana del oplog (RECOVERING / too stale) o sus datos se vuelven inconsistentes.

Precaución

Todos los datos locales del miembro se borran y se vuelven a extraer; hágalo solo en un secundario y asegúrese de que la mayoría sigue activa. El tiempo de sincronización y la carga de red/disco son altos; para conjuntos de datos muy grandes, sembrar desde un snapshot del sistema de archivos de un miembro sano es más rápido.

Abrir en DBAtlas →

Relacionado