Mongodb
MongoDB 3.4 分片錯誤。“如果不以 –shardsvr 開頭,則無法接受分片命令”
我在 centOS 7.2 機器上安裝了 mongoDB 3.4.5。我在獨立模式下配置分片。
我遵循的步驟:
對於副本集:
mongod --replSet rs0 --dbpath /data/srd/rs0 --logpath /data/srd/rs0/log.rs0 --port 27000 --fork --logappend --smallfiles --oplogSize 50 & mongod --replSet rs0 --dbpath /data/srd/rs1 --logpath /data/srd/rs1/log.rs1 --port 27001 --fork --logappend --smallfiles --oplogSize 50 & mongod --replSet rs0 --dbpath /data/srd/rs2 --logpath /data/srd/rs2/log.rs2 --port 27002 --fork --logappend --smallfiles --oplogSize 50 &
對於碎片:
mongod --replSet rs0 --shardsvr --dbpath /data/srd/srd0 --logpath /data/srd/srd0/log.srd0 --port 27020 --fork --logappend --smallfiles --oplogSize 50 & mongod --replSet rs0 --shardsvr --dbpath /data/srd/srd1 --logpath /data/srd/srd1/log.srd1 --port 27021 --fork --logappend --smallfiles --oplogSize 50 & mongod --replSet rs0 --shardsvr --dbpath /data/srd/srd2 --logpath /data/srd/srd2/log.srd2 --port 27022 --fork --logappend --smallfiles --oplogSize 50 &
對於配置伺服器:
mongod --configsvr --replSet configReplSet --dbpath /data/srd/cfgrep0 --logpath /data/srd/cfgrep0/log.cfgrep0 --port 27006 --fork & mongod --configsvr --replSet configReplSet --dbpath /data/srd/cfgrep1 --logpath /data/srd/cfgrep1/log.cfgrep1 --port 27007 --fork & mongod --configsvr --replSet configReplSet --dbpath /data/srd/cfgrep2 --logpath /data/srd/cfgrep2/log.cfgrep2 --port 27008 --fork &
啟動 Mongos:
mongos --configdb configReplSet/sit:27006,sit:27007,sit:27008 --port 26060
我能夠登錄 mongos shell 並且還能夠添加分片。但是在啟用分片時,我得到瞭如下異常。
mongos> sh.enableSharding("test"); { "code" : 193, "ok" : 0, "errmsg" : "Cannot accept sharding commands if not started with --shardsvr" }
首先.. 在一個集群 (rs0) 中不能有兩個相同名稱的副本集,將第二個重命名為 rs1。(埠 27020 - 270122)。
錯誤消息直接告訴您應該做什麼。因此,將 –shardsvr 添加到每個已啟動的副本集。
從
mongod --replSet xxx
到mongod --shardsvr --replSet xxx
當然,在登錄 mongoS 服務後,您需要將那(兩個)副本集添加到您的集群中
sh.addShard("rs0/address1:27000, address2:27001, address3:27002")
還有那個其他的rs1 ..
就我而言,我的分區中沒有剩餘空間
/var/log
。用於
df -h
檢查分區中的可用空間並刪除較大的日誌。