linux学习

使用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()

留言

您的邮箱地址不会被公开。 必填项已用 * 标注