MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余。多机器中同一时刻只
有一台是用于写操作。正是由于这个情况,为,MongoDB 提供了数据一致性的保障。担当
Primary 角色的机器能把读操作分发给,奴隶。
MongoDB 高可用可用分两种:
只需要在某一个服务启动时加上-master 参数,而另一个服务加上-slave 与-source 参数,
即可实现同步.MongoDB 的最新版本已不再推荐此方案。
MongoDB 在,,1.6版本对开发了新功能,replica 集,这比之前的,replication 功能要强大一
些,增加了故障自动切换和自动修复成员节点,各个,DB 之间数据完全一致,大大降低了维
护成功。建议使用,replica 集,replica 集故障切换完全自动。
replica Sets 的结构非常类似一个集群。是的,你完全可以把它当成集群,因为它确实跟集群实现的作用是一样的,其中一个节点如果出现故障,其它节点马上会将业务接过来而无须停机操作。
1,创建数据文件存储路径
root@Jane:/home/简# mkdir - p/数据/数据/r0 root@Jane:/home/简# mkdir - p/数据/数据/r1 root@Jane:/home/简# mkdir - p/数据/数据/r2
2,创建日志文件路径
root@Jane:/home/简# mkdir - p/数据/日志
3,创建主从,key 文件,用于标识集群的私钥的完整路径,如果各个实例的,key file 内容不一
致,程序将不能正常用。
root@Jane:/# mkdir - p/数据/关键 root@Jane:/#呼应这是rs1超级秘密密钥的祝辞//键/r0的数据 root@Jane:/#呼应这是rs1超级秘密密钥的祝辞/数据/键/r1 root@Jane:/#呼应这是rs1超级秘密密钥的祝辞/数据/键/r2 root@Jane:/数据/键# chmod 600 r *
4,启动,3,个实例
root@Jane:/# mongod——replSet rs1密钥文件/数据/键/r0 - 28010端口- dbpath logpath/数据/数据/数据/r0——/日志/r0。日志——logappend叉 root@Jane:/# mongod——replSet rs1密钥文件/数据/键/r1——端口28011 dbpath logpath/数据/数据/数据/r1——/日志/r1。日志——logappend叉 root@Jane:/# mongod——replSet rs1密钥文件/数据/键/r2——端口28012 dbpath logpath/数据/数据/数据/r2——/日志/r2。日志——logappend叉
5,配置及初始化,Replica 集
还可以用,isMaster 查看,Replica Sets 状态。
rs1: PRIMARY>rs.isMaster () { :“setName rs1 ", “ismaster”:没错, “二次”:假的, “主机”:( “127.0.0.1:28010”, “127.0.0.1:28012”, “127.0.0.1:28011” ], “主要”:“127.0.0.1:28010”, “我”:“127.0.0.1:28010”, “maxBsonObjectSize”: 16777216, “maxMessageSizeBytes”: 48000000, “作用”:ISODate (“2013 - 11 - 21 t08:39:09.364z”), “ok”: 1 }MongoDB实战(9)副本集副本集(上)