在Linux下,MongoDB的扩容通常涉及到增加磁盘空间和调整分片集群。以下是扩容的步骤:
扩展物理磁盘:
扩展逻辑卷(LVM):
# 查看当前逻辑卷
lvdisplay
# 扩展逻辑卷(假设你的逻辑卷名为vg_mongodb/lv_mongodb)
lvextend -L +10G /dev/vg_mongodb/lv_mongodb
# 扩展文件系统(假设你的文件系统是ext4)
resize2fs /dev/vg_mongodb/lv_mongodb
扩展XFS文件系统:
# 扩展逻辑卷
lvextend -L +10G /dev/vg_mongodb/lv_mongodb
# 扩展文件系统
xfs_growfs /dev/vg_mongodb/lv_mongodb
如果你使用的是MongoDB的分片集群,扩容步骤如下:
添加新的分片服务器:
mongod --shardsvr --dbpath /data/db --port 27018 --shard --configsvr
mongo --port 27019
config = rs.conf()
config.shards.push({ _id: "shard0000", host: "new_shard_host:27018" })
rs.reconfig(config)
添加新的配置服务器(如果需要):
mongod --configsvr --dbpath /data/configdb --port 27019
mongo --port 27019
rs.add({ _id: "cfgReplSet", host: "new_config_server_host:27019" })
迁移数据:
moveChunk
命令将数据从旧的分片迁移到新的分片。mongo --port 27017
sh.moveChunk("database.collection", { shardKey: value }, "new_shard_host:27018")
检查磁盘空间:
df -h /data/db
检查MongoDB状态:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
通过以上步骤,你可以在Linux下成功扩容MongoDB。请根据你的具体环境和需求调整命令和步骤。