MongoDB副本集的实现与维护实战

1.建立MongoDB副本集

现利用一台机器完成MongoDB副本集的建立

机器1:127.0.0.1:27017

机器2:127.0.0.1:27018 

机器3:127.0.0.1:27019 

在D盘建立以下目录

 

 在各自目录的主目录中创建文件夹db(用来存储数据库文件),log(存储日志文件),配置文件mongo.txt,内容如下

dbpath=D:MongoMongo270173.2db
logpath=D:MongoMongo270173.2loglog.txt
port=27017
serviceName=Mongo27017
serviceDisplayName=Mongo27017
replSet=TestSet
dbpath=D:MongoMongo270183.2db
logpath=D:MongoMongo270183.2loglog.txt
port=27018
serviceName=Mongo27018
serviceDisplayName=Mongo27018
replSet=TestSet
dbpath=D:MongoMongo270193.2db
logpath=D:MongoMongo270193.2loglog.txt
port=27019
serviceName=Mongo27019
serviceDisplayName=Mongo27019
replSet=TestSet

分别执行以下命令

mongod --config D:MongoMongo270173.2mongo.txt --install

net start  Mongo27017

mongod --config D:MongoMongo270183.2mongo.txt --install

net start  Mongo27018 

mongod --config D:MongoMongo270193.2mongo.txt --install

net start  Mongo27019

输入以下命令

config = { _id:"TestSet", 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(config)

rs.config()

 

这样,副本集就建立起来了

 2.副本集读写数据

在主数据库中执行以下命令:

db.person.insert({"name":"一呆","Age":20}) 

插入一条记录 

默认情况下副本也是不能读数据的,如果需要副本读数据,需要在副本中执行以下命令

rs.slaveOk() 

3.副本集维护

查看副本集状态:

rs.status()

rs.config()

移除指定的副本

rs.remove("127.0.0.1:27018") ,移除命令只能在主库中执行 

停止服务Mongo27017后在27018副本执行以下命令:rs.status(),发现主库已经被自动切换为27018了,这是自动完成的

 

 重新启动服务Mongo27017,执行命令rs.status()

原文地址:https://www.cnblogs.com/nation/p/5633470.html