4

我需要将独立集转换为副本集

我正在使用以下文档:

http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/

执行以下操作后:

mongod --port 27017 --replSet rs0 

在终端中显示以下内容

Thu Nov 15 10:07:57 [rsStart] trying to contact MY_HOST.local:27017 
Thu Nov 15 10:07:57 [rsStart] couldn't connect to MY_HOST.local:27017: 
couldn't connect to server MY_HOST.local:27017 
Thu Nov 15 10:07:57 [rsStart] replSet can't get local.system.replset 
config from self or any seed (yet) 

在 mongo shell 中,rs.initiate() 和 rs.status() 的命令结果如下:

> rs.initiate() 

{ 
        "startupStatus" : 4, 
        "info" : "rs0", 
        "errmsg" : "all members and seeds must be reachable to initiate set", 
        "ok" : 0 
} 
>  rs.status() 

{ 
        "startupStatus" : 4, 
        "errmsg" : "can't currently get local.system.replset config from self 
or any seed (EMPTYUNREACHABLE)", 
        "ok" : 0 
} 

请我需要帮助并告诉我我做错了什么或我错过了什么

感谢您的关注

4

2 回答 2

4

看起来您的 mongod 已经认为它是副本集的一部分。如果您运行“rs.status()”,您可能会看到不止一个主机。此外,mongod 认为它拥有的主机名需要可解析回自身。不要在副本集配置中使用“localhost”作为主机名。

于 2012-11-15T23:14:01.530 回答
-1

看看这是你能做的,我在独立电脑上做了同样的事情

1.创建 3 个将存储数据的目录,例如 - c:/data/rep1、c:/data/rep2、c:/data/rep3

2.关闭所有以前的mongodb实例

3.通过命令提示符执行以下操作(如果设置了您的路径),否则转到 mongod 所在的文件夹

命令提示符

/>mongod -port 27001 -dbpath -c:/data/rep1 -replSet replication

新的命令提示符

/>mongod -port 27002 -dbpath -c:/data/rep2 -replSet replication

新的命令提示符

/>mongod -port 27003 -dbpath -c:/data/rep3 -replSet replication

现在通过另一个命令提示符连接到任何 mongod

/>mongo -port 27001

然后我们需要编写副本集的配置

cfg={_id:"replication",members:[{_id:1,host:"localhost:27001"},   
    {_id:2,host:"localhost:27002"},{_id:3,host:"localhost:27003"}] }

rs.initiate(cfg)

复制将开始

rs.status()
于 2014-04-18T19:55:34.980 回答