随笔分类 -  MongoDB

学习和记录
摘要:今天在查看MongoDB分片集群时,发现MongoDB的分片功能没有真正用上。经分析,原来是我们在部署好MongoDB分片集群后,都是默认采用集合的_id作为索引,而没有重新新增索引,导致该集合没有真正地利用分片集群的功能。查阅官网资料,在MongoDB分片集群中,需要新增一些字段作为索引,除了_i 阅读全文
posted @ 2020-07-27 23:14 晒太阳的兔子很忙 阅读(137) 评论(0) 推荐(0) 编辑
摘要:在Java中操作MongoDB时会遇到分页查询数据的情况,此时我们可以按如下步骤来实现: 1、创建一个分页类 import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Page 阅读全文
posted @ 2020-06-24 14:19 晒太阳的兔子很忙 阅读(1506) 评论(0) 推荐(0) 编辑
摘要:在Java中使用MongoDB时若是通过这样的方式查询,在swagger接口中收到的结果可能会与期望不一致。 1、检索语句 mongoTemplate.find(query, Object.class, collectionName); 注意了,上述语句中是直接采用Object的类型。 2、单步调试 阅读全文
posted @ 2020-06-24 13:17 晒太阳的兔子很忙 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:1、mongo命令 用来连接MongoDB数据库。 上图中是连接mongos服务器,这里是指MongoDB路由服务器。 上图中是连接MongoDB分片集群的服务器,是MongoDB中实实在在存储数据的服务器。 2、db命令 查看当前数据库的名称。 在上图中通过use命令可以切换到指定的数据库。 3、 阅读全文
posted @ 2020-06-11 18:44 晒太阳的兔子很忙 阅读(13108) 评论(0) 推荐(0) 编辑
摘要:在Java操作MongoDB时想在inset后获取到数据库中_id的值,其实是可以在insert成功后直接获取到的,不过有点细节需要注意一下。下面直接结合示例代码来说明: (1)假设有这样一个实体类: public class TestDO { private String id; private 阅读全文
posted @ 2020-06-10 15:12 晒太阳的兔子很忙 阅读(3606) 评论(0) 推荐(0) 编辑
摘要:看到这个标题时先别慌,哈哈…… “3M”是我自个命名的简称,分别是mongo、mongod和mongos;有时候我们很容易弄混淆这三者的概念和作用,现对它们做个简单的区分描述。 (1)mongo:mongo是一个有关MongoDB的可交互的JS shell接口;对管理员和开发人员来说,在直接测试查询 阅读全文
posted @ 2020-06-06 23:04 晒太阳的兔子很忙 阅读(169) 评论(0) 推荐(0) 编辑
摘要:通常在排查MongoDB的性能时,我们首先想到的是MongoDB自身内置的两个监测命令工具:mongostat和mongotop,通过这两个命令的输出可以了解到当前MongoDB实例的读写情况,现介绍它们的使用,环境为linux环境。 1、mongostat命令 在运行mongod实例的linux机 阅读全文
posted @ 2020-06-04 23:49 晒太阳的兔子很忙 阅读(3128) 评论(0) 推荐(0) 编辑
摘要:在MongoDB中进行批量操作(包括插入、更新、删除)时,有时候数据的处理并不是我们想象中的那样,其实MongoDB对批量操作是有个隐含的限制条件,即它每次批量操作的最大数量是1000,也就是说每组数量的上限是1000;若是批量操作的数量超过了1000的话,那么MongoDB会自动拆分多个分组,每组 阅读全文
posted @ 2020-06-01 23:07 晒太阳的兔子很忙 阅读(212) 评论(0) 推荐(0) 编辑
摘要:(1)Arbiter节点——只参与投票,不能被选举为Primary,并且不从Primary同步数据;它本身不存储数据,是非常轻量级的服务;从3.6版本起,Arbiter必须设置Priority为0。推荐在生产库中尽量不要使用Arbite节点。 (2)Priority节点——选举优先级为0,不会被选举 阅读全文
posted @ 2020-03-15 21:43 晒太阳的兔子很忙 阅读(167) 评论(0) 推荐(0) 编辑
摘要:副本集中次要成员同步或者复制来自其他成员的数据,MongoDB使用两种形式的数据同步: 新成员的初始同步 已有成员之间的持续复制 多线程批量写入,以提高并发性; MMAPv1引擎以namespace(MMAPv1引擎)为groups,WiredTiger引擎以文档ID(WiredTiger引擎)为g 阅读全文
posted @ 2020-03-10 22:43 晒太阳的兔子很忙 阅读(162) 评论(0) 推荐(0) 编辑
摘要:(1)主库 Primary节点是副本集中唯一成员接受写入操作,而副本集中所有的成员都可以接受读取操作,但是在默认的情况下,应用程序将其读取操作指向Primary节点; 副本集中有且只有一个Primary节点,该节点宕机后集群会触发选举以选出新的Primary节点; MongoDB在Primary节点 阅读全文
posted @ 2020-03-09 22:54 晒太阳的兔子很忙 阅读(180) 评论(0) 推荐(0) 编辑
摘要:oplog的含义,中文的意思是操作日志,它是一个特殊的固定集合,保存了数据库中所有的数据变化记录。 oplog的作用:MongoDB在Primary上应用数据库操作,然后在Primary上使用oplog记录操作,Secondary节点异步复制并应用这些操作。 oplog的位置:所有副本集成员都在lo 阅读全文
posted @ 2020-03-08 22:48 晒太阳的兔子很忙 阅读(705) 评论(0) 推荐(1) 编辑
摘要:Secondary初次同步数据时,会先进行init sync 操作,从Primary(或其它数据更新的Secondary)同步全量数据,然后不断通过tailable cursor从Primary的local.oplog.rs集合里查询最新的oplog并应用到自身。 假设复制集内投票成员的数量为N,则 阅读全文
posted @ 2020-03-05 22:44 晒太阳的兔子很忙 阅读(398) 评论(0) 推荐(0) 编辑
摘要:成员状态和说明 状态名称 状态描述 STARTUP 还不是任何集合的活动成员,所有的成员在该状态启动,在StartUp状态,mongod解析副本集配置文档 PRIMARY 处于Primary状态的成员是唯一能接收写操作的成员 SECONDARY 处于Secondary状态的成员复制数据存储 RECO 阅读全文
posted @ 2020-03-04 22:51 晒太阳的兔子很忙 阅读(295) 评论(0) 推荐(0) 编辑
摘要:当Primary节点连续10秒无法和其余节点通信时,从库将发生选举,在从库中选出一个库作为新的主库。第一个发起选举并且获得了大多数成员投票的Secondary节点,将成为主节点。 MongoDB 3.2版本中新增了这样的一个功能:MongoDB引入了复制协议版本1(protocolVersion:1 阅读全文
posted @ 2020-03-03 23:01 晒太阳的兔子很忙 阅读(178) 评论(0) 推荐(0) 编辑
摘要:MongoDB数据库核心的两个特点:第一个特点是副本集的自动切换,保证数据的高可靠、服务的高可用;第二个特点是自动分片、服务的横向扩展能力。 (一)副本集架构 MongoDB的副本集是一组保持相同数据集的mongod进程,副本集提供冗余和高可用性,这两个特性是所有生产部署的基础。 1、复制:复制提供 阅读全文
posted @ 2020-02-27 21:27 晒太阳的兔子很忙 阅读(464) 评论(0) 推荐(0) 编辑
摘要:(一)备份 1、逻辑备份 利用mongodump命令实现逻辑备份,如: mongodump -h 127.0.0.1:28000 -u sys_admin --authenticationDataBase admin -p PASSWORD -d databasename -c collection 阅读全文
posted @ 2020-02-26 21:54 晒太阳的兔子很忙 阅读(419) 评论(0) 推荐(1) 编辑
摘要:MongoDB3.6版新特性如下: (1)Default Bind to Localhost 从3.6版本开始,在默认情况下,MongoDB二进制文件mongod和mongos绑定到localhost(127.0.0.0)上。如果在二进制文件中设置了--ipv6选项或者在配置文件中配置了net.ip 阅读全文
posted @ 2020-02-25 21:36 晒太阳的兔子很忙 阅读(823) 评论(0) 推荐(0) 编辑
摘要:initial sync过程大致如下: (1)T1时间,从Primary同步所有数据库的数据,但不包括local的数据,复制时Mongo会扫描每个源数据库中的每个集合,并将所有数据插入对应的集合。通过listDatabases+listCollections+cloneCollection命令组合完 阅读全文
posted @ 2020-02-24 20:49 晒太阳的兔子很忙 阅读(760) 评论(0) 推荐(0) 编辑
摘要:先说明一下mongod和mongos的含义:mongod是MongoDB系统的主要后台进程,它处理数据请求、管理数据访问和执行后台管理操作;该命令的命令行选项主要用于测试,在场景操作中,使用配置文件选项来控制数据库的行为。mongos就是"MongoDB Shard"的简写,它是一个针对MongoD 阅读全文
posted @ 2020-02-23 22:38 晒太阳的兔子很忙 阅读(799) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示