MongoDB复制集的配置

MongoDB复制集的配置

  • mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
  • mongodb各个节点常见的搭配方式为:一主一从、一主多从。
  • 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

副本集特征:

  • N 个节点的集群
  • 任何节点可作为主节点
  • 所有写入操作都在主节点上
  • 自动故障转移
  • 自动恢复

在一台机器上部署三个节点的复制集

创建数据库和日志目录

  • 分别在 /var/lib/和 /var/log/下面创建三个文件夹,分别用来存放MongoDB的数据库和日志
cd /var/lib
mkdir mongodb1 mongodb2 mongodb3

cd /var/log
mkdir mongodb1 mongodb2  mongodb3

创建配置文件

  • 然后在 /etc/下面创建三个配置文件,mongodb1.cnf,mongodb2.cnf, mongodb3.cnf。
    将下面内容添加进去 三个配置文件均要添加,bind_ip和replSet 需要一致
    vi mongodb1.cnf
journal=true
bind_ip=127.0.0.1
port=27018
httpinterface=true
rest=true
dbpath=/var/lib/mongodb1
fork=true
logpath=/var/log/mongodb1/mongodb1.log
profile=1
slowms=1
replSet=hxf

vi mongodb2.cnf

journal=true
bind_ip=127.0.0.1
port=27019
httpinterface=true
rest=true
dbpath=/var/lib/mongodb2
fork=true
logpath=/var/log/mongodb2/mongodb2.log
profile=1
slowms=1
replSet=hxf

vi mongodb3.cnf

journal=true
bind_ip=127.0.0.1
port=27020
httpinterface=true
rest=true
dbpath=/var/lib/mongodb3
fork=true
logpath=/var/log/mongodb3/mongodb3.log
profile=1
slowms=1
replSet=hxf
  • 参数:
    bind_ip:mongodb 所绑定的ip地址
    port:mongodb进程所使用的端口号,默认为27017
    dbpath:数据存放目录
    logpath:日志存放路径
    replSet:replica set的名字
    fork:以后台方式运行进程
    smallfiles:当提示空间不够时添加此参数
    oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%

启动mongodb

  • 进入到/usr/bin下面
cd /usr/bin   
./mongod -f /etc/mongodb1.cnf
./mongod -f /etc/mongodb2.cnf
./mongod -f /etc/mongodb3.cnf
  • 出现如下提示说明启动成功
about to fork child process,waiting until server is ready for connection.
forked process:7189
child process started successfully.parent exiting

连接到MongoDB

  • 可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb。
./mongo 127.0.0.1:27018   #ip和port是某个节点的地址

配置文件变量:

 cfg={"_id":"hxf",
"members":[{"_id":0,"host":"127.0.0.1:27018"},
{"_id":1,"host":"127.0.0.1:27019"},
{"_id":2,"host":"127.0.0.1:27020"}]}

初始化:

rs.initiate(cfg)
{ok:1} #1表示成功

查看复制集状态

hxf :prtmary>   rs.status()

你可能感兴趣的:(MongoDB)