在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。請根據你的具體環境和需求調整命令和步驟。