搜索

6.2.5. MongoDB

download PDF
注意
  • 对于 OpenShift v3:MongoDB shell 版本 3.2.6
  • 对于 OpenShift v2:MongoDB shell 版本 2.4.9
  1. 通过 ssh 命令远程访问 v2 应用程序:

    $ rhc ssh <v2_application_name>
  2. 运行 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
  3. dbdump 下载到 mongodump 目录中的本地机器:

    $ mkdir mongodump
    $ rhc scp -a <v2 appname> download mongodump \
      app-root/repo/mydbdump/<dbname>/dbname.tar.gz
  4. 在 v3 中启动 MongoDB pod。由于最新的镜像(3.2.6)不包括 mongo-tools,若要使用 mongorestoremongoimport 命令,您需要编辑默认的 mongodb-persistent 模板,以指定包含 mongo-tools, “mongodb:2.4” 的镜像标签。因此,需要以下 oc get --export 命令并编辑:

    $ oc get -o json --export template mongodb-persistent -n openshift > mongodb-24persistent.json

    编辑 mongodb-24persistent.json 的第 80 行;将 mongodb:latest 替换为 mongodb:2.4

    $ oc new-app --template=mongodb-persistent -n <project-name-that-template-was-created-in> \
      MONGODB_USER=user_from_v2_app -p \
      MONGODB_PASSWORD=password_from_v2_db -p \
      MONGODB_DATABASE=v2_dbname -p \
      MONGODB_ADMIN_PASSWORD=password_from_v2_db
    $ oc get pods
  5. 当 mongodb pod 上线并运行时,将数据库存档文件复制到 v3 MongoDB pod 中:

    $ oc rsync local/path/to/mongodump <mongodb_pod_name>:/var/lib/mongodb/data
    $ oc rsh <mongodb_pod>
  6. 在 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
  7. 检查数据库是否已恢复:

    $ mongo admin -u $MONGODB_USER -p $MONGODB_ADMIN_PASSWORD
    $ use dbname
    $ show collections
    $ exit
  8. 从 pod 中删除 mongodump 目录:

    $ rm -rf /var/lib/mongodb/data/mongodump

支持的 MongoDB 环境变量

v2v3

OPENSHIFT_MONGODB_DB_HOST

[service_name]_SERVICE_HOST

OPENSHIFT_MONGODB_DB_PORT

[service_name]_SERVICE_PORT

OPENSHIFT_MONGODB_DB_USERNAME

MONGODB_USER

OPENSHIFT_MONGODB_DB_PASSWORD

MONGODB_PASSWORD

OPENSHIFT_MONGODB_DB_URL

 

OPENSHIFT_MONGODB_DB_LOG_DIR

 
 

MONGODB_DATABASE

 

MONGODB_ADMIN_PASSWORD

 

MONGODB_NOPREALLOC

 

MONGODB_SMALLFILES

 

MONGODB_QUIET

 

MONGODB_REPLICA_NAME

 

MONGODB_KEYFILE_VALUE

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.