Ubuntu 18.04下部署MongoDB复制集(副本集)
可以到安科网资源站下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2018年资料/11月/3日/Ubuntu 18.04下部署MongoDB复制集(副本集)/
------------------------------------------分割线------------------------------------------
切换成root用户
sudo su -
运行安装脚本
wget https://gitlab.com/caizhifei2003/scripts/raw/master/install/mongodb/ubuntu-1804.sh
chmod u+x ubuntu-1804.sh
./ubuntu-1804.sh
此时,可以通过mongo命令进入数据库
设置复制集名称
有两种方式来设置复制集的名称。一种是通过mongod命令,另一种是通过修改配置文件。
本文使用通过修改配置文件的方式来设置复制集名称,确保每次节点重新启动后能够使用相同的配置启动数据库。
打开MongoDB在Ubuntu上的配置文件
vim /etc/mongod.conf
找到replication配置节
replication:
replSetName: "rs0"
绑定MongoDB的IP地址
找到net配置节
net:
port: 27017
bindIp: localhost,10.140.0.5这里是主节点的地址,相应的从节点要绑定
10.140.0.6
10.140.0.7
保存文件,重新启动mongod服务
service mongod restart
此时,进入到任何一个节点。查看复制集状态。
初始化复制集
通过mongo shell进入主节点的数据库
执行复制集初始化命令
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "10.140.0.5:27017" },
{ _id: 1, host: "10.140.0.6:27017" },
{ _id: 2, host: "10.140.0.7:27017" }
]
})
查看复制集状态
rs.status()
执行如下命令,在主节点上插入一条数据
use test
db.test.insertOne({"name": "kenny"})
进入任何一个从节点,查看数据是否被同步。
use test
rs.slaveOk()
db.test.find()
默认情况下,MongoDB只允许在主节点上写入和读取数据。这里的rs.slaveOk()是为了在从节点上也读取数据而需要执行的session(如果退出mongo shell,需要重新执行该命令)级别的命令。
显示的内容如下:
强制关闭主节点上的MongoDB服务
use admin
db.shutdownServer()
在两个从节点上,通过rs.isMaster()命令查看状态
10.140.0.6: