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 쉘 버전 3.2.6
- OpenShift v2: MongoDB 쉘 버전 2.4.9의 경우
ssh
명령을 통해 v2 애플리케이션에 원격으로 액세스합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow rhc ssh <v2_application_name>
$ rhc ssh <v2_application_name>
mongodump 를 실행하여
-d <database_name> -c <collections>로 단일 데이터베이스를 지정합니다
. 이러한 옵션이 없으면 모든 데이터베이스를 덤프합니다. 각 데이터베이스는 자체 디렉터리에 덤프됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 $ exit
mongodump 디렉터리의 로컬 머신에 dbdump 를 다운로드합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.gz
v3에서 MongoDB 포드를 시작합니다. 최신 이미지(3.2.6)에는 mongo-tools 가 포함되지 않으므로
mongorestore
또는mongoimport
명령을 사용하려면 기본 mongodb-persistent 템플릿을 편집하여mongo-tools, "mongodb:2.4"
가 포함된 이미지 태그를 지정해야 합니다. 따라서 다음oc export
명령 및 편집이 필요합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc export template mongodb-persistent -n openshift -o json > mongodb-24persistent.json
$ oc export template mongodb-persistent -n openshift -o json > mongodb-24persistent.json
L80 of mongodb-24persistent.json 을 편집하고
mongodb:latest
를mongodb:2.4
로 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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
mongodb pod가 실행 중이면 데이터베이스 아카이브 파일을 v3 MongoDB Pod에 복사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
MongoDB 포드에서 복원할 각 데이터베이스에 대해 다음을 완료합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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/mongodump
데이터베이스가 복원되었는지 확인합니다.
Copy 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 $ exit
Pod에서 mongodump 디렉터리를 제거합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm -rf /var/lib/mongodb/data/mongodump
$ rm -rf /var/lib/mongodb/data/mongodump
지원되는 MongoDB 환경 변수
v2 | v3 |
---|---|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
|