微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MongoDB复制集

在虚拟机上建立mongoDB复制集,一主两从。
主0:127.0.01:27017
从1:  127.0.0.1:27018
从2:  127.0.0.1:27019

首先,建立路径放置各个mongodb进程的数据文件、日志文件
主0:  mkdir -p data/db0
从1:  mkdir -p data/db1
从2:  mkdir -p data/db2

开启mongodb进程
 mongod --port 27017 --dbpath data/db0 --logpath data/db0/db.log --replSet zwstest  --fork
 mongod --port 27018 --dbpath data/db1 --logpath data/db1/db.log --replSet zwstest  --fork
 mongod --port 27019 --dbpath data/db2 --logpath data/db2/db.log --replSet zwstest  --fork

在另外的终端中登录
mongo --port 27017

配置文件
cfg={
    _id:"zwstest", 
    members:[
        {_id:0, host:'127.0.0.1:27017'},
        {_id:1, host:'127.0.0.1:27018'}, 
        {_id:2, host:'127.0.0.1:27019'}
    ]}
初始化
rs.initiate(cfg)
查看主从复制状态
rs.status()
一段时间后,现在所在终端的界面将会变为primary开头。

 测试:在primary中插入一条数据,在从服务器中查看。
primary>use test
primary>db.book.insert({"name":"zhangsan"})

在另外的终端中登录
mongo --port 27018
secondary>rs.slaveOk()
secondary>use test 
secondary>db.book.find()

失败情况:
1、在配置文件中加了configsvr: true
cfg={
    _id:"zwstest", 
    configsvr: true,
    members:[
        {_id:0, host:'127.0.0.1:27017'},
        {_id:1, host:'127.0.0.1:27018'}, 
        {_id:2, host:'127.0.0.1:27019'}
    ]}
2、服务启动时加了 --configsvr
 mongod --port 27019 --configsvr --dbpath data/db2 --logpath data/db2/db.log --replSet zwstest  --fork
3、如果电脑关机了,下次只需执行开启mongodb进程即可,不需再配置,但在从服务器查询时,需rs.slaveOk()
 mongod --port 27017 --dbpath data/db0 --logpath data/db0/db.log --replSet zwstest  --fork
 mongod --port 27018 --dbpath data/db1 --logpath data/db1/db.log --replSet zwstest  --fork
 mongod --port 27019 --dbpath data/db2 --logpath data/db2/db.log --replSet zwstest  --fork

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