在虚拟机上建立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] 举报,一经查实,本站将立刻删除。