mongodb服务搭建副本,一台服务器多个端口
一、创建副本集
1、建立文件夹
F:mongoDB> mkdir F:mongoDBmdb0
F:mongoDB> mkdir F:mongoDBmdb1
F:mongoDB> mkdir F:mongoDBmdb2
2、关闭服务器端口
以管理员身份打开 windows PowerShell
以下全部为以管理员身份打开
未关闭状态下会按服务服务端启动,第4步配置初始化时出错,提示“This node was not started with the replSet option”
重新从第2步开始操作
C:Users29059>net stop mongodb
3、手动运行mongodb服务,三个服务端口要全部运行
打开新的Windows PowerShell,进入到安装目录 运行服务(三个独立Shell)
F:mongoDBmongodb-4.0.12in> ./mongod --replSet mdb --port 27017 --dbpath F:mongoDBmdb0 --smallfiles --oplogSize 128
F:mongoDBmongodb-4.0.12in> ./mongod --replSet mdb --port 27018 --dbpath F:mongoDBmdb1 --smallfiles --oplogSize 128
F:mongoDBmongodb-4.0.12in> ./mongod --replSet mdb --port 27019 --dbpath F:mongoDBmdb2 --smallfiles --oplogSize 128
服务器连接必须为OK状态,否则结束进程,重新动行mongodb服务
4、配置
新建Shell进入mongo
F:mongoDBmongodb-4.0.12in> ./mongo --port 27017
rs.initiate()初始化副本集对象
MongoDB Enterprise > rs.initiate({_id:'mdb',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'}]})
结果
{
"ok" : 1,
"operationTime" : Timestamp(1576656206, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1576656206, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
设置副本节点可读,进入mongo 27018 ,27019分别执行获取信息
db.getMongo().setSlaveOk()
查看连接状态
MongoDB Enterprise mdb:PRIMARY> rs.status()
查看主副本
MongoDB Enterprise mdb:PRIMARY> db.isMaster()
二、增加副本集
1> 创建文件夹:
F:mongoDBmongodb-4.0.12in> mkdir F:mongoDBmdb3
2> 创建端口打开服务:新建windows Shell
./mongod --replSet mdb --port 27020 --dbpath F:mongoDBmdb3 --smallfiles --oplogSize 128
3> 增加副本集:
MongoDB Enterprise mdb:PRIMARY> rs.add(‘127.0.0.1:27021’)
三、移除副本集:
1> 新建windows Shell 进入副本节点,停用服务
F:mongoDBmongodb-4.0.12in> ./mongo --port 27020
MongoDB Enterprise mdb:SECONDARY> use admin
MongoDB Enterprise mdb:SECONDARY> db.shutdownServer()
2> 主服务器中移除对应的节点
MongoDB Enterprise mdb:PRIMARY> rs.remove(‘127.0.0.1:27020’)
修改主从
获取config ,并修priority改黑认权重
conf=rs.config()
conf.members[0].priority=10
conf.members[1].priority=5
conf.members[2].priority=1
rs.reconfig(conf)