MongoDB学习笔记(五)--复制集 && sharding分片

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

MongoDB学习笔记(五)--复制集 && sharding分片

主从复制                                                                                      

  • 主从节点开启

主节点的设置,只需要在某一个服务启动时加上 –master 参数 ,而从节点加上 –slave 和 –source 参数,即可实现同步。

image

image

所有的从节点都从主节点复制内容。目前还没有能从从节点复制的机制,原因是从节点没有保存自己的oplog。

  • 添加及删除源

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

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

删除。

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

复制集                                                                                      

  • 部署复制集

image

image

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

  • 初始化复制集

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

image

image

  • 复制集中的节点

节点(非仲裁节点)都有优先权。优先权为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中的操作包含严格递增的序号,通过这个序号来判断数据的时效性。

  • 主从配置信息

image

  • 读写分离

写数据

image

读数据

image

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

  • 增加节点

第一种方法是通过oplog来增加节点。

image

数据库系统自动进行初始化、数据同步。

第二种方法是通过数据库快照(—fastsync)和oplog增加节点

mongo --dbpath=../dbs/node3 --logpath=../logs/node3.log --port 27017 --replSet replcopy/192.168.126.143:27017 --fastsync

再将节点添加到复制集。

image

  • 删除节点

image

  • 主从操作日志oplog

image

  • 阻塞复制

可以用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 配置服务器

image

  • 启动mongos路由

image

  • 启动shard Server服务器

image

image

  • 配置Sharding

image

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

  • 验证sharding正常工作

image

查看磁盘上的物理文件情况。

image

表名test.personalinfo已经被分片处理了,但是通过mongos路由并感觉不到数据存放在哪个shard的chunk上的。

  • 列出所有的shard Server

image

  • 查看Sharding信息

image

  • 判断是否是Sharding

image

 

 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3564470.html,如需转载请自行联系原作者

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
5月前
|
存储 NoSQL 前端开发
MongoDB 分片
10月更文挑战第17天
66 2
|
4月前
|
存储 NoSQL MongoDB
【赵渝强老师】部署MongoDB复制集
本文介绍了如何在单个节点上搭建MongoDB复制集环境,通过监听不同端口实现多节点配置。详细步骤包括创建数据目录、编辑配置文件、启动节点、初始化复制集、查看状态以及测试主从库的读写操作。文中还提供了视频讲解和代码示例,帮助读者更好地理解和操作。
|
4月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
6月前
|
存储 监控 NoSQL
*MongoDB的水平扩展主要通过分片技术实
*MongoDB的水平扩展主要通过分片技术实
81 5
|
6月前
|
存储 NoSQL 前端开发
MongoDB 分片总结
这篇文章总结了MongoDB分片的概念、集群结构、分片实例、配置和测试过程。
196 6
|
7月前
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
539 1
|
7月前
|
C# 开发者 Windows
全面指南:WPF无障碍设计从入门到精通——让每一个用户都能无障碍地享受你的应用,从自动化属性到焦点导航的最佳实践
【8月更文挑战第31天】为了确保Windows Presentation Foundation (WPF) 应用程序对所有用户都具备无障碍性,开发者需关注无障碍设计原则。这不仅是法律要求,更是社会责任,旨在让技术更人性化,惠及包括视障、听障及行动受限等用户群体。
163 0
|
25天前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
3月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
94 15
|
3月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板