MongoDB(集群搭建) -----主从、副本集
来源:互联网 发布:淘宝客服安抚顾客语 编辑:程序博客网 时间:2024/05/16 09:56
MongoDb在用于生产环境的三种模式,master/slaves(主从模式);replcation副本集;auto shard 分片模式
在早期的系统设计中,主从模式是比较流行的,将读写分离,在不同的DB上操作,可以有效降低数据库的压力,而且还能实现数据的备份,但是在master节点故障的时候,不能及时的自动的切换到slaves节点,需要手动干预,这个是硬伤。
具体实现主从模式的步骤
1. 主服务器
#创建工作目录[root@test mongodb]# rm -rf data logs[root@test mongodb]# mkdir data logs[root@test mongodb]# vi master.conf#mongodb.confport = 39218#端口号dbpath = /work/db/mongodb/data#数据库路径logpath = /work/db/mongodb/logs/mongodb.log#log路径logappend =true#log追加master = true#主服务器fork = true#后台运行#启动[root@test mongodb]# mongod -f master.conf[root@test mongodb]# mongo
2.从服务器
#创建工作目录[root@bogon mongodb]# rm -rf data logs[root@bogon mongodb]# mkdir data logs[root@bogon mongodb]# vi slave.conf#slave.confport = 39218 #端口号dbpath = /work/db/mongodb/data #数据库路径logpath = /work/db/mongodb/logs/mongodb.log #log路径logappend =true #log追加slave=true #从服务器source=00.00.00.00:39218 #主服务器地址端口fork=true #后台运行#启动[root@test mongodb]# mongod -f slave.conf[root@test mongodb]# mongo
3.启动顺序
主服务器、从服务器、主shell端,从shell端
4.主shell测试
> use testswitched to db test> db.hello.save({'name':'Hello Word'})WriteResult({ "nInserted" : 1 })> db.hello.find(){ "_id" : ObjectId("597834bb77a6282b19f3c3e0"), "name" : "Hello Word" }
5.从shell测试
> rs.slaveOk();> use testswitched to db test> db.hello.find(){ "_id" : ObjectId("597834bb77a6282b19f3c3e0"), "name" : "Hello Word" }
副本集
概述
目前在Mongodb的官方说法中已经不推荐使用master/slave/模式,推荐使用副本集模式,应为该模式不但实现了主从模式的读写分离,而且有自己的一套选举机制,能通过自己的算法,选举出当前最优的节点作为活跃节点,一旦活跃节点宕机,选举出来的新的节点将成为活跃节点对外提供服务,其他节点则继续作为复制节点,当原先的活跃节点恢复,会自动作为非活跃节点(备份节点)存在。
这种模式的最大优点在于Mongodb的自动选举活跃节点的机制,不需要手动干预便可以实现活跃与非活跃的切换,但是它由于数据没有shard,每个节点都是一个完成的备份,则不能使用MongoDb的分布式计算功能,当然,也可以通过程序自己来实现(成本很高),所以就有了Auto shard模式。
- A是活跃的B和C是备用的
- 当A出现故障的时候,这个集群会根据权重算法推选出B作为活跃的数据库
- 当A恢复后他自动会变为备份数据库
1. A服务器 mongodb.conf
port = 39218dbpath = /work/db/mongodb/datalogpath = /work/db/mongodb/logs/mongodb.logreplSet = test #指定副本集名为testlogappend = truefork = true
port = 39219dbpath = /work/db/secondary/datalogpath = /work/db/secondary/logs/mongodb.logreplSet = test #指定副本集名为testlogappend = truefork = true
mongod -f mongodb.confmongo --port 39218
4. 启动B、C服务器
mongod -f mongodb.confmongo --port 39219
config={_id:'test',members:[{'_id':0,'host':'192.168.0.1:39218'},{'_id':1,'host':'192.168.0.2:39219'},{'_id':1,'host':'192.168.0.3:39219'}]}rs.initiate(config);rs.status();
阅读全文
0 0
- MongoDB(集群搭建) -----主从、副本集
- MongoDB 集群搭建(主从复制、副本及)(五)
- MongoDB--架构搭建(主从、副本集)之副本集
- MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
- MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
- MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
- 搭建mongodb集群(副本集+分片)
- 搭建mongodb集群(副本集+分片)
- 搭建mongodb集群之副本集
- 搭建mongodb集群(副本集+分片)
- MongoDB搭建副本集(集群)
- MongoDB--架构搭建(主从、副本集)之主从
- MongoDB副本集集群
- mongodb副本集搭建
- mongodb副本集搭建
- mongodb副本集搭建
- mongodb副本集搭建
- MongoDB副本集搭建
- IXDC2017大会:面对新商业体验,设计师转型三部曲
- 让Android Studio披上 Sublime Text的新衣
- Unity众神之光 单词
- Android_设置应用的Intent属性
- 每周荐书:机器学习、Java虚拟机、微信开发(评论送书)
- MongoDB(集群搭建) -----主从、副本集
- 数据中心建设
- MySql常用命令汇总
- centos7安装Nginx1.12.0并配置浏览器访问服务器状态信息
- linux下同时打开多个文件;linux同一屏幕,多个窗口;Linux vsp file
- oracle 字符编码修改
- (2017多校训练第一场)HDU
- 关键字参数
- Vc下unicode和UTF8相互转换