2016-06-09 787 views
0

我在计算机1上使用MongoDB创建了一个数据库。 我试图从计算机2加载这个数据库。 您能否帮我做到这一点?Mongodb:在两台电脑之间共享数据库

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

+0

这里涉及的变量太多了。访问,Mongo版本等您可以将完整的数据复制到第二台计算机,并在那里先尝试?如果它有效,那么我们可以肯定这与配置文件等有关,而不是数据问题。 – Abhinav

+0

您是否只需要计算机1的数据,或者是否要复制整个mongod config/dbs? – necromos

+0

我试图做到这一点,计算机2无法读取数据库,因为它已由其他主机创建。 MongoDB的版本都是3.2 @Abhinav –

回答

0

您可以从任何其他节点访问蒙戈集群,对于你需要知道在其上的配置,服务器节点(计算机)上运行的端口1 的配置服务器可以使用下面的命令来启动。理想情况下,应该有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外壳下面的命令,

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/

我只给你你需要的命令。

+0

感谢您的回答 只是为了确保,我应该在两者之间创建一个服务器还是有一个选项创建一个mongodb服务器? –

+0

计算机1上的配置服务器的单个实例应该没问题。为此目的使用以下命令。 'mongod --configsvr --port --dbpath --fork' – Jayant

+0

谢谢。 在计算机1中,我运行:'Mongod --configsvr --port 51213'。 在计算机2中,我运行:'Mongos --configdb 10.2 .... 3:51213 --port 445'。 我得到以下问题:bind()错误10013,关机(),无法打开minidumb文件错误5. 但是,在我的mongod --configserver上,计算机1检测到连接并说已结束。 –

0

当您只需要复制数据但不包含任何特定DB /集合的配置时,最简单的方法是mongodumpmongoimport。请随时在mongodb文档中查看它们。

+0

Mongodump和mongoimport使数据库的副本。我需要为两台计算机都有一个相同的数据库,并且能够修改/添加/删除两个mongods中的数据。 –