몽고DB mongodump, mongorestore (원격 덤프와 리스토어)
원격에 몽고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 <-- 추가해 준다