MongoDB复制.ppt_第1页
MongoDB复制.ppt_第2页
MongoDB复制.ppt_第3页
MongoDB复制.ppt_第4页
MongoDB复制.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MongoDB复制,M Replication,丁亚光 火花无线,三种实现形式,Master Slave Replica Pairs Replica Sets,主从复制(Master Slave),主,从,从,从,工作方式: 1.一个主节点写入 2.多个从节点复制数据,并承担读任务 优点: 1.读写分离,提高负载能力 2.数据备份 3.搭建容易 缺点: 1.主节点宕机,系统不可用,主从复制(Master Slave),如何搭建MongoDB的主从,主节点 bin/mongod -master -dbpath /data/db1 从节点 bin/mongod -slave -source 127

2、.0.0.1:20010 -dbpath /data/db2,复制集(Replica Sets),复制集可以看做是升级版的Master Slave 增加了自动恢复的功能: 当主节点宕机的时候,会从从节点中重新选举出一个主节点。当旧主节点恢复的时候,可以重新加入复制集,成为从节点。,复制集(Replica Sets),复制集优点(特性),1.数据冗余 (Data Redundancy) 2.自动恢复 (Automated Failover) 3.分离读压力 (Distributing read load) 4.维护简单 (Simplify maintenance) 5.灾难恢复 (Disaste

3、r recovery),如何搭建复制集 (1.启动),启动三台mongod mongod -port 20010 -dbpath /srv/mongodb/db1 -replSet huohuaSet mongod -port 20011 -dbpath /srv/mongodb/db2 -replSet huohuaSet mongod -port 20012 -dbpath /srv/mongodb/db3 -replSet huohuaSet,进入其中一台monog shell config = _id:huohuaSet, members: _id:0,host:127.0.0.1:2

4、0010,priority:9, _id:1,host:127.0.0.1:20011,priority:7, _id:2,host:127.0.0.1:20012,priority:0 rs.initiate(config),如何搭建复制集 (2.初始化),复制集 的配置存贮在 local 的 system.replset,复制集初始化之后,配置会在各个节点之间传递,如何搭建复制集 (3.查看状态),如何搭建复制集 (3.查看状态),如何搭建复制集 (3.添加删除节点 ),在运行中添加新的节点可能会出现,这个节点一直是recovering的情况,错误代为RS102,因为一般的同步操作是通过o

5、plog(操作日志)来进行同步的,这个在local库里面,是一个capped 集合,定长循环的表。所以如何这个oplog不完整了(旧的被覆盖),就不能通过这个进行同步了,所以需要全库恢复。 方法1:删除新节点的所有数据(数据文件夹下),重启之后会自动fully recover 方法2:拷贝其他节点的数据文件,如何搭建复制集 (4.故障恢复 ),故障发生:主节点宕机,会有从节点自动接手,如何搭建复制集 (4.故障恢复 ),修复异常关闭的机器,binmongod -dbpath C:mongodb2.2datadb -repair,启动数据库,如何搭建复制集 (4.故障恢复 ),复制集 维护 (常

6、用命令),rs.initiate(config) rs.conf() 获取当前配置 rs.reconf(config) rs.add(“127.0.0.1:20011”) rs.remove(“127.0.0.1:20011”) rs.stepDown() 主节点降阶 rs.status() db.isMaster() 利用rs.help()查看更多,使用驱动连接复制集(pymongo),区别就是 host传一个list进去,驱动会自动识别哪个是master, slave_okay=True 表示子节点是否可以执行查询 con = Connection(host=127.0.0.1:20010

7、,127.0.0.1:20011,127.0.0.1:20012, slave_okay=True),当host列表里面没有主节点而且,slave_okay 为False的时候,查询会报错,当host列表里面没有主节点,而且slave_okay 为True的时候,查询OK,当host列表里面没有主节点而且,插入会失败但是并不会报错(而且会返回一个ObjectId,看起来似乎成功了),需要指定safe=True,可以看到非master,不能插入,当host列表里面有主节点,插入会OK,使用驱动连接复制集(Java),Mongo m = new Mongo(Arrays.asList( new ServerA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论