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:\Mongo\Mongo27017\3.2\db
logpath=D:\Mongo\Mongo27017\3.2\log\log.txt
port=27017
serviceName=Mongo27017
serviceDisplayName=Mongo27017
replSet=TestSet
dbpath=D:\Mongo\Mongo27018\3.2\db
logpath=D:\Mongo\Mongo27018\3.2\log\log.txt
port=27018
serviceName=Mongo27018
serviceDisplayName=Mongo27018
replSet=TestSet
dbpath=D:\Mongo\Mongo27019\3.2\db
logpath=D:\Mongo\Mongo27019\3.2\log\log.txt
port=27019
serviceName=Mongo27019
serviceDisplayName=Mongo27019
replSet=TestSet
分别执行以下命令
mongod --config D:\Mongo\Mongo27017\3.2\mongo.txt --install
net start Mongo27017
mongod --config D:\Mongo\Mongo27018\3.2\mongo.txt --install
net start Mongo27018mongod --config D:\Mongo\Mongo27019\3.2\mongo.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()