mongoDB的复制集1----复制集的特点、快速搭建复制集
来源:互联网 发布:淘宝司法拍卖后悔报名 编辑:程序博客网 时间:2024/05/21 09:43
单点模式的优点是什么?
部署方便,节省资源
但单点模式会有如下问题:
硬盘的存储空间要满了,怎么办?
如何出现网络通信或者是机房电力故障,服务器无法正常提供服务怎么办?
进行备份时,为了保证数据的一致性,要将实例关闭或者上个写锁保证备份有有效怀这时怎么办?
复制集概念
传统主从结构MASTER/SLAVE --> 复制集(mongodb replica sets)
复制集是由一组拥有相同数据集的mongodb实例所组成的集群
两类节点
数据节点:存储数据,可以充当主从节点
投票结点:负责选举,不存储数据,不能充当主从节点
复制集的工作方式:
一、复制集的特点
1).主唯一不固定
数据一致性,主是唯一的,但不固定,没有Mysql那样的双主结构
2).大多数原则
集群存活节点小于等于二分之一时集群不可写,只可读。
是否能选举出新的主节点,是由当前复制集成员存活数量来决定的
3).从库无法写入
Mysql从库的readonly对具有super权限的账户无效
4).自动容灾
复制集不支持只复制指定的库
在3.0以前的版本中,复制集中参与选举的数据节点只能有7个
二、快速搭建复制集
2-1、复制的集的启动
1).配置文件编写
编写三个配置文件,分别为28001.conf,28002.conf,28003.conf。需要注意的是,如果配置文件里的目录没有,需要先创建
port = 28001
dbpath = /usr/local/mongoDB/data/db/28001
logpath = /usr/local/mongoDB/logs/28001.log
logappend=true
pidfilepath=/usr/local/mongoDB/data/db/28001/28001.pid
fork =true
oplogSize=1024MB
verbose = vvvvv
replSet = changwen上面配置参数的详解:http://blog.csdn.net/ochangwen/article/details/52344680
2).启动实例
changwen@ubuntu:~$ ps -ef|grep mongo
root 7051 5546 1 21:48 ? 00:00:03 /usr/local/mongoDB/bin/mongod -f /usr/local/mongoDB/conf/28003.conf
root 7124 5546 0 21:50 ? 00:00:02 /usr/local/mongoDB/bin/mongod -f /usr/local/mongoDB/conf/28001.conf
root 7157 5546 1 21:50 ? 00:00:02 /usr/local/mongoDB/bin/mongod -f /usr/local/mongoDB/conf/28002.conf
changwen 7208 7196 0 21:54 pts/19 00:00:00 grep --color=auto mongo
3).复制集初始化
先连接主节点
# 连接服务器changwen@ubuntu:~$ sudo /usr/local/mongoDB/bin/mongo 192.168.23.129:28001# 定义一个对象> config = {... _id:"changwen",... members:[... {_id:0,host:"192.168.23.129:28001"},... {_id:1,host:"192.168.23.129:28002"},... {_id:2,host:"192.168.23.129:28003"}]}{"_id" : "changwen","members" : [{"_id" : 0,"host" : "192.168.23.128:28001"},{"_id" : 1,"host" : "192.168.23.128:28002"},{"_id" : 2,"host" : "192.168.23.128:28003"}]}> config.members...> config.members[2]{ "_id" : 2, "host" : "192.168.23.128:28003" }# 修改> config.members[2]={ "_id" : 2, "host" : "192.168.23.128:28003" ,"arbiterOnly":true}{ "_id" : 2, "host" : "192.168.23.128:28003", "arbiterOnly" : true }> rs.initiate(config){ "ok" : 1 }> use changwenswitched to db changwenchangwen:PRIMARY> db.changwen2.insert({"name":"changwen"})WriteResult({ "nInserted" : 1 })打开从节点 服务,可以看到主服务器上创建的数据已经存储到从服务器上
# 连接从节点服务 changwen@ubuntu:$ sudo /usr/local/mongoDB/bin/mongo 192.168.23.129:28002changwen:SECONDARY> show tables2016-08-28T06:16:49.031-0700 E QUERY [thread1] Error: listCollections failed: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } :_getErrorWithCode@src/mongo/shell/utils.js:25:13rs.slaveOk(1)或者turechangwen:SECONDARY> rs.slaveOk(true)changwen:SECONDARY> show dbschangwen 0.000GBlocal 0.000GBchangwen:SECONDARY> db.changwen2.find(){ "_id" : ObjectId("57c2f4a177f0574f2e53ba7d"), "name" : "changwen" }打开投票结点
changwen@ubuntu:~$ sudo /usr/local/mongoDB/bin/mongo 192.168.23.129:28003> rs.slaveOk(true)# 投票结点不存储任何物理数据<pre name="code" class="sql">changwen:ARBITER> show dbslocal 0.000GB
2-2.复制集成员节点
按是否存放数据区分
数据节点:存放数据(实体物理文件*.ns *.0等)的节点,包括主节点,从节点
投票节点:不存放数据仅作选举和充当复制集节点
按功能区分
2-3.复制集配置文件参数
_id整数 _id:0host字符串host:"192.168.23.129:28001"arbiterOnly布尔值 arbiterOnly:truepriority整数priority = 0|1hidden布尔值hidden = true|false, 0|1votes整数votes = 0|1slaveDelay整数slaveDelay = 3600buildIndexes布尔值buildIndexes = true|false, 0|1节点属性主节点 priority(优先级)至少为1
从节点 priority(优先级)可以为0
延迟节点 priority(优先级)为0并且hidden = true 并且salveDelay = XX(XX表示 延迟时间,用数字)
隐藏节点 priority(优先级)为0并且hidden = true
无索引 priority(优先级)为0并且buildIndexes= true
# 在主节点服务输入changwen:PRIMARY>rs.stepDown(5)# 可以看到主节点变成了从节点 changwen:SECONDARY>#在从节点端口可以看到变成了主节点# 修改节点优先级changwen:PRIMARY>config.members[0].priority=1
- mongoDB的复制集1----复制集的特点、快速搭建复制集
- mongodb复制集的搭建
- MongoDB的复制集
- MongoDB的复制集
- mongodb复制集搭建
- 搭建mongodb复制集
- mongodb复制集搭建
- MongoDB -- 复制集搭建
- mongodb复制集搭建
- 搭建mongodb复制集
- mongoDB 的复制集 replication的搭建
- mongodb的复制集及搭建
- MongoDB的主从复制与复制集
- mongodb复制集的监控
- MongoDB复制集的概念
- mongodb复制集的实现
- MongoDB复制集环境搭建
- mongodb学习:复制集搭建
- 一个apk启动另一个apk的方法
- usaco第三题黑色星期五
- 从零开始学习jQuery (一) 开天辟地入门篇
- Android基础——属性动画赏析
- API笔记之java.nio.channels.Selector
- mongoDB的复制集1----复制集的特点、快速搭建复制集
- 从零开始学习jQuery (二) 万能的选择器
- python_wxPython 初探
- ubantu 使用总结
- 如何把一个普通的JAVA类变成一个webService服务
- API笔记之java.nio.channels.SelectionKey
- poj 3227 Mountains
- HDU 3415 Max Sum of Max-X-sub-sequence
- hive 学习笔记