블로그 읽기 배너 사이트 로고

몽고DB mongodump, mongorestore (원격 덤프와 리스토어)

운동해야지
2024-06-27 23:12:59

원격에 몽고DB 가 있고 local 에서 mongodump 를 사용하여 백업하고 mongorestore 하는 예제를 작성해 본다.

원격 mongo db 는 한대의 서버에 3 개의 mongo db 를 실행하고 replica set 으로 설정되어 있는 상태.

 

백업 명령: 

mongodump --host 리플리카셋이름/mongo0:27017,mongo1:27018,mongo2:27019 --username 유저아이디 --password 패스워드  --authenticationDatabase admin --db 백업할 디비이름 --out ./backup  

* 참고 ./backup/백업할 디비이름의 폴더가 생성된다.

 

리스토어 명령:

 mongorestore --host 리플리카셋이름/mongo0:27017,mongo1:27018,mongo2:27019 --username 유저아이디 --password 패스워드  --authenticationDatabase admin --db 리스토어할디비명 ./backup/백업한 디비이름

 

명령은 위에 처럼 작성하면 된다. 여기서 mongo0:27017, mongo1:27018, mongo2:27019 에 대해 설명하자면 원격의 서버에 직접 접속하는 것이 아니라 ssh 를 통해 터널을 구성하여 마치 로컬에 mongo db 가 설치된 것처럼 접속하여 사용한다는 점이다.

 

ssh  터널 명령:

ssh -v -p 원격ssh포트(22면 없어도 된다) -fNn -L -L 27017:127.0.0.1:27017 -L 27018:127.0.0.1:27018 -L 27019:127.0.0.1:27019 원격주소

- 이 방식을 사용하려면 원격에 ssh로 접근을 할수 있는 상태여야 한다. 

마지막으로 mongo0, mongo1, mongo2 를 /etc/hosts 에 추가해 준다.

127.0.0.1    localhost  <-- 이건 아마 대부분 이미 작성 되어 있을거고, 없으면 추가해 주세요.

127.0.0.1    mongo0, mongo1, mongo2  <-- 추가해 준다