在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集群就搭建完成了。