我可以使用副本集名称通过 mongo-connector 进行连接吗

Posted

技术标签:

【中文标题】我可以使用副本集名称通过 mongo-connector 进行连接吗【英文标题】:Can i use replica set name to connect via mongo-connector 【发布时间】:2017-01-20 08:34:08 【问题描述】:

我想知道,有没有一种方法可以通过 mongo-connector 从一个 mongo 副本集复制到另一个?根据 mongo 文档,我们可以使用下面示例中的命令通过 mongo-connector 连接两个 mongo 实例,但我想传递副本集名称或使用配置文件而不是传递 server:port 命令行中的名称。

Mongo 连接器可以使用 Mongo DocManager 从一个 MongoDB 副本集或分片集群复制到另一个。最基本的用法如下:

mongo-connector -m localhost:27017 -t localhost:37017 -d mongo_doc_manager

我也尝试通过在 config.json 文件下面创建 config.json 选项,但它失败了。


    "__comment__": "Configuration options starting with '__' are disabled",
    "__comment__": "To enable them, remove the preceding '__'",

    "mainAddress": "localhost:27017",
    "oplogFile": "C:\Dev\mongodb\mongo-connector\oplog.timestamp",
    "verbosity": 2,
    "continueOnError": false,

    "logging": 
        "type": "file",
        "filename": "C:\Dev\mongodb\mongo-connector\mongo-connector.log",
        "__rotationWhen": "D",
        "__rotationInterval": 1,
        "__rotationBackups": 10,
        "__type": "syslog"        
    ,

    "docManagers": [
        
            "docManager": "mongo_doc_manager",
            "targetURL": "localhost:37010",
            "__autoCommitInterval": null
        
    ]

【问题讨论】:

您好,有人对如何使用配置文件有一些建议吗? 【参考方案1】:

是的,它可以使用 mongo 连接器连接到副本集或分片服务器。

 
mongo-connector -m <mongodb server hostname>:<replica set port> \
            -t <replication endpoint URL, e.g. http://localhost:8983/solr> \
            -d <name of doc manager, e.g., solr_doc_manager>

您还可以将连接字符串传递给 mongo-connector,例如


mongo connector -m mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test&connectTimeoutMS=300000


指定您可以使用的特定配置文件

 mongo-connector -c config.json  

config.json 是你的配置文件。

【讨论】:

感谢您的快速回复。我尝试了以下方式,但失败并出现以下异常。 mongo-connector -m rs1 -t rs2 -d mongo_doc_manager 你能粘贴异常吗?你在 github 上看到了来自 mongo labs github.com/mongodb-labs/mongo-connector/wiki/…的配置选项页面吗? 我正在尝试发布我的异常详细信息,因为我无法发布字符限制。我是这个社区的新手。请稍等。 另一个问题,您的副本设置并运行了吗?您还需要指定端口号 mongo-connector -m : \ -t localhost:8983/solr> \ -d 我更新了我的答案。请看一看。您错过了副本集的端口号。【参考方案2】:

我可以通过在我的 Windows 目录路径中输入反斜杠“\”来解决我的问题。这是我更新的配置文件以供参考。感谢 ShaneHarveyNot able to use Configuration file for connecting to mongo-connector


    "__comment__": "Configuration options starting with '__' are disabled",
    "__comment__": "To enable them, remove the preceding '__'",

    "mainAddress": "localhost:27017",
    "oplogFile": "C:\\Dev\\mongodb\\mongo-connector\\oplog.timestamp",
    "noDump": false,
    "batchSize": -1,
    "verbosity": 2,
    "continueOnError": false,

    "logging": 
        "type": "file",
        "filename": "C:\\Dev\\mongodb\\mongo-connector\\mongo-connector.log",
        "__format": "%(asctime)s [%(levelname)s] %(name)s:%(lineno)d - %(message)s",
        "__rotationWhen": "D",
        "__rotationInterval": 1,
        "__rotationBackups": 10,
        "__type": "syslog",
        "__host": "localhost:27017"        
    ,  


    "docManagers": [
        
            "docManager": "mongo_doc_manager",
            "targetURL": "localhost:37017",
            "__autoCommitInterval": null
        
    ]

【讨论】:

以上是关于我可以使用副本集名称通过 mongo-connector 进行连接吗的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb副本集管理

MongoDB集群搭建-副本集

使用 rmongodb 连接到 MongoDB 副本集

搭建MongoDB的副本集

Pymongo - 在 mongodb 副本集中查找主/主节点名称

windows版本 MongoDB副本集搭建及开启身份验证