MongoDB 是一个面向文档的通用型数据库,广泛应用于各种应用程序中,它不仅支持创建、读取、更新和删除数据,还提供了索引、聚合、特殊的集合类型(如时间有限的集合)、分片和集群等功能,由于其易于使用和便于拓展的特性,MongoDB 在前端开发中尤为受欢迎,本文将详细介绍如何在 CentOS 环境中配置 MongoDB 服务器,并对接 MongoDB 数据库。
一、环境准备
1、安装 Docker:确保系统已安装 Docker,如果没有安装,可以参考官方文档进行安装。
2、下载 MongoDB 镜像:使用docker pull mongo
命令下载官方提供的 MongoDB 镜像。
3、创建 Docker 网络:运行docker network create mongocluster
命令创建一个名为mongocluster
的网络,以便容器之间能够相互通信。
二、搭建 MongoDB 集群
1. 配置 Server
创建配置文件:在云服务器上创建/mongo/mongod.conf
文件,并添加以下内容:
dbpath=/var/lib/mongodb logpath=/var/log/mongodb/mongod.log port=27017 bind_ip=0.0.0.0 journal=true auth=true
启动 Config Server:使用以下命令启动三个 Config Server 容器:
docker run name configserver1 d net mongocluster v /mongo/mongod.conf:/etc/mongod.conf v /tmp/mongocluster/configserver/data/1:/data/db v /tmp/mongocluster/configserver/logs/1:/var/log/mongodb mongo config /etc/mongod.conf replSet configReplica docker run name configserver2 d net mongocluster v /mongo/mongod.conf:/etc/mongod.conf v /tmp/mongocluster/configserver/data/2:/data/db v /tmp/mongocluster/configserver/logs/2:/var/log/mongodb mongo config /etc/mongod.conf replSet configReplica docker run name configserver3 d net mongocluster v /mongo/mongod.comf:/etc/mongod.conf v /tmp/mongocluster/configserver/data/3:/data/db v /tmp/mongocluster/configserver/logs/3:/var/log/mongodb mongo config /etc/mongod.conf replSet configReplica
初始化副本集:登录到其中一个 Config Server 容器,执行以下命令初始化副本集:
docker exec it configserver1 mongo eval "rs.initiate()"
2. 部署 Shard Server
创建 Shard Server 容器:每个分片由三个节点组成,因此需要创建九个 Shard Server 容器,使用以下命令启动第一个分片的第一个节点:
docker run name shard1server1 d net mongocluster v /mongo/mongod.conf:/etc/mongod.conf v /tmp/mongocluster/shard/data/1:/data/db v /tmp/mongocluster/shard/logs/1:/var/log/mongodb mongo config /etc/mongod.conf shardsvr replSet shard1Replica
重复上述步骤:为其他分片节点创建容器,只需更改容器名称和卷挂载路径。
初始化副本集:登录到其中一个 Shard Server 容器,执行以下命令初始化副本集:
docker exec it shard1server1 mongo eval "rs.initiate()"
3. 部署 Mongos Server
创建 Mongos Server 容器:使用以下命令启动三个 Mongos Server 容器:
docker run name mongosserver1 d net mongocluster p 30001:27017 mongo config /etc/mongod.conf keyFile /tmp/mongocluster/configserver/conf/mongo.key docker run name mongosserver2 d net mongocluster p 30002:27017 mongo config /etc/mongod.conf keyFile /tmp/mongocluster/configserver/conf/mongo.key docker run name mongosserver3 d net mongocluster p 30003:27017 mongo config /etc/mongod.conf keyFile /tmp/mongocluster/configserver/conf/mongo.key
启用分片:登录到其中一个 Mongos Server 容器,执行以下命令启用分片:
docker exec it mongosserver1 mongo eval "sh.addShard('shard1Replica/configserver1:27017')" docker exec it mongosserver1 mongo eval "sh.addShard('shard2Replica/configserver1:27017')" docker exec it mongosserver1 mongo eval "sh.addShard('shard3Replica/configserver1:27017')"
三、检查配置信息
查看版本号:使用mongod version
命令查看 MongoDB 服务器的版本号。
获取帮助信息:使用mongod help
命令查看所有可用的配置参数和选项。
获取当前配置参数:使用mongod getCmdLineOpts
命令查看当前的配置参数。
四、相关问答 FAQs
1、如何检查 MongoDB 集群的状态?
你可以使用rs.status()
命令在 mongo shell 中检查副本集的状态,这将显示有关副本集中各个成员的信息,包括它们的健康状态、最后心跳时间等,对于分片集群,你可以使用sh.status()
命令来查看集群的整体状态,包括分片信息、块大小、平衡器运行状态等。
2、如何添加新的分片到现有的 MongoDB 集群?
要添加新的分片,首先需要设置一个新的副本集作为新的分片,在 mongos 管理节点上使用sh.addShard()
方法将新的副本集添加到集群中,如果你有一个名为newShardReplica
的新副本集,你可以运行以下命令将其添加为新的分片:sh.addShard('newShardReplica/configserver1:27017')
,你需要替换configserver1:27017
为你的实际配置服务器地址和端口。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1108545.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复