DBAtlas · Atlas d'exploitation des bases de données

Resynchroniser un membre de zéro

MongoDBReplica Set

Commande

// 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()

Ce que fait la commande

MongoDB n'a pas de commande de resync distincte ; arrêter le secondaire, vider son répertoire de données et le redémarrer lance une nouvelle synchronisation initiale depuis le primaire (ou une source de synchronisation).

Quand l'utiliser

Quand un membre prend tellement de retard qu'il sort de la fenêtre de l'oplog (RECOVERING / too stale) ou que ses données deviennent incohérentes.

Attention

Toutes les données locales du membre sont supprimées puis récupérées à nouveau ; ne le faites que sur un secondaire et assurez-vous que la majorité reste disponible. La durée de synchronisation et la charge réseau/disque sont élevées ; pour de très grands volumes, l'initialisation depuis un snapshot du système de fichiers d'un membre sain est plus rapide.

Ouvrir dans DBAtlas →

Voir aussi