MongoDB 主从集群配置

简介:

创建必要的目录和认证文件:

[root@mongo mongo]# mkdir keyfile

[root@mongo mongo]# echo "mongo cluster one" > keyfile/m1
[root@mongo mongo]# echo "mongo cluster one" > keyfile/m2
[root@mongo mongo]# echo "mongo cluster one" > keyfile/m3
 
启动不同端口的服务
 
mongod --replSet mco --keyFile /usr/local/mongo/keyfile/m1 --fork --port 28010 --dbpath=/usr/local/mongo/data0/ --logpath=/usr/local/mongo/log/m1.log --logappend
mongod --replSet mco --keyFile /usr/local/mongo/keyfile/m2 --fork --port 28011 --dbpath=/usr/local/mongo/data1/ --logpath=/usr/local/mongo/log/m2.log --logappend
mongod --replSet mco --keyFile /usr/local/mongo/keyfile/m3 --fork --port 28012 --dbpath=/usr/local/mongo/data2/ --logpath=/usr/local/mongo/log/m3.log --logappend
mongod --replSet mco --keyFile /usr/local/mongo/keyfile/m4 --fork --port 28013 --dbpath=/usr/local/mongo/data3/ --logpath=/usr/local/mongo/log/m4.log --logappend
 
mongod --replSet mco --keyFile /usr/local/mongo/keyfile/m5 --fork --port 28014 --dbpath=/usr/local/mongo/data4/ --logpath=/usr/local/mongo/log/m5.log --logappend     --fastsync
 
 
配置主从
 
> config_mco={_id:'mco',members:[
... {_id:0,host:'localhost:28010',priority:1},
... {_id:1,host:'localhost:28011'},
... {_id:2,host:'localhost:28012'}]
... }
{
        "_id" : "mco",
        "members" : [
                {
                        "_id" : 0,
                        "host" : "localhost:28010",
                        "priority" : 1
                },
                {
                        "_id" : 1,
                        "host" : "localhost:28011"
                },
                {
                        "_id" : 2,
                        "host" : "localhost:28012"
                }
        ]
}
 
 
初始化主从
 
> rs.initiate(config_mco)
{
        "info" : "Config now saved locally.  Should come online in about a minute.",
        "ok" : 1
}
 
查看集群状态
 
