我在Windows服务器上安装了mongodb。我使用Rackspace备份定期备份data / db文件夹。
我使用Rackspace部署创建了一个mongodb副本集的部署,其中包含3个ubuntu服务器。现在我想将windows上的数据移动到空副本集。我该怎么办?
我尝试将windows上的data / db内容复制到主副本集上的var / lib / mongodb。它不起作用。
由于某种原因,ubuntu机器上的var / lib / mongodb不包含data / db目录。当我创建一个新的db时,将在var / lib / mongodb目录中创建db文件。
答案 0 :(得分:1)
数据目录的差异很好..在Windows上,默认dbpath
将为c:\data\db
; Ubuntu包将dbpath设置为/var/lib/mongodb
。
由于您从一个空的副本集开始(并使用独立服务器的备份),最简单的方法是:
mongod
服务器(您绝对不希望将数据文件直接复制到正在运行的实例中!)。/var/lib/mongodb
数据目录中已有的所有文件。/var/lib/mongodb
。此服务器将成为您的主以设置副本集的其余部分。replSet
名称。您可能已经从已创建的“空”副本集中获得此集。rs.initiate()
shell中运行mongo
以在主服务器上创建初始配置。replSet
名称。rs.add(..)
在主服务器上的mongo
shell中添加其他服务器。假设添加成功(即mongod
可以相互连接),这将开始初始同步过程(从主数据复制数据),新主机在完成初始同步后将成为辅助主机。 这与deploy a replica set tutorial基本上是相同的步骤,除非您先复制数据。
答案 1 :(得分:0)
问题可能与mongodb
的配置文件有关找到文件mongodb.conf
并编辑dbpath参数,检查路径是否确实存在,以及是否不创建缺少的目录。还要检查该路径中的权限
无论如何我不知道它是否是在新位置复制数据文件的正确方法,我想你应该使用mongo import/export