백엔드 Back-end/데이터베이스 Database

Q. MongoDB 데이터베이스 백업Dump과 복원Restore 하는 방법은?

Tap to restart 2022. 8. 5. 19:00
반응형

A. mongodump와 mongorestore 명령어를 활용하면 된다. 

 

EC2에 아래 글을 참고해서 우선 MongoDB를 설치하자.

참고할 글: Q. AWS EC2에 MongoDB 설치하고 외부 접속 가능하게 만드는 방법은?

 

테스트 데이터 입력하기

MongoDB Compass로 접속해서 아래처럼 test란 데이터베이스를 만들고 collection이란 collection을 만들어서 아무 데이터나 하나 넣었다.

 

mongodump

어드민으로 사용자를 추가한 경우 --authenticationDatabase="admin" 를 추가해줘야 한다.

mongodump --host="3.35.154.100:27017" --username="taptorestart" --password="password" --db="test" --authenticationDatabase="admin"

 

위 명령어를 실행하면 아래처럼 결과가 나온다.

2022-08-05T14:43:43.457+0900	writing test.collection to dump/test/collection.bson
2022-08-05T14:43:43.474+0900	done dumping test.collection (1 document)

 

해당 디렉터리로 가면 bson 파일을 발견할 수 있다!

 

복원 테스트를 위해서 docker로 mongodb를 설치하자.

 

docker로 mongodb 설치

docker hub에서 mongodb를 찾을 수 있다. tag에서 사용하고 있는 컴퓨터에 맞는 버전을 고르자. 5.0을 골랐다면 명령어 예는 아래와 같다. 

$ docker run --name mongodb \
      -p 27017:27017 \
      -d mongo:5.0

로컬이고, 사용자 추가를 안 했으므로 그냥 connect를 누른다. 

접속에 성공했다!

 

mongorestore

 

기본 설정값이 127.0.0.1:27017로 복원하는 거라 명령어만 실행했는데 바로 복원된 것을 확인할 수 있다.

$ mongorestore

 

2022-08-05T16:24:28.970+0900	using default 'dump' directory
2022-08-05T16:24:28.970+0900	preparing collections to restore from
2022-08-05T16:24:28.971+0900	reading metadata for test.collection from dump/test/collection.metadata.json
2022-08-05T16:24:28.980+0900	restoring test.collection from dump/test/collection.bson
2022-08-05T16:24:28.991+0900	finished restoring test.collection (1 document, 0 failures)
2022-08-05T16:24:28.991+0900	no indexes to restore for collection test.collection
2022-08-05T16:24:28.991+0900	1 document(s) restored successfully. 0 document(s) failed to restore.

아까 보이지 않던 test 데이터베이스가 추가된 것을 볼 수 있다.

 

반응형