在CentOS环境下配置MongoDB分片(Sharding)涉及多个步骤,包括设置配置服务器、分片服务器和路由服务器(mongos)。以下是一个基本的指南:
首先,确保你已经在所有服务器上安装了MongoDB。你可以从MongoDB官方网站下载并安装最新版本的MongoDB。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-<version>.tgz
tar zxvf mongodb-linux-x86_64-<version>.tgz
sudo mv mongodb-linux-x86_64-<version> /usr/local/mongodb
配置服务器存储集群的元数据。你需要至少三个配置服务器以确保高可用性。
mkdir -p /data/configdb
mongod --configsvr --dbpath /data/configdb --port 27019 --fork --logpath /var/log/mongodb/config.log
分片服务器存储实际的数据。
mkdir -p /data/shard1
mkdir -p /data/shard2
mongod --shardsvr --dbpath /data/shard1 --port 27018 --fork --logpath /var/log/mongodb/shard1.log
mongod --shardsvr --dbpath /data/shard2 --port 27018 --fork --logpath /var/log/mongodb/shard2.log
路由服务器是应用程序和分片集群之间的接口。
mkdir -p /data/mongos
mongos --configdb <config_server_ip>:27019 --port 27017 --fork --logpath /var/log/mongodb/mongos.log
连接到mongos并添加分片。
mongo --port 27017
在mongo shell中执行以下命令:
sh.addShard("shard1/shard1_ip:27018")
sh.addShard("shard2/shard2_ip:27018")
选择要分片的数据库和集合,并启用分片。
sh.enableSharding("your_database_name")
sh.shardCollection("your_database_name.your_collection_name", { "shard_key": 1 })
你可以使用以下命令来验证分片配置是否正确:
sh.status()
定期监控集群的健康状况,并根据需要进行维护。你可以使用MongoDB自带的工具如mongostat和mongotop来监控集群的性能。
通过以上步骤,你应该能够在CentOS环境下成功配置MongoDB分片。