6.2.5. MongoDB
- For OpenShift v3: MongoDB 쉘 버전 3.2.6
- For OpenShift v2: MongoDB 쉘 버전 2.4.9
ssh
명령을 통해 v2 애플리케이션에 원격으로 액세스합니다.$ rhc ssh <v2_application_name>
-d <database_name> -c <collections>
으로 단일 데이터베이스를 지정하여 mongodump 를 실행합니다. 이러한 옵션이 없으면 모든 데이터베이스를 덤프합니다. 각 데이터베이스는 자체 디렉터리에서 덤프됩니다.$ 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 를 다운로드합니다.
$ 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
명령을 사용하려면mongo-tools, "mongodb:2.4"
가 포함된 이미지 태그를 지정하기 위해 기본 mongodb-persistent 템플릿을 편집해야 합니다. 따라서 다음oc get --export
명령 및 편집이 필요합니다.$ oc get -o json --export template mongodb-persistent -n openshift > mongodb-24persistent.json
mongodb-24persistent.json 의 L80을 편집하고
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
mongodb 포드가 가동되어 실행되면 데이터베이스 아카이브 파일을 v3 MongoDB Pod에 복사합니다.
$ oc rsync local/path/to/mongodump <mongodb_pod_name>:/var/lib/mongodb/data $ oc rsh <mongodb_pod>
MongoDB 포드에서 복원하려는 각 데이터베이스에 대해 다음을 완료합니다.
$ 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
데이터베이스가 복원되었는지 확인합니다.
$ mongo admin -u $MONGODB_USER -p $MONGODB_ADMIN_PASSWORD $ use dbname $ show collections $ exit
Pod에서 mongodump 디렉터리를 제거합니다.
$ rm -rf /var/lib/mongodb/data/mongodump
지원되는 MongoDB 환경 변수
v2 | v3 |
---|---|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
|