随笔分类 -  --400 MongoDB

摘要:(一)分片方式 MongoDB提供了基于哈希(hashed)和基于范围(Range)2种分片方式: (1.1)哈希分片哈希分片使用hash索引来在分片集群中对数据进行划分。哈希索引计算某一个字段的哈希值作为索引值,这个值被用作片键。哈希分片以减少定向操作和增加广播操作为代价。分片集群内的数据更加均衡 阅读全文
posted @ 2021-01-17 18:18 gegeman 阅读(4048) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们基本了解了分片的概念,本文将着手实践,进行分片集群的搭建 首先我们再来了解一下分片集群的架构,分片集群由三部分构成: mongos:查询路由,在客户端程序和分片之间提供接口。本次实验部署2个mongos实例 config:配置服务器存储集群的元数据,元数据反映分片集群的内所有数据 阅读全文
posted @ 2021-01-16 14:08 gegeman 阅读(5042) 评论(2) 推荐(1) 编辑
摘要:(一)分片的由来随着系统的业务量越来越大,业务系统往往会出现这样一些特点: 高吞吐量 高并发 超大规模的数据量 高并发的业务可能会耗尽服务器的CPU,高吞吐量、超大规模的数据量也会带来内存、磁盘的压力。 对于这类问题,解决系统增长的方法有2种:垂直扩展和水平扩展。 垂直扩展主要是增加单个服务器的资源 阅读全文
posted @ 2021-01-16 12:59 gegeman 阅读(1651) 评论(0) 推荐(0) 编辑
摘要:MongoDB数据库在安装包里提供了mongotop和mongostat工具,用于MongoDB数据库性能监控,这里我们来了解一下如何使用。 (一)mongotop mongotop提供了一种跟踪MongoDB实例mongod花费在读写数据上的时间的方法。mongotop提供每个集合级别的统计信息。 阅读全文
posted @ 2021-01-05 19:21 gegeman 阅读(597) 评论(0) 推荐(0) 编辑
摘要:(一)我的疑问在使用MySQL数据库binlog日志基于时间点恢复数据库时,我们必须要指定binlog的开始位置和结束位置,而在MongoDB里面,如果使用oplog进行恢复,只有oplogLimit参数,该参数信息如下--oplogLimit=[:ordinal] only include oplog entries before the provided Timestampo... 阅读全文
posted @ 2020-08-19 20:02 gegeman 阅读(1323) 评论(0) 推荐(1) 编辑
摘要:(一)MongoDB恢复概述对于任何数据库,如果要将数据库恢复到过去的任意时间点,否需要有过去某个时间点的全备+全备之后的重做日志。接下来根据瑞丽航空的情况进行概述:全备:每天晚上都会进行备份;重做日志备份:MongoDB只有开启主从复制或者副本集时才会开启重做日志,主从复制存放在local数据库下的“oplog.$main”集合中,复制集的日志存放在local数据库下的oplog.rs集合中,该... 阅读全文
posted @ 2020-08-18 21:41 gegeman 阅读(1212) 评论(0) 推荐(0) 编辑
摘要:(一)MongoDB恢复概述 对于任何类型的数据库,如果要将数据库恢复到过去的任意时间点,否需要有过去某个时间点的全备+全备之后的重做日志,MongoDB也不例外。使用全备将数据库恢复到固定时刻,然后使用重做日志追加全备之后的操作。 重做日志备份:MongoDB只有开启主从复制或者副本集时才会开启重 阅读全文
posted @ 2020-08-17 19:33 gegeman 阅读(724) 评论(0) 推荐(0) 编辑
摘要:(1)查看MongoDB的连接信息 db.serverStatus().connections 结果如下: { "current" : 233, "available" : 50967, "totalCreated" : NumberLong(191495) } 各个关键词的含义: current: 阅读全文
posted @ 2020-07-21 23:20 gegeman 阅读(5228) 评论(0) 推荐(1) 编辑
摘要:(一)用户管理(1)创建用户1.要添加用户,MongoDB提供了db.createUser()方法。添加用户时,可以为用户分配角色,授予权限。2.在数据库中创建的第一个用户应该具有管理其他用户的权限。3.添加用户时,可以在特定的数据库中创建该用户,该数据库是用户的身份验证数据库。用户可以在不同的数据 阅读全文
posted @ 2020-07-06 23:10 gegeman 阅读(3037) 评论(0) 推荐(0) 编辑
摘要:(一)oplog介绍 oplog是MongoDB数据库的操作日志,记录了MongoDB数据库的所有写操作,类似MySQL数据库的binlog日志。在MongoDB副本集中,oplog从主节点被复制到次级节点,通过次级节点对日志进行重做,实现次级节点与主节点数据一致。oplog日志保存在local.o 阅读全文
posted @ 2020-06-30 19:34 gegeman 阅读(2658) 评论(0) 推荐(0) 编辑
摘要:(一)查看副本集状态要查看副本集状态及每个成员的状态,可以连接到主节点,使用 rs.status() 命令查看: rstest:PRIMARY> rs.status() { "set" : "rstest", "date" : ISODate("2020-06-30T15:06:44.586Z"), 阅读全文
posted @ 2020-06-30 19:27 gegeman 阅读(878) 评论(0) 推荐(0) 编辑
摘要:(一)调整副本集节点的优先级(priority)priority属性的值会影响到主节点选举的时间以及结果,priority是一个浮点型数字,可以在0到1000之间设置,数字越高,优先级越高。 对于优先级,有一些默认规定: 非投票成员,priority必须为0; priority大于0的成员不能有0 阅读全文
posted @ 2020-06-30 19:18 gegeman 阅读(779) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们搭建了3个节点的副本集,集群信息如下: rstest:PRIMARY> rs.config() { "_id" : "rstest", "version" : 2, "protocolVersion" : NumberLong(1), "writeConcernMajorityJ 阅读全文
posted @ 2020-06-28 19:58 gegeman 阅读(1345) 评论(0) 推荐(0) 编辑
摘要:(一)主机信息操作系统版本:centos7 64-bit数据库版本 :MongoDB 4.2 社区版iphostname192.168.10.41 mongoserver1192.168.10.42mongoserver2192.168.10.43mongoserver3(二)副本集搭建过程首先需要在3台服务器上安装MongoDB软件,安装过程见:https://www.cnblogs.com... 阅读全文
posted @ 2020-06-23 20:39 gegeman 阅读(826) 评论(0) 推荐(0) 编辑
摘要:导读: 在之前的文章中(超链接),我们说了MongoDB现在已经不再推荐使用主从复制模式,而是推荐副本集,那么副本集究竟有什么优点呢?我们不妨来探索一下。 (一)副本集(replica set)概述 对于副本集,官方文档是这样定义的:副本集是一组mongod维护相同数据的实例,一个副本集包含多个数据 阅读全文
posted @ 2020-06-23 20:29 gegeman 阅读(959) 评论(0) 推荐(0) 编辑
摘要:(一)查询文档 查询文档可以使用以下方法 # 以非结构化的方式显示所有的文档 db.<collectionName>.find(document) # 以结构化的方式显示所有文档 db.<collectionName>.find(document).pretty() # 只返回一个文档(结构化方式) 阅读全文
posted @ 2020-06-18 18:50 gegeman 阅读(335) 评论(0) 推荐(0) 编辑
摘要:(一)插入文档 插入文档一共有3种方法,分别如下: # 插入一个或多个文档,如果是多个文档,用数组存放文档 db.<collectionName>.insert(document) # 插入1个文档 db.<collectionName>.insertOne(document) # 插入多个文档 d 阅读全文
posted @ 2020-06-18 18:39 gegeman 阅读(843) 评论(0) 推荐(0) 编辑
摘要:导读:MongoDB一直都不推荐使用主从复制方式进行数据同步,而是推荐复制集(replicate set),相对于主从同步,复制集有更多优秀的功能,如自动故障转移等,但是,既然MongoDB到4.2版本还保留着该功能,我们不妨探索一下。基础信息 IP地址 操作系统版本 数据库版本 作用 192.16 阅读全文
posted @ 2020-06-18 18:25 gegeman 阅读(4487) 评论(0) 推荐(1) 编辑
摘要:(一)创建集合MongoDB的集合相当于关系型数据库的表,不过在创建集合时,执行指定集合名称与选项即可,无需指定类似RDBMS的列名。创建集合的语法为:db.createCollection(name,option)其中,name是集合的名称,option是集合的配置选项。option参数是可选的, 阅读全文
posted @ 2020-05-30 20:20 gegeman 阅读(1250) 评论(0) 推荐(0) 编辑
摘要:1.MongoDB使用use <DATABASE_NAME>来创建数据库,如果指定的数据库不存在,则创建数据库,否则进入现有的数据库。 > use lijiamandb switched to db lijiamandb 2.要确认当前数据库,使用db命令 > db lijiamandb 3.要查看 阅读全文
posted @ 2020-05-30 20:08 gegeman 阅读(821) 评论(0) 推荐(0) 编辑

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