Mongodb副本集
2023-03-14 22:53:04 时间
mongodb doc
mongodb的端口
- mongod:27017
- http:28017
mongod命令的常用选项
- fork: 是否运行为后台进程
- bind_ip: 绑定的ip地址
- maxConns: 最大的连接数
- logpath: 设置日志的存储路径
- syslog: 设置是否为syslog来管理日志
- syslogFacility: 如果由syslog来管理日志,那么日志的级别是local1,local2…还是local7
- logappend: 日志滚动,就是把日志已追加的方式记录,而不是覆盖
- pidFile: 设置pid文件的存放路径
- keyFile: 指定集群中私钥通信文件的路径
- httpinterface: 是否启用restful风格的http接口来便捷查看mongodb运行的状态和统计数据28017
- nounixsock: 是否创建本地的socket文件
- auth: 通过认证方式访问mongodb
- repair: 指在数据库集群异常崩溃或者异常断电数据没有写入到系统文件时,需要此选项修复
- journal: 是否启用日志功能,该日志类似于事务日志,先把事务写成日志,然后在同步事务,把随机IO转换成顺序IO,单实例下一定要启用
- journalOptions: 日志选项
- journalCommitInterval: 日志的提交时间间隔
- replSet: 设置副本集名称
- cpu: 阶段性显示cpu和iowait的利用率
- slowms: 设置慢查询的临界值
- profile: 性能剖析选项,0表示关闭选项,1表示仅剖析慢查询操作,2表示剖析所有的操作
- oplogSize: 自定义oplog文件的大小
mongodb复制功能
master/slave
已经弃用
replica set副本集
集群自我修复,服务于同一数据集的多个mongodb实例
特点
- 每个节点的数据一致
- 只有一个节点提供写操作
- 多节点可以提供读操作
如何复制
- 主节点把数据修改操作保存至oplog中
- 从节点复制oplog文件然后回放文件中的事务
工作特性
- 至少三个节点,且应该为奇数节点,可以使用arbiter来参与选举
- heartbeat(2s),自动失效转移(通过选举方式实现)
复制集中节点的分类
- 0优先级节点: 又称为冷备节点,不会被选举成为主节点,但可以参与选举
- 被隐藏的从节点: 首先一定是一个0优先级的节点,但是对客户端以及任何mongodb集群状态显示软件不可见
- 延迟复制的从节点: 延迟一段时间复制主节点的数据,其数据的状态信息是”过期状态的”,落后与主节点一个规定时长,因此也是不能被选举成主节点
- arbiter: 没有数据,只是提供选举仲裁
mongodb的复制原理
OPLOG
- 存在与所有的副本集节点中(因为从节点有可能成为主节点的,对于从节点的oplog是不会自曾的)
- 每个节点上的oplog大小一致,一般为oplog所在分区的空闲分区的5%,如果没有1G,默认设置为1G,可自定义其大小
- oplog是具有冪等性的,同一个oplog可以在同一个节点上运行多次
- 存储oplog的是一个名为oplog.rs的collection
添加新mongodb节点的操作:
- 初始化同步
- 回滚追赶oplog
- 切片块迁移(sharding chunk migrations)
mongodb数据同步
mongosync
source | target |
---|---|
172.21.0.1:27017 | 172.21.0.31:27017 |
全量同步
mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456
增量同步
mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 --oplog -s 1369406664,1
全量和增量同步,实时同步
mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 --oplog
选择时间段同步
mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 --oplog -s 1369811325,1 -t 1369811373,1
备份参数
同步
bysync | Full sync | Inc sync |
---|---|---|
All dbs | Yes | Yes |
Specify one db(-d) | Yes | Yes |
Specify one coll(-d -c) | Yes | Yes |
Time range(-s -t) | Yes | Yes |
全量同步
from o | mongod | Replica sets | Sharding |
---|---|---|---|
mongod | Yes | Yes | Yes |
Replica sets | Yes( Pri or Sec) | Yes (Pri) | Yes |
Sharding | Yes | Yes | Yes |
增量同步
from o | mongod | Replica sets | Sharding |
---|---|---|---|
mongod | — | — | — |
Replica sets | Yes(Pri or Sec) | Yes(Pri) | Yes |
Sharding | Yes | Yes | Yes |
deploy replica set
- 创建数据存储目录
mkdir /data/mongo
- 启动mongod primary服务
mongod --dbpath /data/mogno1 --replSet rs0 --smallfiles --oplogSize 128
- 启动node1 mongod secondary1服务
mongod --dbpath /data/mongo2 --replSet rs0 --smallfiles --oplogSize 128
- 启动node2 mongod secondary2服务
mongod --dbpath /data/mongo3 --replSet rs0 --smallfiles --oplogSize 128
- 初始化replica set
mongo;rs.initiate()
- 添加副本节点
mongo;rs.add("node1:27017")
- 添加副本节点
mongo;rs.add("node2:27017")
相关文章
- 数据孤岛是业务效率的无声杀手
- 2023展望:新的一年将给大数据分析领域带来什么?
- 阿里云ADB基于Hudi构建Lakehouse的实践
- 大数据在医疗保健领域的使用案例
- 微软增加说明:KB5021751 更新扫描已经 / 即将过时 Office 过程中不会触碰用户隐私
- 2022 Gartner全球云数据库管理系统魔力象限发布 腾讯云数据库入选
- 场景化、重实操,分享一个实时数仓实践案例
- Arctic的湖仓一体践行之路
- 分布式计算MapReduce究竟是怎么一回事?
- 淘系数据模型治理优秀实践
- 大数据分析对医疗保健的影响
- 当我们说大数据Hadoop,究竟在说什么?
- 2022年及以后大数据的五个发展趋势
- 网易严选离线数仓治理实践
- 2023 年数据治理趋势
- 一份“靠谱”的年度经营计划,你学会了吗?
- 漫谈对大数据的思考
- 测试一下,读懂数据的能力,你有吗?
- 用艺术的眼光探索数据之美
- 聊聊数据分析成果如何落地