Mongodb 원격 서버에 있는 Collection을 로컬환경 서버로 복사하기

@Frank Oh · July 24, 2022 · 2 min read

개발 시 원격에 있는 데이터를 로컬환경에 그대로 복사해서 테스트할 필요가 종종 생긴다. 그전 포스팅에서는 같은 서버에서 collection을 cloning 하는 방법에 대해서 알아보았다면, 이번에는 원격에서 로컬환경으로 cloning 하는 방법에 대해서 알아보자.

1.mongodump

mongodump 명령어는 mongo shell 명령어가 아니라 MongoDB 설치 시 같이 설치되는 command line 명령어이다. mongodump는 mongodb의 data를 export 해주는 도구이다.

  • --host : 호스트 명
  • --port : 포터
  • -u : 사용자
  • -p : 암호
  • --db : database 이름
$ mongodump --host remotehost --port 27017 -u username -p 'password' --db clone
2022-07-24T22:45:15.852+0900    writing clone.inventory to dump/clone/inventory.bson
2022-07-24T22:45:15.854+0900    writing clone.inventory3 to dump/clone/inventory3.bson
2022-07-24T22:45:15.857+0900    writing clone.inventoryclone to dump/clone/inventoryclone.bson
2022-07-24T22:45:15.862+0900    done dumping clone.inventoryclone (3 documents)
2022-07-24T22:45:15.862+0900    done dumping clone.inventory (3 documents)
2022-07-24T22:45:15.862+0900    done dumping clone.inventory3 (3 documents)

실행 후 백업되는 데이터는 dump/database_이름 폴더 안에 백업 파일이 생성된다.

$ cd dump/clone
$ ls 
inventory.bson               inventory.metadata.json      inventory3.bson              inventory3.metadata.json     inventoryclone.bson          inventoryclone.metadata.json

2.mongoimport

dump 뜬 데이터를 mongoimport로 로컬환경에 생성하려면 mongoimport를 사용하면 된다.

  • --uri : mongodb 주소를 입력한다
  • -d : database 이름
  • -c : collection 이름
$ mongoimport --uri "mongodb://localhost:27017" -d clone2 -c inventory inventory.metadata.json
2022-07-24T22:56:53.354+0900    connected to: mongodb://localhost:27017
2022-07-24T22:56:53.381+0900    1 document(s) imported successfully. 0 document(s) failed to import.

정리

이미 파악한 분도 계시겠지만, mongodump, mongoimport 명령어를 사용하면 아래와 같이 여러 시스템으로 cloning이 가능해진다.

  • 원격 서버 -> 로컬환경
  • 원격 서버 -> 다른 원격 서버
  • 로컬환경 -> 로컬환경

참고

@Frank Oh
안녕하세요. 방문해주셔서 감사합니다. 컴퓨터 관련 스터디한 내용 기록하는 블로그입니다.