如何从MongoDB 2.4.9本地的OpenShift和mongorestore中获取mongodump?

时间:2014-11-26 22:50:03

标签: mongodb mongodump mongorestore

我自己就这样做了(因为RockMongo导出和导入已损坏)所以只是在这里发布。

请注意,这是针对MongoDB版本2.4.9以及相应版本的mongodumpmongorestore

1 个答案:

答案 0 :(得分:22)

首先阅读与您的版本相关的文档,备份,确保下面的解决方案与您的方案等相关。

http://docs.mongodb.org/v2.4/reference/program/mongodump/
http://docs.mongodb.org/v2.4/reference/program/mongorestore/


BEGIN 20/11/18更新

我只需要重新审视这些步骤,以下内容可能对其他人有所帮助:

01)要查看所有MongoDB环境变量,请从本地计算机运行:

oc exec mongodb-XX-XXXXX env 

(从评论here收集)

02)要执行转储,请转到openshift控制台中的pod终端并输入:

mongodump --host MONGODB_SERVICE_HOST:MONGODB_SERVICE_PORT --username admin --password "MONGODB_ADMIN_PASSWORD"

使用运行上一个命令时显示的实际值替换变量名称。

我必须使用用户名admin而不是MONGODB_USER的环境变量值。

03)如果要压缩转储文件夹,请在控制台的pod终端中执行此操作:

tar czf my_dump.tar.gz dump

(从评论here收集)

04)要从本地PC终端下载文件夹,请执行以下操作:

oc rsync mongodb-20-XXXXX:/opt/app-root/src/dump /c/Users/Your-Directory

(从official docsblog post here收集)

END 20/11/18更新


SSH In

rhc ssh [app-name]
cd app-root/repo/

检查您拥有的mongodump版本:

mongodump --version
mongodump version 2.4.9

mongodump

以下命令将转储* ALL *数据库。

mongodump --host $OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT --username $OPENSHIFT_MONGODB_DB_USERNAME --password $OPENSHIFT_MONGODB_DB_PASSWORD  

Zip转储文件夹

zip -r dump.zip dump

退出SSH

exit

通过SCP下载

(将下面的环境变量替换为实际值)。

scp OPENSHIFT_APP_UUID@appname-username.rhcloud.com:~/app-root/repo/dump.zip /var/www/html

SSH重新登录并删除转储文件

rhc ssh [app-name]
cd app-root/repo/
rm -r dump 
rm -r dump.zip

在本地命令行中,转到下载zip文件的目录:

cd /var/www/html

解压缩转储文件夹

unzip dump.zip -d dump

查看您拥有的mongorestore版本以及所有内容是否兼容:

mongorestore --version
mongorestore version 2.4.9

此时,我删除了RockMongo中所有本地*对应的*数据库,以便还原过程从头开始创建它们。

<强> mongorestore

mongorestore dump

使用的默认主机和端口是localhost27017