如何在各种mongods

时间:2017-05-22 14:39:38

标签: mongodb sharding replicaset

我正在尝试设置分片和副本集。

我的假设程序是这样的:

  1. 启动副本集(让它只是一个,仅用于测试)
  2. mongo然后启动副本
  3. 启动配置服务器(再次让它成为一个,仅用于测试)
  4. 启动分片服务器(再次让它只是一个)
  5. 添加分片并通过sharding
  6. 启用mongo

    我做了什么:

    1. mongod --replSet rs0 --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
    2. mongo然后rs.initiate()
    3. mongod --configsvr --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
    4. - 现在坚持第3步。

      我发现错误 2017-05-22T20:00:13.857+0530 [initandlisten] exception in initAndListen: 10310 Unable to lock file: data/rs0-0/mongod.lock. Is a mongod instance already running?, terminating

      我尝试了什么:

      我已尝试使用--unixSocketPrefix选项的不同目录,但每次它都会点击data/rs0-0/mongod.lock相同的文件。所以它没有奏效

      这似乎是一个简单的问题,但无法弄清楚锁文件是如何在各种mongods之间共享的(无论是配置服务器,还是副本集,还是分片服务器)

      我在mongodb 2.6.12

1 个答案:

答案 0 :(得分:2)

您需要使用不同的 dbpath选项启动mongodconfig server。 您可以按照以下步骤操作:

mongod --replSet rs0 --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0

mongod --replSet rs0 --dbpath data/rs0-0

mongo然后rs.initiate()

mkdir -p /data/configdb(递归授予所需权限)

mongod --configsvr --dbpath /data/configdb --port 27019