我已经手动为 MongoDB 配置了一个副本集。
一旦我在 3 个节点上启动了守护进程并在它们启动并运行后,从我标识为“主要”的节点运行以下命令:
mongo
use admin
创建副本集配置:
cfg = {
_id: 'csReplicaSet',
members: [
{ _id: 0, host: 'node1IpAddress:27017'},
{ _id: 1, host: 'node2IpAddress:27017'},
{ _id: 2, host: 'node3IpAddress:27017', arbiterOnly: true}
]
}
Run Code Online (Sandbox Code Playgroud)rs.initiate(cfg)
我想知道如何在 mongo 识别的 JavaScript 文件中执行这些步骤。我想自动化这些步骤。
mongoshell从编程上来说,你就快到了。您可以将指令保存到 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);
Run Code Online (Sandbox Code Playgroud)
使用以下命令从命令行运行此命令:
mongo node1IpAddress:27017/admin initreplica.js
Run Code Online (Sandbox Code Playgroud)
请注意,这假设您的三个mongod节点已在相同的 IP 地址(包括--replSet csReplicaSet参数)上启动。您也只需要执行一次此初始化序列,除非您从头开始重建副本集(并且没有现有的副本集配置)。
我还建议阅读手册中有关为shell编写脚本mongo的部分。它包含一些有用的提示,例如如何打开与其他 MongoDB 服务器的新连接以及一些 shell 帮助程序use <db>(如.
如果您正在寻找自动构建生产 MongoDB 集群的方法,您应该研究一下 Chef 或 Puppet 等配置管理工具的配方。作为 MMS(MongoDB 管理服务)的一部分,还有一个自动化功能即将推出;自动化功能目前正在进行 Beta 测试。
| 归档时间: |
|
| 查看次数: |
5249 次 |
| 最近记录: |