MongoDB复制集搭建&主服务器模拟切换
2018-09-12 15:02
316 查看
前言
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
复制集优势如下
让数据更安全;
高数据可用性(7*24);
灾难恢复;
无停机维护(如备份、索引重建、故障转移);
读缩放(额外的副本读取);
副本集对应用程序是透明的。
一、实验环境
MongoDB复制结构图:
二、实验步骤
1.yum安装mongodb-org
2.创建mongodb多实例
3.配置复制集
4.增加和删除节点
5.主服务器模拟切换
三、实验内容
---------------------------------yum安装monggodb-org------------------
创建数据文件路径和日志文件
同理:mongod3.conf & mongod4.conf 如上所示进行修改
5b4
启动服务
------------------------------------------配置复制集-------------------------
初始化数据库前数据库中若存在内容则会丢失
-------------------------------------增加和删除节点--------------------------
模拟自动切换
"name" : "192.168.218.149:27018",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY", #27018选举成主服务器
模拟手动切换
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
复制集优势如下
让数据更安全;
高数据可用性(7*24);
灾难恢复;
无停机维护(如备份、索引重建、故障转移);
读缩放(额外的副本读取);
副本集对应用程序是透明的。
一、实验环境
MongoDB复制结构图:
二、实验步骤
1.yum安装mongodb-org
2.创建mongodb多实例
3.配置复制集
4.增加和删除节点
5.主服务器模拟切换
三、实验内容
---------------------------------yum安装monggodb-org------------------
vim /etc/yum.repos.d/mongodb.repo
[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc yum install mongodb-org -y修改配置文件中的监听地址
vim /etc/mongod.conf
net: port: 27017 bindIp: 0.0.0.0 #监听地址改为监听所有
systemctl start mongod.service----------------------------------创建mongodb多实例---------------------
创建数据文件路径和日志文件
mkdir -p /data/mongodb/mongodb{2,3,4} mkdir -p /data/mongodb/logs touch /data/mongodb/logs/mongodb2.log touch /data/mongodb/logs/mongodb3.log touch /data/mongodb/logs/mongodb4.log chmod 777 /data/mongodb/logs/*.log修改多实例的配置文件
vim /etc/mongod.conf
replication: replSetName: yandada #复制集名称在多实例中为同一名称
cp -p /etc/mongod.conf /etc/mongod2.conf cp -p /etc/mongod.conf /etc/mongod3.conf cp -p /etc/mongod.conf /etc/mongod4.conf
vim /etc/mongod2.conf
同理:mongod3.conf & mongod4.conf 如上所示进行修改
5b4
启动服务
mongod -f /etc/mongod.conf --shutdown mongod -f /etc/mongod.conf mongod -f /etc/mongod2.conf mongod -f /etc/mongod3.conf mongod -f /etc/mongod4.conf
------------------------------------------配置复制集-------------------------
[root@yandada3 mongodb2]#mongo >cfg={"_id":"yandada","members": [{"_id":0,"host":"192.168.218.149:27017"},{"_id":1,"host":"192.168.218.149:27018"},{"_id":2,"host":"192.168.218.149:27019"}]} >rs.initiate(cfg) #初始化数据库
yandada:PRIMARY> rs.status() #查看复制集状 1c7c 态注:
初始化数据库前数据库中若存在内容则会丢失
-------------------------------------增加和删除节点--------------------------
yandada:PRIMARY>rs.add("192.168.218.149:27020") #增加节点 yandada:PRIMARY>rs.remove("192.168.218.149:27020") #删除节点--------------------------------主服务器模拟切换------------------------------
模拟自动切换
mongod -f /etc/mongod.conf –shutdown
mongo --port 27018
rs.status()"_id" : 1,
"name" : "192.168.218.149:27018",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY", #27018选举成主服务器
模拟手动切换
yandada:PRIMARY>rs.freeze(30) 30s不参加选举 yandada:PRIMARY>rs.stepdown(60,30) 60s维持从服务器身份,30s进行同步
yandada:SECONDARY>
相关文章推荐
- 菜鸟研究微信小程序爬坑之旅,TLS版本,文件上传下载,本地https模拟服务器
- ExtJs模拟服务器数据来源
- 关于VC操作Office屏蔽掉“服务器正在运行中”要选择“切换到...”或"重试"的对话框
- Windows Server 2003搭建FTP服务器 实现盘符之间切换
- 使用socket模拟服务器给客户端发消息
- sock5系列之模拟tcp请求sock5服务器!(三)
- 模拟web服务器简单功能
- Vue中使用反向代理模拟http请求中host和referer,骗过Web服务器对请求的限制
- 【JSONP】通过nodejs做服务器简单模拟实现跨域请求
- 使用docker模拟并发访问服务器
- 足球应用模拟服务器
- 模拟php curl向远程服务器上传文件
- Windows Server 2012图形用户界面(GUI)和服务器核心(Server Core)之间的切换
- 微信服务器多公众号配置参数切换
- 切换svn服务器的时候,老是链接不成功
- 前端数据模拟服务器 gulp-connect 和 JSON Server
- [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求
- 备用NAP服务器RADIUS无线身份验证不通过,无线控制器时常Active / Block切换故障实例分析
- App开发:模拟服务器数据接口 - MockApi
- 使用Struts2框架搭建Android服务器,模拟用户登录