MongoDB副本集模式搭建


MongoDB 副本集模式搭建

一、准备

  • 安装最新的 MongoDB 版本
  • Windows 系统配置好 Mongo 可执行文件的环境变量
  • Linux 和 Mac 系统配置好 PATH 变量
  • 确保有 10GB 以上的硬盘空间

二、创建数据目录

MongoDB 启动时将使用一个数据目录存放所有数据文件。
需要为 3 个复制节点创建各自的数据目录。

Linux/MacOS:

mkdir -p /data/db{1,2,3}

Windows:

md D:\mongodb\data\db1
md D:\mongodb\data\db2
md D:\mongodb\data\db3

三、准备配置文件

复制集的每个 mongod 进程应该位于不同的服务器。
现在在一台机器上运行 3 个进程,因此要为它们各自配置:

  • 不同的端口。示例将使用 28017/27018/28019
  • 不同的数据目录。示例中将使用:

/data/db1
/data/db2
/data/db3

  • 不同日志文件路径。示例中将使用:

/data/db1/mongod.log
/data/db2/mongod.log
/data/db3/mongod.log
配置文件 /data/db1/mongod.conf

systemLog:
  destination: file
  path: /data/db1/mongod.log  # log path
  logAppend: true
storage:
  dbPath: /data/db1  # data directory
net:
  bindIp: 0.0.0.0
  port: 28017  # port
replication:
  replSetName: rs0
processManagement:
  fork: true

同上,配置**/data/db2/mongod.conf/data/db3/mongod.conf**

四、启动停止

1. 启动脚本

mongod-start.sh

#!/bin/bash
echo -e "\033[31mStart mongod service...\n \033[0m"
mongod -f /data/db1/mongod.conf
mongod -f /data/db2/mongod.conf
mongod -f /data/db3/mongod.conf
echo -e "\033[32mmongod service is running.\n \033[0m"

# Whether the query is running
ps -ef | grep mongod

2. 停止脚本

mongod-stop.sh

#!/bin/bash
pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
if [ "${pid}" != "" ]; then kill -2 ${pid};
fi
echo -e "\033[31mThe mongod service has stopped. \033[0m"

3. 添加执行权限并运行

chmod +x mongod-start.sh
chmod +x mongod-stop.sh
./mongod-start.sh

五、配置复制集

1. 方法一

# mongo --port 28017

> rs.initiate()
> rs.add("HOSTNAME:28018")
> rs.add("HOSTNAME:28019")
> rs.status()

2. 方法二

# mongo --port 28017

> rs.initiate({
    _id: "rs0",
  members: [{
        _id: 0,
        host: "localhost: 28017"
    },{
        _id: 1,
        host: "localhost :28018"
    },{
        _id: 2,
        host: "localhost: 28019"
    }]
})
> rs.status()

文章作者: Truda
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Truda !
评论
  目录