通过js文件配置MongoDB副本集

普拉桑塔斯

我已经为MongoDB手动配置了副本集。

在三个节点上启动守护程序后,在它们启动并运行之后,从我标识为“主要”的节点上运行以下命令:

  1. mongo

    • 这会让我掉入mongo shell
  2. use admin

  3. 创建副本集配置:

    cfg = {
        _id: 'csReplicaSet',
        members: [
            { _id: 0, host: 'node1IpAddress:27017'},
            { _id: 1, host: 'node2IpAddress:27017'},
            { _id: 2, host: 'node3IpAddress:27017', arbiterOnly: true}
        ]
    }
    
  4. rs.initiate(cfg)

我想知道如何在mongo可以识别的JavaScript文件中执行这些步骤。我想自动化这些步骤。

斯坦尼

将您的初始化脚本传递到mongo外壳

以编程方式,您快要准备好了。您可以将指令保存到JavaScript文件,然后在mongo命令行上运行它rs.initiate()如果出现错误,您还应该捕获并打印结果

例如。的内容initreplica.js

var cfg = { _id: 'csReplicaSet',
    members: [
        { _id: 0, host: 'node1IpAddress:27017'},
        { _id: 1, host: 'node2IpAddress:27017'},
        { _id: 2, host: 'node3IpAddress:27017', arbiterOnly: true}
    ]
};

var error = rs.initiate(cfg);
printjson(error);

使用以下命令从命令行运行此命令:

 mongo node1IpAddress:27017/admin initreplica.js

请注意,这假设您的三个mongod节点已在包含--replSet csReplicaSet参数的相同IP地址上启动除非您要从头开始重建副本集(并且没有现有的副本集配置),否则您只需要执行一次此初始化序列。

我还建议阅读手册中有关编写mongoShell脚本的部分它包括一些有用的提示,例如如何打开与其他MongoDB服务器的新连接,以及一些外壳帮助程序(如)JavaScript等效use <db>

自动化生产部署

如果您正在寻找自动构建生产MongoDB集群的方法,则应研究诸如Chef或Puppet之类的配置管理工具的配方。作为MMS(MongoDB管理服务)的一部分,还将提供一个自动化功能自动化功能目前正在Beta测试中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章