Mongodb复制集
2018-07-15 12:26
288 查看
Mongodb复制集简介
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
客户端在主节点写入数据,在从节点读取数据,主节点和从节点进行数据交互保证数据一致性,如果其中一个节点出了故障,其他发节点马上将业务接过来无需停机操作
复制集的优势
让数据更安全
搞数据可用性
灾难恢复
无停机维护(如备份,重建索引,故障转移)
读缩放(额外的副本读取)
副本集对应用程序是透明的
复制集的特点
N个几点的群集
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复
复制集部署
安装好的MongoDB
添加配置4个实例
点击:安装及实例添加教程
编辑4个实例的日志文件
启动所有实例
初始化配置复制集
确定节点上没有数据
增加和删除节点
配置启动复制集后可以通过 rs.add() 和rs.remove() 来增加和删除节点
rs.add("192.168.233.128:27020") //增加节点
rs.status()
rs.remove("192.168.233.128:27020") //删除节点
MongoDB复制集的切换
当节点出现故障会自动切换到其他节点,管理员也可以手动切换
手动切换
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
客户端在主节点写入数据,在从节点读取数据,主节点和从节点进行数据交互保证数据一致性,如果其中一个节点出了故障,其他发节点马上将业务接过来无需停机操作
复制集的优势
让数据更安全
搞数据可用性
灾难恢复
无停机维护(如备份,重建索引,故障转移)
读缩放(额外的副本读取)
副本集对应用程序是透明的
复制集的特点
N个几点的群集
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复
复制集部署
安装好的MongoDB
添加配置4个实例
点击:安装及实例添加教程
# mkdir -p /data/mongodb/mongodb{2,3,4} //创建数据目录 # mkdir /data/mongodb/logs # touch /data/mongodb/logs/mongodb{2,3,4}.log //创建日志文件 # cd /data/mongodb/logs/ # chmod 777 *.log //赋予权限
编辑4个实例的日志文件
# cp -p /etc/mongod.conf /etc/mongod2.conf # vim /etc/mongod2.conf path: /data/mongodb/logs/mongodb2.log //每个实例指定自己日志目录 dbPath: /data/mongodb/mongodb2 //每个实例指定自己的数据目录 port: 27018 //指定端口分别为27017、 27018、 27019 、 27020 ....... replication: //开启所有实例的复制参数:定义一个 replSetName: kgcrs replSetName: kgcrs
启动所有实例
# mongod -f /etc/mongod.conf # mongo --port 27017 # mongod -f /etc/mongod2.conf # mongo --port 27018 # mongod -f /etc/mongod3.conf # mongo --port 27019 # mongod -f /etc/mongod4.conf # mongo --port 27020 # netstat -ntap | grep mongod
初始化配置复制集
确定节点上没有数据
# mongo //进入实例 > show dbs > rs.status() //查看复制集状态 > cfg={"_id":"kgcrs","members":[{"_id":0,"host":"192.168.233.128:27017"},{"_id":1,"host":"192.168.233.128:27018"},{"_id":2,"host":"192.168.233.128:27019"}]} // 定义cfg初始化参数 id 是之前配置文件里定义的,成员(3个 id分别定义 0 1 2 IP端口号27017、27018、27019) > rs.initiate(cfg) //启动复制集 > rs.status() //查看此时可以查看到复制状态了
增加和删除节点
配置启动复制集后可以通过 rs.add() 和rs.remove() 来增加和删除节点
rs.add("192.168.233.128:27020") //增加节点
rs.status()
rs.remove("192.168.233.128:27020") //删除节点
MongoDB复制集的切换
当节点出现故障会自动切换到其他节点,管理员也可以手动切换
# ps aux | grep mongod
# kill -9 61070 //关闭主节点 复制集会自动切换 > rs.status() //查看
手动切换
kgcrs:PRIMARY> rs.freeze(30) //PRIMARY暂停30s不参与选举 kgcrs:PRIMARY> rs.stepDown(60,30) //交出主节点位置,维持从节点状态不少于60秒,等待30秒使主节点和从节点日志同步
相关文章推荐
- MongoDB基础之九 replication复制集
- mongodb-主从复制
- MongoDB主从复制实验 master/slave
- MongoDB -- 复制集搭建
- mongoDB3.4主从复制实现(第一种情况亲测)
- 8天学通MongoDB——第五天 主从复制
- mongodb 复制集
- MongoDB主从复制与分片技术,和运维技术的状态查询
- 配置mongodb复制集时遇见的坑
- mongoDB的复制集1----复制集的特点、快速搭建复制集
- MongoDB分布式设计-主从复制,副本集
- PHP环境搭建(10)----mongoDB复制集搭建
- mongoDB的复制集4----复制集监控(状态查看)
- MongoDB主主复制介绍(转)
- MongoDB:mongodb的主从复制(二) 副本集
- 学习MongoDB--(9-2):复制(主从复制--进阶)
- Mongodb复制集切换时设置复制集成员优先级
- MongoDB复制集
- 【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(三)
- MongoDB复制集成员及状态转换