Comment vérifier secondaire est synchronisé maintenant ou pas
il est la réplique avec trois membres (primaire,secondaire,secondaire).
Supposons que l'un de secondaires vers le bas pour un jour, après le retour secondaire vers replica comment puis-je trouver est-il synchronisé encore ou pas?
Je l'ai fait dans l'environnement de test, Mais ne pouvait pas trouver des données utiles à partir de rs.status()
et db.printReplicationInfo()
.
il y a le "journal de la longueur du début à la fin" dans db.printReplicationInfo()
. mais il est grand temps par défaut et à mesure lorsque le secondaire est en baisse.
Vous devez vous connecter pour publier un commentaire.
Note: assurez-vous de vérifier la réponse fournis par arcseldon pour un convivial équivalent.
Vous pouvez utiliser la sortie de
rs.status()
. Si le secondaire est synchronisée et n'a pas été créée avecslaveDelay
option, puisoptime
etoptimeDate
de secondaire doit être égale ou proche (si il y a des opérations courantes) à ceux du primaire. Dans ce casstateStr
doit être égale àSECONDARY
. Donc, si le secondaire est synchronisé, vous devriez obtenir un résultat similaire à ceci (un membre a été supprimé de sortie pour plus de clarté):Vous avez ici la sortie de
rs.status()
pour le même jeu de réplicas si l'un des éléments secondaires n'est pas synchronisé. Tout d'abord, vous verrez queoptime
etoptimeDate
pourhostname:27003
diffère de la primaire, stateStr est fixé àRECOVERING
et il est appropriélastHeartbeatMessage
.Si secondaire a été créé avec
slaveDelay
puisoptime
etoptimeDate
peuvent être différents, maisstateStr
etlastHeartbeatMessage
indiquera si il y a un peu de lag.optime
etoptimeDate
champs. Lorsque la mise à jour de 2.4 à 2.6, lesyncingTo
message n'irais pas loin, donc je n'étais pas sûr si il y a un problème de synchronisation correctement.Mise à jour le 13 février 2017
D'accord avec la accepté de répondre que
rs.status()
offre une information adéquate et une commande facile à retenir. Cependant, (personnellement à l'aide de Mongo 3 maintenant), ne aime aussi le confort et la lisibilité ders.printSlaveReplicationInfo()
.Il donne une sortie quelque chose comme:
Comme vous pouvez le voir, il est facile de se faire une idée de si la synchronisation entre les nœuds dans le jeu de réplicas est en bonne santé ou non.
J'ai écrit un petit script pour mongoDB shell. Il montre une diff entre optime et optimeDate. Vous pouvez l'utiliser au lieu de comparer manuellement membres du jeu de réplicas.