> rs.status()rs.status()
{
        "set" : "mco",
        "date" : ISODate("2012-12-01T03:31:14Z"),
        "myState" : 2,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:28010",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 1047,
                        "optime" : Timestamp(1354332643000, 1),
                        "optimeDate" : ISODate("2012-12-01T03:30:43Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "localhost:28011",
                        "health" : 0,
                        "state" : 8,
                        "stateStr" : "(not reachable/healthy)",
                        "uptime" : 0,
                        "optime" : Timestamp(0, 0),
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T03:30:57Z"),
                        "pingMs" : 0,
                        "errmsg" : "DBClientBase::findN: transport error: localhost:28011 ns: admin.$cmd query: { replSetHeartbeat: \"mco\", v: 1, pv: 1, checkEmpty: false, from: \"localhost:28010\", $auth: { local: { __system: 2 } } }"
                },
                {
                        "_id" : 2,
                        "name" : "localhost:28012",
                        "health" : 1,
                        "state" : 6,
                        "stateStr" : "UNKNOWN",
                        "uptime" : 21,
                        "optime" : Timestamp(0, 0),
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T03:30:59Z"),
                        "pingMs" : 0,
                        "errmsg" : "still initializing"
                }
        ],
        "ok" : 1
}
 
 
mco:SECONDARY> rs.status()
{
        "set" : "mco",
        "date" : ISODate("2012-12-01T03:33:13Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:28010",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 1166,
                        "optime" : Timestamp(1354332643000, 1),
                        "optimeDate" : ISODate("2012-12-01T03:30:43Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "localhost:28011",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 113,
                        "optime" : Timestamp(1354332643000, 1),
                        "optimeDate" : ISODate("2012-12-01T03:30:43Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T03:33:13Z"),
                        "pingMs" : 0,
                        "errmsg" : "syncing to: localhost:28010"
                },
                {
                        "_id" : 2,
                        "name" : "localhost:28012",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 87,
                        "optime" : Timestamp(1354332643000, 1),
                        "optimeDate" : ISODate("2012-12-01T03:30:43Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T03:33:13Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}
mco:PRIMARY> 
 
 
打印从库复制信息:
 
mco:PRIMARY> db.printSlaveReplicationInfo()
source:   localhost:28011
         syncedTo: Sat Dec 01 2012 11:30:43 GMT+0800 (CDT)
                 = 842 secs ago (0.23hrs)
source:   localhost:28012
         syncedTo: Sat Dec 01 2012 11:30:43 GMT+0800 (CDT)
                 = 842 secs ago (0.23hrs)
mco:PRIMARY> 
 
 
打印主从状态:
 
mco:PRIMARY> rs.status()
{
        "set" : "mco",
        "date" : ISODate("2012-12-01T04:04:01Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:28010",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 395,
                        "optime" : Timestamp(1354334590000, 1),
                        "optimeDate" : ISODate("2012-12-01T04:03:10Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T04:04:00Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 1,
                        "name" : "localhost:28011",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 1958,
                        "optime" : Timestamp(1354334590000, 1),
                        "optimeDate" : ISODate("2012-12-01T04:03:10Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T04:04:00Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 2,
                        "name" : "localhost:28012",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 2900,
                        "optime" : Timestamp(1354334590000, 1),
                        "optimeDate" : ISODate("2012-12-01T04:03:10Z"),
                        "self" : true
                },
                {
                        "_id" : 3,
                        "name" : "localhost:28013",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 23,
                        "optime" : Timestamp(1354334590000, 1),
                        "optimeDate" : ISODate("2012-12-01T04:03:10Z"),
                        "lastHeartbeat" : ISODate("2012-12-01T04:03:59Z"),
                        "pingMs" : 1058
                }
        ],
        "ok" : 1
}
 
本文完!




     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/1167326 ,如需转载请自行联系原作者

相关文章
|
9月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1030 4
|
存储 NoSQL 安全
客户说|知乎核心业务MongoDB集群的平滑上云迁移实践
客户说|知乎核心业务MongoDB集群的平滑上云迁移实践
467 0
|
存储 NoSQL 算法
MongoDB保姆级指南(中):从副本集群、分片集群起航,探索分布式存储的趋势!
本文一起来聊聊MongoDB集群,顺带以MongoDB集群为起点,共同探讨一下分布式存储的发展趋势~
3136 15
|
自然语言处理 运维 NoSQL
MongoDB集群同步
实现 MongoDB Cluster-to-Cluster 即集群同步的工具是:mongosync 详情可参考如下官方文档: https://www.mongodb.com/zh-cn/docs/cluster-to-cluster-sync/current/quickstart/ 以上这个地址的文档一看就是机器翻译的,可能有不恰当的地方,但基本可参考使用。 以下是本次在某项目地配置集群同步的简要步骤,可参考使用。
381 6
|
存储 负载均衡 NoSQL
MongoDB的架构设计基于三种集群模式
【6月更文挑战第5天】MongoDB的架构设计基于三种集群模式
702 3
|
存储 运维 NoSQL
轻松上手:逐步搭建你的高可用MongoDB集群(分片)
【8月更文挑战第13天】在数据激增的背景下,传统单机数据库难以胜任。MongoDB作为流行NoSQL数据库,采用分片技术实现水平扩展,有效处理海量数据。分片将数据分散存储,提高并发处理能力和容错性,是高可用架构基石。构建MongoDB集群需理解shard、config server和router三组件协同工作原理。通过具体实例演示集群搭建流程,包括各组件的启动及配置,确保数据高可用性和系统稳定性。合理规划与实践可构建高效稳定的MongoDB集群,满足业务需求并支持未来扩展。
879 0
|
NoSQL MongoDB Windows
MongoDB 读写分离——Windows MongoDB 副本集配置
MongoDB 读写分离——Windows MongoDB 副本集配置
445 0
|
消息中间件 NoSQL 中间件
MongoDB多数据中心的主从结构
【7月更文挑战第3天】
246 0
|
消息中间件 NoSQL 中间件
MongoDB主从结构、仲裁节点
【7月更文挑战第2天】
495 0

推荐镜像

更多