博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb09----replicattion set--健壮性
阅读量:6859 次
发布时间:2019-06-26

本文共 3007 字,大约阅读时间需要 10 分钟。

 

 

replication set复制集replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性.一台是服务器出问题了另外2台还可以接收干,secondary平时保持只读状态,专心读取primary只做备份(类似于mysql数据库的主从分离),2台secondary相互也通信, 看看谁更健康,副本集:是一组保持着相同数据集合的mongod实例.其中1个mongod为primary,接收全部写操作,其余secodary只负责读操作primary instance打开oplog, secendary读取oplog,并产生相同的数据集Replication set 设置全过程( SecureCRT连接linux )0:创建目录 mkdir -p /data/r0 /data/r1 /data/r21:启动3个实例,且声明实例属于某复制集(3个进程都属于相同的复制集rsa)./bin/mongod --port 27017 --dbpath /data/r0 --smallfiles --replSet rsa --fork --logpath /data/r0/mongo17.log    //rsa 是复制集,smallfiles 减小文件./bin/mongod --port 27018 --dbpath /data/r1 --smallfiles --replSet rsa --fork --logpath /data/r1/mongo18.log./bin/mongod --port 27019 --dbpath /data/r2 --smallfiles --replSet rsa --fork --logpath /data/r2/mongo19.lognetstat –aon | findstr "27017"//进入/d/mongodb/bin开启gitbushmongod --dbpath ../data/r0 --logpath ../data/r0/r17.log --port 27017 --replSet rsa --smallfilesmongod --dbpath ../data/r1 --logpath ../data/r1/r18.log --port 27018 --replSet rsa --smallfilesmongod --dbpath ../data/r2 --logpath ../data/r2/r19.log --port 27019 --replSet rsa --smallfiles//以下在cmd中操作$ mongouse admin  //管理application set//直接运行下面代码var  rsconf = {  //2:配置文件(mongo都是js语言)    _id:'rsa',     //复制集的id叫rsa    members:    //复制集的成员    [        {_id:0,        host:'127.0.0.1:27017'        },        {_id:1,        host:'127.0.0.1:27018'        },        {_id:2,        host:'127.0.0.1:27019'        }    ]}//3: 根据配置做初始化rs.initiate(rsconf);{    "OK":1}5:查看状态rs.status();//已经配置成功了4: 添加节点,rsconf的members中添加,后期添加节点,rs.add('192.168.1.201:27018');rs.add('192.168.1.201:27019');6:删除节点rs.remove('192.168.1.201:27019');7:主节点插入数据>use test>db.user.insert({uid:1,name:'lily'});8:连接secondary查询同步情况./bin/mongo --port 27019,rs.slaveOk();>use test>show tables>db.user.find()rsa:SECONDARY> show tables;Sat Aug 17 16:03:55.786 JavaScript execution failed: error: { "$err" : "not master and slaveOk=false", "code" : 13435 } 8.1 出现上述错误,是因为secondary默认不许读写,只能secondary只和primary说话,不润许人和secondary说话>rs.slaveOk();   //>show tables>db.user.find()#看到与primary 一致的数据use admindb.shutdoenServer()  //断开primary,查看rs.status();可以看到secondary服务器自动变成primary,secondary不能insert,只能primary能写,现在连到primary(原来的secondary变成的primary)就能够写了。//原来17端口是主节点,18.19端口是次节点(次节点不能人来insert,只能与主节点同步),17down了后18自动变成了主节点(查看rs.status();),19仍然是次节点,18端口就可以人来写了,19仍然不能写(因为是次端口)。18插入新值之后19次节点就自动同步了,(17活了之后应该能同步新值)/写自动化脚本//清理现场if[$1 == 'reset']; then   //如果要重置环境,就杀掉进程,重置环境    pkill -9 mongo    //遗留的mongo进程杀掉    rm -rf /data/r*   //遗留的文件夹删掉fiif[$1 == 'repl'];thenIP=192.168.1.202NA=rs2   //集群名称mkdir -p /data/r0 /data/r1 /data/r2  //创建目录//启动3个复制集的实例/usr/local/mongodb/bin/mongod --dbpath /data/r0 --logpath /data/r0/r17.log --port 27017 --fork --smallfile --replSet ${NA}/usr/local/mongodb/bin/mongod --dbpath /data/r1 --logpath /data/r0/r18.log --port 27018 --fork --smallfile --replSet ${NA}/usr/local/mongodb/bin/mongod --dbpath /data/r2 --logpath /data/r0/r19.log --port 27019 --fork --smallfile --replSet ${NA}//配置/usr/local/mongodb/bin/mongod <

副本集与仲裁

 

转载地址:http://xfxyl.baihongyu.com/

你可能感兴趣的文章
C#设计模式:职责链模式(Chain of Responsibility)
查看>>
Knockout.js随手记(2)
查看>>
条件注释判断IE浏览器
查看>>
Hibernate,删除对象时错误。
查看>>
C#中Cookies的读取
查看>>
冬季养生进补20招
查看>>
20179311《网络攻防实践》第四周作业
查看>>
Getting Started
查看>>
《thinking in Java》第三章 控制程序流程
查看>>
node 模块 fs-extra
查看>>
《游戏引擎架构》笔记一
查看>>
pythoy-生成器
查看>>
Redis 分布式锁进化史
查看>>
Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
查看>>
Codeforces Round #547 (Div. 3) D
查看>>
(转)如何修正DIV float之后导致的外部容器不能撑开的问题
查看>>
Python全栈开发day9
查看>>
算法笔记 --- Insertion Sort
查看>>
子父表
查看>>
CUDA npp运动检测模块性能测试
查看>>