【发布时间】:2014-05-15 17:09:05
【问题描述】:
完全披露:我是 mongodb 的一个完整的 n00b,并且刚刚在 AWS 上使用 mongo 弄湿了我的脚(但在 IT 领域工作了 2 年,所以不是一个完整的 n00b:P)
我设置了一个 EBS 卷并在 EC2 实例上安装了 mongo。 我的问题是我最初配置的 EBS 卷太小。 当我意识到这一点时,我:
- 创建了一个新的更大的 EBS 卷
- 将其安装在服务器上
- 停止 mongo ($ sudo service mongod stop)
- 将我的所有 /data/db 文件复制到新卷中
- 更新了 conf 文件和 fstab(分别为新卷的 dbpath、logpath、pidfilepath 和挂载点)
- 重启 mongod
当我执行时:$ sudo service mongod start
- 一切正常。
- 我可以在 admin 和 local 数据库中进行操作。
但是,当我运行 mongos 命令时:> 显示数据库
- 我只看到管理员和本地。
- 未列出我复制到新卷中的数据库(名为包含)。
我仍然有数据库的工作本地副本,所以我的数据不会丢失,只是不确定如何最好地移动 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