MongoDB复制集搭建
端口号监听netstat -tunlp | grep 27017。连接后使用use admin切换admin数据库,进行初始化。2.2mongo shell里面去读取数据。2.1 连接从节点数据库。
·
**注意事项:**本博客的实验环境为mongodb4.x 版本
0 前期准备工作
1.下载mongod数据库
sudo wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.29.tgz
2.使用以下命令解压压缩包。
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.29.tgz
- 将解压后的目录移动到 /usr/local 目录下,并改名为 mongodb 。
mv mongodb-linux-x86_64-rhel70-4.4.29.tgz /usr/local #移动目录
mv mongodb-linux-x86_64-rhel70-4.4.29 mongodb#重新命名
通过上述方式可完成如教程一样的配置路径,从而确保mongod可以启动,若需在所有目录下均可启动mongod,则需配置环境变量,具体配置过程可参考博客描述
以下为MongoDB复制集的完整搭建过程:
1.创建数据目录
sudo mkdir -p /usr/local/mongodb/data/db1 /usr/local/mongodb/data/db2 /usr/local/mongodb/data/db3 /usr/local/mongodb/data/db4 # 数据目录:一主两从一仲裁
2.创建配置文件存放目录
sudo mkdir -p /usr/local/mongodb/data/conf # 用来放每个实例的独立配置文件
3. 创建日志存放目录,并创建一主两从一仲裁的日志文件
sudo mkdir -p /usr/local/mongodb/data/logs # 放所有实例的日志文件
# touch创建日志文件
sudo touch /usr/local/mongodb/data/logs/db1.log
sudo touch /usr/local/mongodb/data/logs/db2.log
sudo touch /usr/local/mongodb/data/logs/db3.log
sudo touch /usr/local/mongodb/data/logs/db4.log
# 修改目录权限,确保root用户可读写
sudo chown -R root:root /usr/local/mongodb
4.创建进程描述文件目录
sudo mkdir -p /usr/local/mongodb/data/pids # 存放mongod进程的pid文件(管理方便)
5.分别对一主两从一仲裁节点的配置文件进行编辑
db1.conf的配置如下:
# /usr/local/mongodb/data/conf/db1.conf
systemLog:
destination: file
path: /usr/local/mongodb/data/logs/db1.log
logAppend: true
storage:
dbPath: /usr/local/mongodb/data/db1
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: rs0
processManagement:
pidFilePath: /usr/local/mongodb/data/pids/db1.pid
db2.conf的配置如下:
#/usr/local/mongodb/data/conf/db2.conf
systemLog:
destination: file
path: /usr/local/mongodb/data/logs/db2.log
logAppend: true
storage:
dbPath: /usr/local/mongodb/data/db2
net:
bindIp: 0.0.0.0
port: 27018
replication:
replSetName: rs0
processManagement:
pidFilePath: /usr/local/mongodb/data/pids/db2.pid
db3.conf的配置如下:
#/usr/local/mongodb/data/conf/db3.conf
systemLog:
destination: file
path: /usr/local/mongodb/data/logs/db3.log
logAppend: true
storage:
dbPath: /usr/local/mongodb/data/db3
net:
bindIp: 0.0.0.0
port: 27019
replication:
replSetName: rs0
processManagement:
pidFilePath: /usr/local/mongodb/data/pids/db3.pid
db4.conf的配置如下:
#/usr/local/mongodb/data/conf/db4.conf
systemLog:
destination: file
path: /usr/local/mongodb/data/logs/db4.log
logAppend: true
storage:
dbPath: /usr/local/mongodb/data/db4
net:
bindIp: 0.0.0.0
port: 27020
replication:
replSetName: rs0
processManagement:
pidFilePath: /usr/local/mongodb/data/pids/db4.pid
配置完成后即可启动服务
6.启动服务
# 启动主节点
mongod -f /usr/local/mongodb/data/conf/db1.conf --fork
# 启动从节点1
mongod -f /usr/local/mongodb/data/conf/db2.conf --fork
# 启动从节点2
mongod -f /usr/local/mongodb/data/conf/db3.conf --fork
# 启动仲裁节点
mongod -f /usr/local/mongodb/data/conf/db4.conf --fork
7.连接主节点初始化复制集
mongo --port 27017#mongodb新的版本已不自带mongo shell工具,因此本教程采用mongodb4.x版本演示
连接后使用use admin切换admin数据库,进行初始化
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018" },
{ _id: 2, host: "localhost:27019" },
{ _id: 3, host: "localhost:27020", arbiterOnly: true }
]
})
查看复制集状态
查看进程ps -ef | grep mongod
端口号监听netstat -tunlp | grep 27017
rs.status()
8.验证插入测试数据
1.在mongo shell中(仍然是27017端口的主节点):
1.1新建数据库
use testdb
db.testcol.insertOne({name: "hello replica set"})
1.2查询
db.testcol.find()
2.副节点验证
2.1 连接副数据库
mongo --port 27018
2.2mongo shell里面去读取数据
rs.slaveOk() // 允许从节点读数据
use testdb
db.testcol.find()
参考资料:
[1]CentOS7安装MongoDB;
[2]AI工具:ChatGPT-4o、deepseek。
更多推荐
所有评论(0)