MongoDB复制集概述
-
<李>复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了沉余添加了数据可用性,通过个复制集可以对硬件故障中断的服务进行恢复
<编辑>复制集的优势如下:编辑>
-
<李>让数据更安全。李>
<李>高数据可用性(24 * 7)李>
<李>灾难恢复李>
<李>无停机维护(如备份,索引重建,故障转移)李>
<李>读缩放(额外的副本读取)李>
<李>副本集对应用程序是透明的。
<编辑>复制集工作原理编辑> 李>
李
-
<李> N个节点群阶李>
<李>任何节点客作为主节点李>
<李>所有写入操作都在主节点李>
<李>自动故障转移李>
<李>自动恢复
<编辑>开始部署编辑> 李>
李
<代码>创建多实例//创建多实例 关闭防火墙setenforce//一些阻挡项目 mkdir - p/数据/mongodb/mongodb{2、3、4}//创建数据目录 mkdir/日志/到/数据/mongodb/创建日志文件目录 联系日志/mongodb {2、3、4}。日志//创建日志文件 cd/日志到目录下 chmod 777 *。日志//赋予权限//创建多实例配置文件,并开启服务 mongod - f/etc/mongod.相依——关闭//修改完主配置文件并且进行关闭在开启 mongod - f/etc/mongod.conf//挨个开启所有服务 进入默认的端口开启复制集 cp - p/etc/mongod.参看/etc/mongod2.conf//地二个实例配置文件 vim/etc/mongod2.conf 路径:/数据/mongodb/日志/mongod2。日志//系统日志存放路径 dbPath:/数据/mongodb/mongo//数据存放日志 端口:27018//端端口 mkdir - p/数据/mongodb///为其创建系统日志和数据存放日志没有目录 cd/数据/mongodb mkdir mongo mongod2联系。日志//为其创建系统日志文件 chmod 777 mongod2。日志//并且给与权限 mongod - f/etc/mongod2.conf//开启多实例服务 蒙戈——端口27018//进入mongodb 27018 netstat -ntap//产看进程 cfg={" _id ":“abc”、“成员”:[{" _id ": 0,“主机”:“192.168.10.5:27017”、“优先级”:100},{“_id”: 1、“主机”:“192.168.10.5:27018”、“优先级”:100}:{" _id ": 2,“主机”:“192.168.10.5:27019”、“优先级”:0}:{" _id ": 3,“主机”:“192.168.10.5:27020”、“arbiterOnly”:真正}]}//注意IP 优先级来判断 优先级:100//高的做为表准节点 优先级:0//低的就作为被动节点 arbiterOnly”:真正的//仲裁节点 rs.initiate (cfg)//初始化刷新之后就可以看到自己的身份了 rs.isMaster()//查看节点状态 基本的增删改查 db.t1.insert ({" id ": 1、“名称”:“汤姆”})//创建集合 db.t1.find()//查看当前数据 db.t1.update ({" id ": 2},{$设置:{“名称”:“杰克”}})//修改指定内容 db.t1.remove ({" id ": 1})//删除指定数据代码>
-
<李>模拟故障节点实验是否能自动抢占李>
<代码> show dbs//显示所有数据库 使用本地//进入存放日志文件的数据库 显示收藏//显示数据中的所有的集合 db.oplog.rs.find() #查看日志记录所有操作 模拟表准节点1故障 mongod - f/etc/mongod.相依——关闭#关闭一主节点服务看看是否别的mongoDB有没有抢占 蒙戈——端口27018 #此时会选举第二个标准节点为主节点 模拟标注节点2故障 mongod - f/etc/mongod2.相依——关闭#关闭第二主节点 蒙戈——端口27019 #此时被动节点不能成为主节点MongoDB复制集选举原理管理