Resynchroniser un membre de zéro
MongoDBReplica SetCommande
// 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.