在CentOS环境下搭建MongoDB集群,通常需要以下几个步骤:
首先,确保你的CentOS系统已经更新到最新状态:
sudo yum update -y
然后,添加MongoDB的官方YUM仓库:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
安装MongoDB:
sudo yum install -y mongodb-org
启动MongoDB服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
假设你有三台服务器,分别是server1, server2, server3,它们的IP地址分别是192.168.1.101, 192.168.1.102, 192.168.1.103。
编辑/etc/mongod.conf文件,添加或修改以下内容:
replication:
replSetName: rs0
在每台服务器上重启MongoDB服务:
sudo systemctl restart mongod
连接到任意一台服务器的MongoDB shell:
mongo --host 192.168.1.101
在MongoDB shell中初始化副本集:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "192.168.1.101:27017" },
{ _id: 1, host: "192.168.1.102:27017" },
{ _id: 2, host: "192.168.1.103:27017" }
]
}
)
在MongoDB shell中执行以下命令来验证副本集的状态:
rs.status()
你应该能看到所有节点的状态都是SECONDARY或PRIMARY,并且副本集已经成功初始化。
如果你需要搭建一个分片集群,还需要配置分片服务器和配置服务器。
在每台配置服务器上安装MongoDB:
sudo yum install -y mongodb-org
编辑/etc/mongod.conf文件,添加或修改以下内容:
sharding:
clusterRole: configsvr
启动配置服务器:
sudo systemctl start mongod
sudo systemctl enable mongod
连接到任意一台配置服务器的MongoDB shell:
mongo --host 192.168.1.101
在MongoDB shell中初始化配置服务器副本集:
rs.initiate(
{
_id: "configReplSet",
configsvr: true,
members: [
{ _id: 0, host: "192.168.1.101:27019" },
{ _id: 1, host: "192.168.1.102:27019" },
{ _id: 2, host: "192.168.1.103:27019" }
]
}
)
在每台分片服务器上安装MongoDB:
sudo yum install -y mongodb-org
编辑/etc/mongod.conf文件,添加或修改以下内容:
sharding:
clusterRole: shardsvr
启动分片服务器:
sudo systemctl start mongod
sudo systemctl enable mongod
连接到配置服务器的MongoDB shell:
mongo --host 192.168.1.101 --port 27019
在MongoDB shell中添加分片:
sh.addShard("rs0/192.168.1.101:27017,192.168.1.102:27017,192.168.1.103:27017")
连接到mongos进程(通常是/usr/bin/mongos):
mongo --host 192.168.1.101 --port 27017
启用数据库分片:
sh.enableSharding("yourDatabaseName")
启用集合分片:
sh.shardCollection("yourDatabaseName.yourCollectionName", { "shardKey": 1 })
完成以上步骤后,你的MongoDB集群就搭建完成了。