mongodb的部署配置

2019-05-28  本文已影响0人  epiiplus1equal0

[TOC]

1. mongod启动时常用选项

--fork={true|false}: mongod是否在后台运行

--bind_ip=IP: 指定监听地址, 不启动时默认监听本机所有地址

--port=PORT: 指定监听端口

--maxConns=NUM: 并发最大连接数

--logpath arg: 日志路径

--logappend: 日志滚动, 添加而不是覆盖

--pidfilepath arg

--keyFile arg: 实现集群关系认证时的私钥文件位置

--setParameter arg

--httpinterface: enable http interface

--repair: 突发情况中断数据库, 可用此选项修复

--journal: 激活事务日志 (单实例必须开启)

--journalCommitInterval arg: 提交日志间隔

调试选项 (消耗资源, 除非必要否则不开启):

--cpu

--slowms arg (=100): 慢查询

--profile arg: 性能剖析, 0=off, 1=slow (仅剖析慢查询), 2=all (剖析所有查询操作)

2. mongodb的复制

两种类型的复制:

​ master/slave

​ replica set: 副本集 (自动故障转移)

​ 服务于同一个数据集的多个mongodb实例, 主节点将数据修改操作保存至oplog中

​ arbiter: 仲裁节点

​ 工作特性:

​ (1) 至少三个, 且应该为奇数个, 可使用arbiter来参与选举

​ (2) heartbeat (2s), 自动失效转移(通过选举方式)

​ 复制集中的特殊节点分类:

​ (1) 0优先级的节点: 冷备节点, 不会被选举成为主节点, 但可参与选举

​ (2) 被隐藏的从节点: 首先是个0优先级的节点, 且对客户端不可见, 但依然可以参与选举

​ (3) 延迟复制的从节点: 首先是个0优先级的节点, 且复制时间落后于主节点一个固定时长, 但依然可以参与选举

​ (4) aribter

mongodb的复制架构: oplog和heartbeat

​ oplog:实现复制过程的基础工具, 大小固定的文件存储在local数据库中, 大小为oplog所在文件系统的5%, 最小1G

​ 初始同步 (initial sync)

​ 回滚后追赶 (post-rollback catch-up)

​ 切分块块迁移 (sharing chunk migrations)

​ heartbeat: 心跳信息传递并触发选举

​ local: 存放副本集的所有元数据和oplog, 自己不参与复制过程, 用于存储oplog的是一个名为oplog.rs的collection, oplog.rs在加入副本集后第一次启动时被自动创建, 大小依赖于OS和文件系统, 启动服务是可自定义大小, --oplogSize arg 单位MB

​ mongodb的数据同步类型:

​ 1.初始同步:

​ 两种情形下会被触发:

​ 从节点没有任何数据, 但主节点已在运行

​ 节点丢失副本复制历史

​ 初始同步的步骤:

​ (1) 克隆所有数据库的所有collection

​ (2) 应用数据的所有改变: 复制oplog并应用在本地

​ (3) 为所有collection构建索引

​ 2.复制

vi /etc/mongod.conf
replSet=testSet
replIndexPrefetch=_id_only

service mongod start
mongo
>rs.help()
>rs.status()
>rs.initiate([cfg])
>rs.add("{hostname|ip}:port") # 注意字符串用引号引起来
>rs.isMaster()
>rs.slaveOk() # 开启此命令后从节点才可读数据
>rs.conf()
上一篇下一篇

猜你喜欢

热点阅读