MongoDB复制集架构搭建

Posted 领域见识决定专业高度

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB复制集架构搭建相关的知识,希望对你有一定的参考价值。

创建目录

mkdir -p /data/r0 /data/r1 /data/r2

声明实例

./bin/mongod --port 27017 --dbpath /home/workspace/data/r0/ --smallfiles --replSet rsa --fork --logpath /home/workspace/logs/mongo0.log
./bin/mongod --port 27018 --dbpath /home/workspace/data/r1/ --smallfiles --replSet rsa --fork --logpath /home/workspace/logs/mongo1.log
./bin/mongod --port 27019 --dbpath /home/workspace/data/r2/ --smallfiles --replSet rsa --fork --logpath /home/workspace/logs/mongo2.log

增加配置

rsconf = {
_id:‘rsa’,
members:
[
{_id:0,
host:‘192.168.87.131:27017’
},
{_id:1,
host:‘192.168.87.131:27018’
},
{_id:2,
host:‘192.168.87.131:27019’
}
]
}
rs.initiate(rsconf);

测试

  • 连接子节点 :./bin/mongo --port 27017
  • use test
  • db.test.user({uid:1,name:‘liliy’})
  • 切换到从库 :./bin/mongo --port 27019
  • use test
  • show tables: Error: listCollections failed: { “note” : “from execCommand”, “ok” : 0, “errmsg” : “not master” }
  • rs.slaveOk();
  • show tables

MongoDB中你只能通过主节点将Mongo服务添加到副本集中, 判断当前运行的Mongo服务是否为主节点可以使用命令db.isMaster() 。
MongoDB的副本集与我们常见的主从有所不同,主从在主机宕机后所有服务将停止,而副本集在主机宕机后,副本会接管主节点成为主节点,不会出现宕机的情况。

 

 复制集创建自动化脚本:

vim start.sh

#!/bin/bash
IP=192.168.119.128
NA=rs2

if [ $1 == \'reset\' ]; then
pkill -9 mongo
rm -rf /home/m*
exit;
fi

if [ $1 == \'repl\' ]; then
mkdir -p /home/m17 /home/m18 /home/m19 /home/mlog

/usr/mongodb/bin/mongod --dbpath /home/m17 --logpath /home/mlog/m17.log --port 27017 --fork --smallfiles --replSet ${NA}
/usr/mongodb/bin/mongod --dbpath /home/m18 --logpath /home/mlog/m18.log --port 27018 --fork --smallfiles --replSet ${NA}
/usr/mongodb/bin/mongod --dbpath /home/m19 --logpath /home/mlog/m19.log --port 27019 --fork --smallfiles --replSet ${NA}

/usr/mongodb/bin/mongo <<EOF
use admin
rsconf = {
_id:\'rs2\',
members:
[
{_id:0,host:\'${IP}:27017\'},
{_id:1,host:\'${IP}:27018\'},
{_id:2,host:\'${IP}:27019\'}
]
}
rs.initiate(rsconf);
EOF

exit;
fi

执行自动化脚本:

 

sh start.sh reset          

sh start.sh repl

 

输入命令: ./mongo 会自动连接到复制集中的主节点

 

1、if和[ ]之间要空格。

2、[ ]和\' \'之间要空格

3、\' \'和=之间要空格, 否则都会报错

 

 

参考资料:

http://www.cnblogs.com/skyrim/p/5098167.html

 

https://yq.aliyun.com/articles/64

 

注意的几点:

以上是关于MongoDB复制集架构搭建的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB高可用复制集分片集群搭建

MongoDB复制集

亲测教你如何搭建 MongoDB 复制集 + 选举原理

MongoDB集群架构

MongoDB复制集搭建简单讲解及验证

Mongodb 可复制集搭建