데이터베이스는 항상 백업과 복구를 할 일이 생기기 마련입니다. MongoDB에서는 dump와 restore를 위해 mongodump
와 mongorestore
를 사용합니다.
mongodump
MongoDB path가 환경 변수로 등록되어 있거나, 아니라면 MongoDB가 설치된 bin 디렉토리에 가서 mongodump
명령어를 사용해 MongoDB 전체나 특정 DB, 또는 컬렉션을 BSON 형태로 덤프받을 수 있습니다.
> mongodump -h localhost
2018-03-23T10:53:19.338+0900 writing admin.system.version to
2018-03-23T10:53:19.339+0900 done dumping admin.system.version (1 document)
...
2018-03-23T10:53:19.351+0900 done dumping dms.refresh_token (2232 documents)
위처럼 mongodump 명령어를 사용하면 MongoDB에 접속해서 데이터베이스의 덤프를 dump
라는 폴더 아래에 내려받게 됩니다. DB별로 디렉토리가 하나씩 생기고, 그 아래에 컬렉션 별로 BSON 파일이 생성됩니다. -d
또는 --db
, -c
또는 --collection
옵션을 통해 특정 데이터베이스, 또는 특정 데이터베이스의 컬렉션만 덤프받을 수도 있습니다.
> mongodump -h localhost -d test_db
2018-03-23T10:53:53.715+0900 writing dms.refresh_token to
2018-03-23T10:53:53.715+0900 writing dms.notice to
...
2018-03-23T10:53:53.725+0900 done dumping dms.refresh_token (2232 documents)
> mongodump -d dms -c refresh_token
2018-03-23T10:54:33.638+0900 writing dms.refresh_token to
2018-03-23T10:54:33.648+0900 done dumping dms.refresh_token (2232 documents)
다른 옵션들은 mongodump 매뉴얼이나 mongodump --help
커맨드를 이용해 알아볼 수 있습니다.
mongorestore
mongodump를 이용하여 BSON 파일을 얻어냈다면 같은 디렉토리의 mongorestore
를 이용해 데이터베이스를 복구할 수 있습니다.
> mongorestore -h localhost ~/dump/
이 경우 mongorestore는 /dump
디렉토리 하위에 있는 데이터베이스별 디렉토리를 순회하며, BSON 파일을 통해 데이터베이스를 복구합니다. 특정 데이터베이스만 복구하려면 -d
옵션과 함께 mongorestore를 수행합니다.
> mongorestore -h localhost -d dms ~/dump/dms/
백업 디렉토리의 하위에 있는 해당 데이터베이스의 백업 디렉토리를 기입하여야 합니다. mongorestore는 단순히 insert만 있기 때문에, 겹치는 데이터가 있더라도 해당 값을 덮어쓰지 않습니다. 복구 전에 존재하는 컬렉션을 없애고 싶다면 --drop
옵션을 사용합니다.
> mongorestore -h localhost -d dms --drop ~/dump/dms/
다른 옵션들은 mongodump 매뉴얼이나 mongorestore --help
커맨드를 이용해 알아볼 수 있습니다.
'데이터베이스 > MongoDB' 카테고리의 다른 글
[MongoDB] 인증(authorization) 추가하기 (0) | 2018.09.06 |
---|