设为首页 收藏本站
查看: 1434|回复: 0

[经验分享] MongoDB学习笔记(五)--复制集 && sharding分片

[复制链接]

尚未签到

发表于 2015-7-7 07:48:16 | 显示全部楼层 |阅读模式
  主从复制                                                                                       


  • 主从节点开启
  主节点的设置,只需要在某一个服务启动时加上 –master 参数 ,而从节点加上 –slave 和 –source 参数,即可实现同步。
DSC0000.png
DSC0001.png
  所有的从节点都从主节点复制内容。目前还没有能从从节点复制的机制,原因是从节点没有保存自己的oplog。


  • 添加及删除源
  添加从节点可以在开启的时候不添加源,可以向source集合中添加主节点信息。



use local
db.sources.insert({"host":"192.168.126.148:10000"})
  删除。



db.sources.remove({"host":"192.168.126.148:10000"})
  复制集                                                                                       


  • 部署复制集
DSC0002.png
DSC0003.png
  使用 –replSet 是用来让服务器知道在这个replcopy复制集中还有别的伙伴,位置在 IP : PORT 。


  • 初始化复制集
  启动之后,日志就会告诉我们复制集还没有进行初始化,因为还差最后一步,在shell中初始化复制集。
DSC0004.png
DSC0005.png


  • 复制集中的节点
  节点(非仲裁节点)都有优先权。优先权为0则是被动节点,不能成为活跃节点。优先值不为0,则按照由大到小选出活跃节点,如果优先值一样的话,就看谁的数据比较新。如果有两个优先值为1,一个为0.5的节点,那么优先值为1的两个服务器就必须比较谁的数据比较新,数据新的成为活跃节点。而0.5的节点,只有在前两个节点都不能用时才能成为活跃节点。



>members.push({
..."_id":3,
..."host":"192.168.233.1:27017",
..."priority":50
...})
  修改priority键来完成标准节点和被动节点。



>members.push({
..."_id":3,
..."host":"192.168.233.1:27017",
..."arbiterOnly":true
...})
  arbiterOnly键可以指定仲裁节点。
  备份节点会从活跃节点抽取oplog,并执行操作。活跃节点写操作到自己的本地oplog,这样就能成为活跃节点了。oplog中的操作包含严格递增的序号,通过这个序号来判断数据的时效性。


  • 主从配置信息
DSC0006.png


  • 读写分离
  写数据
DSC0007.png
  读数据
DSC0008.png
  从从数据库中读取数据报错,只要执行db.getMongo().setSlaveOk()命令后,便可查询从数据库了。


  • 增加节点
  第一种方法是通过oplog来增加节点。
DSC0009.png
  数据库系统自动进行初始化、数据同步。
  第二种方法是通过数据库快照(—fastsync)和oplog增加节点



mongo --dbpath=../dbs/node3 --logpath=../logs/node3.log --port 27017 --replSet replcopy/192.168.126.143:27017 --fastsync
  再将节点添加到复制集。
DSC00010.png


  • 删除节点
DSC00011.png


  • 主从操作日志oplog
DSC00012.png


  • 阻塞复制
  可以用getLastError的w参数来确保数据的同步性,运行getLastError会进入阻塞状态,直到N个服务器复制了最新的写入操作为止。



>db.runCommand({"getLastError":1,"w":N})
  分片                                                                                             


  • 片键
  在设置分片时,需要从集合中选择一个键,用该键的值作为拆分数据的依据。加入选择人员的名字name作为片键,那么第一片可能就会存放名字以A~H开头的文档,第二片存名字以I~P开头的文档,依次下去。


  • 建立分片
  建立分片需要3个角色。
  1、Shard Server
  存储数据的分片
  2、Config Server
  存储所有Shard节点的配置信息。
  3、mongos
  客户端接入Shard的一个前端路由器。
  服务器信息:
  Shard Server 1:20000
  Shard Server 2:20001
  Config Server : 30000
  Route Process : 40000


  • 启动 Config Server 配置服务器
DSC00013.png


  • 启动mongos路由
DSC00014.png


  • 启动shard Server服务器
DSC00015.png
DSC00016.png


  • 配置Sharding
DSC00017.png
  首先是添加端口20000和20001的片,其次设置分片存储数据库,设置分片的集合名称,且必须指定shard key(这里是_id),系统会自动创建索引。


  • 验证sharding正常工作
DSC00018.png
  查看磁盘上的物理文件情况。
DSC00019.png
  表名test.personalinfo已经被分片处理了,但是通过mongos路由并感觉不到数据存放在哪个shard的chunk上的。


  • 列出所有的shard Server
DSC00020.png


  • 查看Sharding信息
DSC00021.png


  • 判断是否是Sharding
DSC00022.png
  
  
  
  《MongoDB学习笔记(四)--索引 && 性能优化》 传送门 http://www.iyunv.com/yydcdut/p/3563704.html

  《MongoDB学习笔记(六)--复制集+sharding分片 && 总结》 传送门  http://www.iyunv.com/yydcdut/p/3566489.html
  转载请注明出处:http://www.iyunv.com/yydcdut/p/3564470.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83884-1-1.html 上篇帖子: SQLServer数据导入Mongodb 下篇帖子: Allan 译 The Little MongoDB Book (Getting Started)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表