【MongoDB训练营】第六课:事务功能使用及原理介绍 答疑汇总

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: 【MongoDB训练营】第六课:事务功能使用及原理介绍 答疑汇总

1,复制集默认的事务是那种啊?之前主从arber的架构,从节点挂了后,有7-8小时都没有恢复,发现主节点也写不下去,停库也停不了,只能kill。这种情况应该怎么办
A:事务参数不填的话,readConcern默认是local,writeConcer默认是1,这样并不是保持acid的snapshot隔离,可以认为大致满足read recommited且不满足持久化,也就是说事务写的数据在ha切换后,会出现丢失
又问 “但是kill之后,再次起库的时候用了10个小时,发现之前的很多oplog 都没落盘,要回滚,这个是什么原因啊”
A;可能你的写是majority的写,因为arbiter不包含数据,所以写不进去。不建议使用arbiter,建议1个primary+ 2个secondary的架构,这样主库挂了,仍有2个节点有数据。
再问 ”但是kill之后,再次起库的时候用了10个小时,发现之前的很多oplog 都没落盘,要回滚,这个是什么原因啊“
A:majority的写,必须写到2个节点后,才能完成,所以数据都没写成功
最后 ”好的,生产还是有不少主从arbiter的架构,担心这个问题再次出现,应该怎么调整majority的写“
A:一定要用主从arbiter的架构的话,那你的写最好用w:1,也就异步同步数据,主库奔溃的话,刚写的数据可能会丢一点

2,MongoDB副本集模式下,如果复制其中一个 节点的DB目录文件到其他新的3台机器上,是否可以独立使用这3台新机器组建一个副本集,而且不需要这3台机器间再去同步数据呢,因为他们本来的数据都是一样的?
前面的时候问过这个问题,老师说的是把新搭建的节点加入原来的集群里面,我是不能加入原来的集群里,只能用拷贝的这个DB目录新建一个副本集,是否可以?
A: 可以的,要以单节点的方式启动新机器上的数据,然后重新初始化为一个新副本集,配置文件里的一些ip port目录等配置参数要同步改一下
又问:这样的话,新副本集里面的新增加的节点岂不是要从这个单节点上同步数据吗,如果数据量有几百G,不是要很久吗?
A:新副本集的第一个阶段初始化好后,你再拷贝这个新节点的数据到其它2个机器上,再组件副本集,
第一个阶段 = 第一个节点, 新副本集的第一个阶段初始化好后,你再拷贝这个新节点的数据到其它2个机器上,再组件副本集
再问:用从原来的老副本集里拷贝的DB目录数据文件去启动节点不行,是吗?为什么呢?
A:应该也可以,你三个节点都以standby启动,然后再组建副本集

3,老师,我现在如果扩容一个数据节点就是 4个节点副本集运行,过几天变更的时候再踢掉投票节点,4个节点运行会不会有问题啊
A: 4个节点不会有问题的,就是高可用的效果跟3个节点一样
又问:4个节点选举不会出现问题吧,一般不是奇数个节点吗
A: 不会有问题,偶数节点相当于一个节点的数据浪费了,所以一般是奇数节点

相关实践学习
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
目录
相关文章
|
1月前
|
缓存 NoSQL 关系型数据库
|
2月前
|
存储 运维 负载均衡
MongoDB详解(二)——MongoDB架构与原理
MongoDB详解(二)——MongoDB架构与原理
39 2
|
4月前
|
存储 人工智能 NoSQL
MongoDB推出高级数据管理功能,实现随处可运行应用程序
借助MongoDB Atlas for the Edge,企业不仅可以安全地存储数据,还可以跨越不同数据源和目的地实时同步数据,从而提供具有高可用性、高弹性和高可靠性的应用程序
|
5月前
|
NoSQL 测试技术 API
Eolink Apikit 版本更新:「数据字典」功能上线、支持 MongoDB 数据库操作...
Eolink Apikit 版本更新: 1. 搭建自定义接口协议架构,支持快速适配金融行业各类型私有协议的导入、编辑和展示。 2. 数据字典功能上线,支持以数据字典的形式管理参数枚举值。 3. 数据库连接支持 MongoDB 数据库操作。 4. 基于 Apikit 类型导入 API 数据支持增量更新。
32 0
|
7月前
|
存储 缓存 NoSQL
MongoDB基础及原理介绍
MongoDB基础及原理介绍
307 0
|
8月前
|
存储 NoSQL MongoDB
图解MongoDB集群部署原理(3)
MongoDB的集群部署方案中有三类角色:实际数据存储结点、配置文件存储结点和路由接入结点。
110 0
|
8月前
|
NoSQL Java API
Springboot MongoDB 事务
Springboot MongoDB 事务
408 0
|
10月前
|
数据可视化 前端开发 NoSQL
【BackEnd】SpringBoot整合MongoDB实现登录注册功能(适合初学者)
该项目使用SpringBoot2.7+MongoDB实现的登录注册Demo,可作为启动项目的BaseLine
232 0
|
10月前
|
NoSQL MongoDB 数据库
【MongoDB基础原理】Change Streams 生产建议
MongoDB从3.6版本开始提供了Change Stream特性,通过该特性,应用程序可以实时的订阅特定集合、库、或整个集群的数据变更事件,相比该特性推出之前通过监听oplog的变化来实现对数据变更的感知,非常的易用,该特性同时支持副本集和集群场景。
【MongoDB基础原理】Change Streams 生产建议
|
12月前
|
存储 传感器 缓存
MongoDB 功能详解之时间序列集合(Time Series Collections)
时间序列集合(Time Series Collections):MongoDB 5.0 版本中的新功能。

相关产品

  • 云数据库 MongoDB 版