
环境准备
单台服务器模拟在一台主机中启动三个MonDB实例
mkdir ‐p /data/db{1,2,3}
服务一
dbpath=/data/db1
logpath=/data/db1/mongod.log
bind_ip=0.0.0.0
port=27017
fork=true
replSet=rs
dbpath=/data/db2
logpath=/data/db2/mongod.log
bind_ip=0.0.0.0
port=27018
fork=true
replSet=rs
dbpath=/data/db3
logpath=/data/db3/mongod.log
bind_ip=0.0.0.0
port=27019
fork=true
replSet=rs
启动服务
mongod -f /data/db1/mongod.conf
mongod -f /data/db2/mongod.conf
mongod -f /data/db3/mongod.conf
mongo --port=27017
rs.initiate({
_id: "rs",
members: [{
_id: 0,
host: "192.168.247.129:27017"
},{
_id: 1,
host: "192.168.247.129:27018"
},{
_id: 2,
host: "192.168.247.129:27019"
}]
})
查看状态
rs.status()
在三台主机中
多台服务器模拟一般准备奇数台复制集主机,这里使用三个。
首先准备好三台装好了MongoDB的服务器,地址分别如下:(注意三台主机的27017端口防火墙要放行,)
192.168.247.141
192.168.247.142
192.168.247.143
创建存放数据目录/data/mongodb/db 存放日志的目录/data/mongodb/logs,存放服务启动配置文件的目录/data/mongodb/conf
mkdir -p /data/mongodb/db /data/mongodb/logs /data/mongodb/conf
每台服务器的配置文件mongod.conf,添加replSet=rs,表示副本集的名称,修改后的配置文件内容如下:
vim /data/mongodb/conf/mongod.conf
dbpath=/data/mongodb/db
logpath=/data/mongodb/logs/mongodb.log
bind_ip=0.0.0.0
port=27017
fork=true
replSet=rs
修改完成之后,分别启动三台服务器上的MongoDB,
mongod -f /data/mongodb/conf/mongod.conf
启动成功之后,连接上任意一台的shell,连接成功之后,先定义配置文件,如下:
config={
_id: "rs0",
members: [{
_id: 0,
host: "192.168.247.140:27017"
},{
_id: 1,
host: "192.168.247.141:27017"
},{
_id: 2,
host: "192.247.142:27017"
}]
}
id后面跟着的是副本集的名称,也就是我们在mongodb.conf中定义的名称,后面三个是副本集的成员,定义好之后,再执行如下命令初始化副本集:
rs.initiate(config)
也可以把上面2个命令写在一起
rs.initiate({
_id: "rs0",
members: [{
_id: 0,
host: "192.168.247.140:27017"
},{
_id: 1,
host: "192.168.247.141:27017"
},{
_id: 2,
host: "192.247.142:27017"
}]
})
初始化成功之后,我们就可以通过rs.status()来查看副本集的状态,也可以看到每个服务器的角色,部分日志内容如下:
rs.status()
我们可以看到每台服务器的角色,有primary,也有secondary,secondary上还注明了从哪个服务器上同步数据。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)