锁文件如何在各个mongods之间共享
How the lock file is shared among the various mongods
我正在尝试设置分片和副本集。
我的假设程序是这样的:
- 启动副本集(只做一个,仅供测试)
mongo
然后启动副本
- 启动配置服务器(再次让它成为一个,仅用于测试)
- 启动一个分片服务器(再次让它只是一个)
- 添加分片并通过
mongo
启用 sharding
我做了什么:
mongod --replSet rs0 --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
mongo
然后 rs.initiate()
mongod --configsvr --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
-- 现在卡在第 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 之间共享的(无论是配置服务器、副本集还是分片服务器)
我在mongodb2.6.12
您需要使用 不同 dbpath 选项启动 mongod
和 config 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
我正在尝试设置分片和副本集。
我的假设程序是这样的:
- 启动副本集(只做一个,仅供测试)
mongo
然后启动副本- 启动配置服务器(再次让它成为一个,仅用于测试)
- 启动一个分片服务器(再次让它只是一个)
- 添加分片并通过
mongo
启用
sharding
我做了什么:
mongod --replSet rs0 --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
mongo
然后rs.initiate()
mongod --configsvr --dbpath data/rs0-0 --unixSocketPrefix data/rs0-0
-- 现在卡在第 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 之间共享的(无论是配置服务器、副本集还是分片服务器)
我在mongodb2.6.12
您需要使用 不同 dbpath 选项启动 mongod
和 config 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