Mongodb

MongoDB 3.4 分片錯誤。“如果不以 –shardsvr 開頭,則無法接受分片命令”

  • December 22, 2017

我在 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 xxxmongod --shardsvr --replSet xxx

當然,在登錄 mongoS 服務後,您需要將那(兩個)副本集添加到您的集群中

sh.addShard("rs0/address1:27000, address2:27001, address3:27002")

還有那個其他的rs1 ..

就我而言,我的分區中沒有剩餘空間/var/log

用於df -h檢查分區中的可用空間並刪除較大的日誌。

引用自:https://dba.stackexchange.com/questions/178131