使用yum源安装并配置MongoDB的主从复制
第一步:安装Mongolian
[root@localhost ]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# vim mongodb-org-4.2.repo
[mngodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.2/x86_64/
gpgcheck=0
enabled=1
这里可以修改 gpgcheck=0, 省去gpg验证
安装之前先更新所有包 :
[root@localhost yum.repos.d]# yum update
安装MongoDB 安装命令:
[root@localhost yum.repos.d]# yum -y install mongodb-org
安装完成后 查看mongo安装位置 whereis mongod
[root@localhost yum.repos.d]# whereis mongod mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1
查看修改配置文件 :vim /etc/mongod.conf
bindIp: 172.0.0.1 改为 bindIp: 0.0.0.0
第二步:配置MongoDB的主从复制
创建数据目录与日志文件,主节点与从节点,分别存放数据与日志
[root@node1 ~]# mkdir -p /data/db1
[root@node1 ~]# mkdir -p /data/db2
[root@node1 ~]# mkdir /var/log/mongod1.log
[root@node1 ~]# mkdir /var/log/mongod2.log
启动MongoDB副本集:
配置第一个MongoDB实例:为第一个MongoDB实例创建一个配置文件。以管理员身份,使用文本编辑器创建一个新的MongoDB配置文件(mongod1.conf),通常位于/etc/目录中。
vim /etc/mongod1.conf
在配置文件中进行如下配置:
# 设置监听的IP地址和端口
bindIp: 0.0.0.0
port: 27018
# 设置数据目录
dbPath: /data/db1
# 设置日志目录
logPath: /var/log/mongod1.log
# 设置副本集名称(可选)
replSetName: rs1
保存并关闭配置文件。
配置第二个MongoDB实例:为第二个MongoDB实例创建一个配置文件。以管理员身份,使用文本编辑器创建一个新的MongoDB配置文件(mongod2.conf),通常位于/etc/目录中。
vim /etc/mongod2.conf
在配置文件中进行如下配置:
# 设置监听的IP地址和端口
bindIp: 0.0.0.0
port: 27019
# 设置数据目录
dbPath: /data/db2
# 设置日志目录
logPath: /var/log/mongod2.log
# 设置副本集名称(可选)
replSetName: rs1
保存并关闭配置文件。
启动第一个MongoDB实例:使用mongod命令启动第一个MongoDB实例。使用以下命令:
mongod --config /etc/mongod1.conf --fork
# 关闭
mongod --shutdown -config /etc/mongod1.conf
启动第二个MongoDB实例:使用mongod命令启动第二个MongoDB实例。使用以下命令:
mongod --config /etc/mongod2.conf --fork
# 关闭
mongod --shutdown -config /etc/mongod2.conf
现在,您的Linux服务器上已经成功启动了两个MongoDB实例,分别运行在27018和27019端口。
注意:确保为每个实例指定不同的数据库目录(dbPath)和日志目录(logPath),以避免冲突。如果您打算将它们设置为主从复制,还可以配置副本集名称(replSetName)。
要在MongoDB中配置主从复制,请按照以下步骤进行操作:
准备工作:确保已经安装好MongoDB,并且已经启动了主服务器和从服务器。
连接到主服务器:在命令行终端中,使用MongoDB客户端连接到主服务器:
mongo --port 27018
初始化副本集:在主服务器上,执行以下命令初始化副本集:
rs.initiate()
这将把当前服务器设置为主服务器,并初始化一个副本集。
添加从服务器:在MongoDB客户端连接到主服务器后,执行以下命令来添加从服务器:
rs.add("从服务器名字:27019")
重复执行该命令,以添加任意数量的从服务器。
检查副本集状态:在主服务器上执行以下命令,检查副本集的状态:
rs.status()
在从服务器中设置
rs.slaveOk()
是一个 MongoDB 的 shell 命令,用于在复制集中允许从节点读取数据。在复制集中,数据是从主节点复制到从节点的。默认情况下,从节点只能读取自己的数据副本,而不是从主节点直接读取数据。使用 rs.slaveOk()
命令可以允许从节点直接从主节点读取数据,而不是等待数据复制到从节点。
这个命令通常在从节点上进行设置,以便从节点可以更快地获取数据。通过允许从节点直接从主节点读取数据,可以减少数据复制的延迟,提高读取性能。
rs.slaveOK()
db.setSlaveOk()