Dans mon test Envinroment: node1: primaire shard1, shard2 primaire node2: shard1 secondaire, shard2 secondaire node3: arbitre shard1, shard2 artbiter J'ai écrit un multi-thread pour écrire simultanément le mongo réplicat ensemble shard, après 1 heure (le primaire avait 6g de données) J'ai trouvé le statut secondaire est: récupération J'ai vérifié le journal secondaire, a déclaré: données obsolètes de l'oplog primaire Donc la raison était ma demande d'écriture très fréquent? le secondaire ne peut pas se répliquer à temps? ou d'autres raisons? Je suis curieux ... Merci d'avanceinsert mongodb MultiThread fait des données périmées
Répondre
Cette situation peut se produire si la taille de l'OpLog n'est pas suffisante pour garder un enregistrement de toutes les opérations se produisant sur le primaire, ou le secondaire ne peut tout simplement pas garder avec le primaire. Ce qui se passera dans ce cas est la position dans le OpLog où le secondaire sera écrasé par les nouvelles insertions du primaire. À ce stade, le secondaire signalera que son statut est Recovering
et vous verrez un message RS102
dans le journal, indiquant qu'il est trop vieux pour rattraper.
Pour résoudre le problème, vous devez suivre les étapes décrites dans le documentation.
Afin d'éviter que le problème ne se reproduise à l'avenir, vous devez ajuster la taille de l'OpLog et vous assurer que les secondaires ont des configurations matérielles équivalentes.
Pour faciliter le réglage de l'OpLog, vous pouvez consulter la sortie db.printReplicationInfo()
qui vous indiquera le temps dont vous disposez dans votre OpLog. Le documentation explique comment redimensionner l'OpLog s'il est trop petit.
- 1. Déterminer des données périmées
- 2. NHibernate .query retour des données périmées
- 3. algorithme évolutif pour détecter des données périmées
- 4. insert MongoDB Node.js expriment
- 5. MongoDB ref insert atomique/supprimer
- 6. d'accès simultané (données périmées) dans JPA
- 7. Le message JMS reçoit des données périmées d'Hibernate
- 8. CQRS Comment gérer les tâches des utilisateurs/Données périmées
- 9. MongoDB PHP, insert() ne fonctionne pas
- 10. Données périmées affichées par les actions Rails. Redémarrez le cures
- 11. Comment traduire INSERT INTO ... SELECT en MongoDB
- 12. traitement des fichiers multithread
- 13. PHP MongoDB-> insert - erreur fatale avec utf8
- 14. obtenir des données de MongoDB
- 15. Importer des données. COPY & INSERT dans Cassandra
- 16. Comment gérer les réclamations périmées dans WIF?
- 17. Stocker des données dans XML ou MongoDB
- 18. Données de fonction insert
- 19. La comparaison des données MongoDB avec des données Xml
- 20. ? Comment pouvons-nous empêcher IE9 de toujours récupérer des données périmées du cache?
- 21. Comment gérer les connexions périmées dans JPA
- 22. MongoDB insérer beaucoup de données
- 23. Comment implémenter des données de base dans un environnement multithread
- 24. Comment associer des données dans MongoDB?
- 25. Insérer des données imbriquées dans mongodb
- 26. Gestion des types de données MongoDB
- 27. Exporter des données MongoDB vers ElasticSearch
- 28. Cloud9 et mongodb montrent des données
- 29. agrégat MongoDB inclure des pseudo-données
- 30. agrégation des données sur timeseries dans MongoDB