Mongodb:在两台计算机之间共享数据库

时间:2016-06-09 18:19:05

标签: mongodb

我在计算机1上使用MongoDB创建了一个数据库。 我正在尝试从计算机2加载此数据库。 你能帮我做一下吗?

我尝试在共享磁盘F:\中设置--dbpath(data \ db),但是计算机2无法识别数据。

3 个答案:

答案 0 :(得分:1)

您可以从任何其他节点访问mongo群集,因为您需要知道在节点(计算机)1上运行config-server的端口。 可以使用以下命令启动config-server。理想情况下,系统上应该运行3个配置服务器,因此,我正在更新将其考虑在内的步骤。

<path-to-mongo>/bin/mongod --configsvr --port <port-1> --dbpath ./shardedcluster/cfg0 --fork

<path-to-mongo>/bin/mongod --configsvr --port <port-2> --dbpath ./shardedcluster/cfg1 --fork

<path-to-mongo>/bin/mongod --configsvr --port <port-3> --dbpath ./shardedcluster/cfg2 --fork

问题:找不到分片。早些时候,我认为没有必要设置分片来设置这种系统。但是,要解决此问题,您可以创建一个分片服务器,并按如下所示进行初始化。

<path-to-mongo>/bin/mongod --shardsvr --replSet a --dbpath ./shardedcluster/a0 --port <shard-port> --fork --smallfiles --oplogSize 50

要初始化分片,请按照以下步骤操作。

<path-to-mongo>/bin/mongo --port <shard-port>

然后,运行该命令 rs.initiate()

假设在计算机2上您复制了MongoDB可执行文件。在计算机2上运行以下命令

<path-to-mongodb>/bin/mongos --configdb <C1-IP>:<port-1>,<C1-IP>:<port-2>,<C1-IP>:<port-3> --port 27017

然后运行(在计算机-2上),

<path-to-mongodb>/bin/mongo --port 27017

27017是默认端口,我使用该选项只是为了详细。

注1 如果分片初始化错误仍然存​​在 在mongos shell中运行以下命令,

sh.addShard("a/<C1-IP>:<Shard-port>")

注意2 请确保目录shardedcluster / cfg0,shardedcluster / cfg1,shardedcluster / cfg2,shardedcluster / a存在且具有正确的写入权限。

要获取更多详细信息,请点击以下链接。 http://www.mongodbspain.com/en/2015/01/26/how-to-set-up-a-mongodb-sharded-cluster/

我只给了你所需的命令。

答案 1 :(得分:0)

最简单的方法是,当您只需要复制数据而不是任何特定数据库/集合的配置时,mongodumpmongoimport。请随意在mongodb doc中查看它们。

答案 2 :(得分:0)

我发现此链接更有帮助 [https://severalnines.com/blog/developer-s-guide-mongodb-replica-sets][1]

  

总结以上链接中给出的步骤:

  1. 使用副本集名称启动mongo db的第一个实例,如下所示:
  

mongod --replSetplicateSetName --dbpath / usr / local / var / mongo / mongod    - 港口       27017

//you can provide any name in place of replicaSetName

2。为此实例启用replSet模式

rs.initiate()
  1. 使用配置文件位置启动另一个实例
  

mongod --config /etc/mongod-secondary.cfg

样本mongod-secondary.cfg:

  

systemLog:       目的地:文件       路径:/Users/log2/mongod.log存储:       dbPath:/ Users / MongoSample /数据网:       端口:27019       bindIp:127.0.0.1复制:replSetName:复制集名称

replicaSetName应该与实例一中给出的相同,数据库路径和日志路径应该与实例1不同

  1. 一旦开始登录mongo控制台并执行以下命令以将新实例添加到副本集中
  

rs.add(“ 127.0.0.1:27019”);

就这样! 请检查链接以获取详细答案。 它提供了更简单的方法来创建mongo数据库实例的副本,所选答案是正确的,但由于某种原因很难理解,因此将其发布到此处。