This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.2.5. MongoDB
- 对于 OpenShift v3: MongoDB shell 版本 3.2.6
- 对于 OpenShift v2: MongoDB shell 版本 2.4.9
通过
ssh命令远程访问 v2 应用程序:rhc ssh <v2_application_name>
$ rhc ssh <v2_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 mongodump,使用
-d <database_name> -c <collections>指定单个数据库。如果没有这些选项,转储所有数据库。每个数据库在其自己的目录中转储:mongodump -h $OPENSHIFT_MONGODB_DB_HOST -o app-root/repo/mydbdump -u 'admin' -p $OPENSHIFT_MONGODB_DB_PASSWORD cd app-root/repo/mydbdump/<database_name>; tar -cvzf dbname.tar.gz exit
$ mongodump -h $OPENSHIFT_MONGODB_DB_HOST -o app-root/repo/mydbdump -u 'admin' -p $OPENSHIFT_MONGODB_DB_PASSWORD $ cd app-root/repo/mydbdump/<database_name>; tar -cvzf dbname.tar.gz $ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 dbdump 下载到 mongodump 目录中的本地机器:
mkdir mongodump rhc scp -a <v2 appname> download mongodump \ app-root/repo/mydbdump/<dbname>/dbname.tar.gz
$ mkdir mongodump $ rhc scp -a <v2 appname> download mongodump \ app-root/repo/mydbdump/<dbname>/dbname.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 v3 中启动 MongoDB pod。由于最新的镜像(3.2.6)不包括 mongo-tools,若要使用
mongorestore或mongoimport命令,您需要编辑默认的 mongodb-persistent 模板,以指定包含mongo-tools, “mongodb:2.4”的镜像标签。因此,需要以下oc export命令和编辑:oc export template mongodb-persistent -n openshift -o json > mongodb-24persistent.json
$ oc export template mongodb-persistent -n openshift -o json > mongodb-24persistent.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 mongodb-24persistent.json 的第 80 行;将
mongodb:latest替换为mongodb:2.4。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当 mongodb pod 上线并运行时,将数据库存档文件复制到 v3 MongoDB pod 中:
oc rsync local/path/to/mongodump <mongodb_pod_name>:/var/lib/mongodb/data oc rsh <mongodb_pod>
$ oc rsync local/path/to/mongodump <mongodb_pod_name>:/var/lib/mongodb/data $ oc rsh <mongodb_pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 MongoDB pod 中,为您要恢复的每个数据库完成以下内容:
cd /var/lib/mongodb/data/mongodump tar -xzvf dbname.tar.gz mongorestore -u $MONGODB_USER -p $MONGODB_PASSWORD -d dbname -v /var/lib/mongodb/data/mongodump
$ cd /var/lib/mongodb/data/mongodump $ tar -xzvf dbname.tar.gz $ mongorestore -u $MONGODB_USER -p $MONGODB_PASSWORD -d dbname -v /var/lib/mongodb/data/mongodumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查数据库是否已恢复:
mongo admin -u $MONGODB_USER -p $MONGODB_ADMIN_PASSWORD use dbname show collections exit
$ mongo admin -u $MONGODB_USER -p $MONGODB_ADMIN_PASSWORD $ use dbname $ show collections $ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 pod 中删除 mongodump 目录:
rm -rf /var/lib/mongodb/data/mongodump
$ rm -rf /var/lib/mongodb/data/mongodumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
支持的 MongoDB 环境变量
| v2 | v3 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|