mongo 的 概念
mongo 的 部署
mongo 的使用
mongo 的运维
mongo 的文档 http://docs.mongoing.com/manual-zh/sharding.html
mongo 的复制集和分片
mongodb replica sets(复制集)
作用:提供了数据的冗余,增加了高可用
概念的梳理
复制集的概念
复制集是从传统的主从结构演变而来,是由一组拥有相同数据集的mongod实例所组成的集群。
复制集的特点:主是唯一的,当不是固定的,只有主节点可写,从节点只能读数据,当复制集中的节点只有
主节点时复制集会将主节点降级为从节点,则复制集将不再提供写服务,只可读
在复制集中有两类节点
数据节点和投票节点,数据节点:存储数据,可以充当主或则从节点,
投票节点:负责选举,不存储数据,不能充当主或则从节点。
安装和简单的启动一个mongo实例
具体的安装过程和简单可以到别人的博客里看下
进入bin目录
有这些 程序 之后 用 mongod 启动一个 mongod的server服务
./mongod -h
一些常用的配置
–port arg 默认27017,无论出于管理还是安全考虑都建议更改
–bind_ip arg 只监听这个绑定的ip
–logpath arg 日志路径
–logappend 日志追加
–pidfilepath arg 有利于脚本管理
–fork
–auth 开启验证
–slowms arg 开启慢查询日志
–profile arg 0=off 1=slow 2=all
–syncdelay arg 刷盘间隔
–oplogSize arg
–replSet arg 复制集名
[root@MiWiFi-R1CM bin]# ./mongod -f ../conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 13905
child process started successfully, parent exiting
这里的conf文件的配置之后会写
下面来部署一个复制集
新建并连接一台虚拟机
host1:192.168.31.219
[root@MiWiFi-R1CM ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.31.219 netmask 255.255.255.0 broadcast 192.168.31.255
inet6 fe80::a00:27ff:fe5f:664b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:5f:66:4b txqueuelen 1000 (Ethernet)
RX packets 67 bytes 10597 (10.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 50 bytes 11397 (11.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
填写配置文件 3个28001.conf ,28002.conf ,28003.conf 分别代表了3个实例监听在不同对应的端口 贴出28001中的配置
port=28001
bind_ip=192.168.31.219
dbpath=/usr/local/mongodb/data/28001/
logpath=/usr/local/mongodb/log/28001.log
logappend=true
pidfilepath=/usr/local/mongodb/data/28001/mongo.pid
fork=true
oplogSize=1024
replSet=gegege
启动这三个实例
[root@MiWiFi-R1CM bin]# numactl --interleave=all ./mongod -f ../conf/28001.conf
about to fork child process, waiting until server is ready for connections.
forked process: 2098
child process started successfully, parent exiting
[root@MiWiFi-R1CM bin]# ./mongod -f ../conf/28002.conf
about to fork child process, waiting until server is ready for connections.
forked process: 2121
child process started successfully, parent exiting
[root@MiWiFi-R1CM bin]# ./mongod -f ../conf/28003.conf
about to fork child process, waiting until server is ready for connections.
forked process: 2144
child process started successfully, parent exiting
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 883/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1456/master
tcp 0 0 192.168.31.219:28001 0.0.0.0:* LISTEN 2098/./mongod
tcp 0 0 192.168.31.219:28002 0.0.0.0:* LISTEN 2121/./mongod
tcp 0 0 192.168.31.219:28003 0.0.0.0:* LISTEN 2144/./mongod
创建3个客户端进行连接测试
先进入28001的client
> use admin
> rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "192.168.31.219:28001",
"ok" : 1
}
gegege:PRIMARY> rs.add('192.168.31.219:28002')
{ "ok" : 1 }
gegege:PRIMARY> rs.add('192.168.31.219:28003')
{ "ok" : 1 }
gegege:PRIMARY> rs.status()
{
"set" : "gegege",
"date" : ISODate("2017-01-15T06:48:07.306Z"