Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    [mongoDB] Comment faire pour obtenir le prompt mongos ?
    Bonjour,

    C'est pour le sharding.
    La commande dessous marche bien.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019,localhost:27020 --port 27017


    Le problème est que je ne peux pas obtenir le prompt mongos, pour lancer sh.addShard( "shax1/localhost:27031"); et sh.addShard( "shax2/localhost:27032");.

    La question est , avec la commande
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"  --port 27017.

    Comment faire pour obtenir le prompt mongos ?


    Mercis beaucoup,
    kriptnekol

  2. #2
    Membre émérite
    Comment faire pour obtenir le prompt mongos ?
    C'est peut-être un peu trompeur. Le prompt est toujours d'un client mongo. Le client peut connecter à un serveur d'application où une instance de mongos est courrante. Je pense il n'y a pas de concept de prompt mongos. Pourtant un client peut connecter multiple de servers d'application à la caprice de celui qui issue la commande. Ici, le client veut connecter à un serveur qui héberge un mongos router où une instance est démarré, comme ce que vous décrivez dessous.

    La commande dessous marche bien.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019,localhost:27020 --port 27017
    Dans la documentation où on trouve sh.addShard() dans la section "Add a Shard to a Cluster"
    https://docs.mongodb.com/manual/tuto...shard-cluster/
    c'est le paramètre --host où manifeste ce que le client veut faire connecter, et en particulièrement ici, le host doit être précisément le router mongos qui route données aux ensembles de réplica shax1 et shax2 ... Comment et pourquoi partout vous mettez localhost comme host, je ne peux rien dire et je ne sais pas. Il faut être cohérant avec comment se font configurés le réseau, les ip's, les dn's ...

  3. #3
    Candidat au Club
    Bonjour,

    Mercis beaucoup tsuji.

    tsuji a dit
    Comment et pourquoi partout vous mettez localhost comme host
    Je fais des recherches sous windows en local. host ne marche pas. C'est localhost qui marche pour windows.

    Peut être que j'ai mal posé ma question, mon problème ? pour, j'ai essayé de faire simple et claire, bref facile à comprendre.
    Dans mon langage de novice, "prompt mongos", signifie mongos>.

    Après recherches et un peu de volonté, j'ai compris que pour obtenir le mongos> .
    Il faut imperativement arrêter d'abord tous les process mongod qui tourne en fond invisible. Après on lance les étapes pour faire le sharding.
    Et on obtient le mongos>, comme dessous.


    Maintenant avec ce mongos> , j'ai bien facilement réussi à ajouter mes shards avec les commandes dessous
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    sh.addShard( "shax1/localhost:27031");
    sh.addShard( "shax2/localhost:27032");

    bref, j'ai réussi à continuer et terminer la configuration de mon sharding, et la manipulations de mes sharding etc.

    Mercis beucoup, ce problème est résolu.

    Maintenant ce qui me chagrinne un peu, c'est, quelles conséquences, quelle est la différence entre
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019,localhost:27020 --port 27017

    et
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019 --port 27017

    Pour rappel, les ports 27019, 27020 sont ceux des config servers qui sont en replicaset confRs

    Mercis beaucoup,
    kriptnekol

  4. #4
    Membre émérite
    Merci pour rapporter les détails d'opération, j'en prends notes.

  5. #5
    Candidat au Club
    Bonjour,

    Suite, quelle est la différence entre les 2 commande dessous

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019,localhost:27020 --port 27017

    et
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019 --port 27017


    Pour rappel, les ports 27019, 27020 sont ceux des config servers qui sont en replicaset confRs

    Bien cordialement,
    kriptnekol

  6. #6
    Membre émérite
    Revenons un peu plus haut d'abord:
    Il faut imperativement arrêter d'abord tous les process mongod qui tourne en fond invisible.
    Oui, à la condition que le mongod en fond comme service soit tourner au port 27017. Si on établis un cluster avec mongos tournant au port différent (dit 25001 par exemple arbitrairement) et que le server de configuration et les shards tous tournent aux ports différents de 27017, on est tout à fait capable de tourner ce cluster en parallèle d'une bd, celle gérée par le server mongod au fond tournant au port 27017. Il suffit de connecter au router mongos par le client mongo avec l'option --port 25001 (le même port mentionné plus haut pour mongos) et on devrait obtenir le prompt mongos comme vous dites. Donc, je veux dire seulement, ce n'est pas une condition nécessaire d'arrêter le daemon qui tourne au port quelconque, comme par exemple 27017, le défaut. Je pense que ce soit correct ? Ce ne serait pas trop compliqué à vérifier.

    quelle est la différence entre les 2 commande dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019,localhost:27020 --port 27017
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\MongoDB\Server\4.2\bin\mongos.exe" --configdb confRs/localhost:27019 --port 27017
    Là, je pense la différence est que, dans le deuxième cas, le réplica qui tourne au localhost:27020 ne serait pas disponible en car de faille de localhost:27019. Le cluster, en gros, devrait tourner normalement avec au peu moins d'assuance ...