从localhost迁移到EBS卷后,MongoDB不会看到数据库或集合

问题描述 投票:0回答:2

完全披露:我是mongodb的完整n00b,我刚刚在AWS上使用mongo(但是在IT工作了20年,所以不是总计n00b:P)

我在EC2实例上设置了EBS卷并安装了mongo。我的问题是我最初配置的EBS卷太小了。当我意识到这一点时:

  1. 创建了一个新的更大的EBS卷
  2. 将它安装在服务器上
  3. 停止mongo($ sudo service mongod stop)
  4. 将所有我的/ data / db文件复制到新卷中
  5. 更新的conf文件和fstab(分别为新卷的dbpath,logpath,pidfilepath和挂载点)
  6. 重启了mongod

当我执行:$ sudo service mongod start - 一切都运行良好。 - 我可以在管理员和本地数据库中使用。

但是,当我运行mongos命令时:> show databases - 我只看到管理员和本地人。 - 未列出我复制到新卷(名为包含)的数据库。

我仍然有一个工作的数据库本地副本,所以我的数据不会丢失,只是不知道如何最好的移动mongo数据除了:

A)开始将数据导入AWS服务器上的数据库(不是我想要的,因为它已经加载到我的本地数据库中)

B)再次将本地数据库复制到新的EBS卷(也不是首选,但更好的是从头再次导入所有数据!)。

注意:最初我使用此命令将数据安全复制到EBS卷中:

$ scp -r -i / / ec2-user @:/

然后,当我在卷之间复制时,我使用了一个vanilla cp命令。

我在这里错过了什么吗?

我在SO和网络上找到的最好的就是这个过程(How to scale MongoDB?),但也许我错过了命令中的切换或对进程的错误,使我的数据库文件变得惰性/无用?

知道如何让mongo看到我的其他数据库文件和集合吗?或者我是否在某处发生了不可逆转的错误?

谢谢你的帮助!!

mongodb amazon-web-services amazon-ec2 database-migration database
2个回答
0
投票

你确定你正在加载conf文件吗?对于测试,您可以加载mongod.exe并直接指定数据库的路径进行测试,即:

mongod --dbpath c:\ mongo \ data \ db(unix语法可能会有所不同,这是windows)

从命令行运行它,看看mongo抱怨什么,如果有的话。


0
投票

数据库具有非常挑剔的算法,很容易损坏。在从一个数据库复制到另一个数据库之前,您应该为数据库设定种子,一些虚拟条目将告诉您数据库是否正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.