mongodump 사용시 조건을 주어 백업하기
원격일 경우,
--collection 컬렉션이름 : 이 옵션을 안쓰면 전체 db를 백업하게 됩니다.
mongodump --host 대상서버아이피 --port 포트번호 --db db이름 --collection 컬렉션이름 --out 백업시킬경로 --query 쿼리조건
예)
저희가 저장하고 있는 incident_traffic 컬렉션의 데이터 중
time : 2014-02-18 00:12:41
이렇게 시간 컬럼이 있습니다.
백업 서버 : 1.1.1.1
데이터가 실제 있는 서버 : 2.2.2.2
몽고DB의 포트 : 27017
db 이름 : aptsys
하루동안의 데이터만 백업시키려면 다음과 같이 합니다
mongodump -u userID -p userPW --host 2.2.2.2 --port 27017 --db aptsys --collection incident_traffic --out /home/mongo/backup --query '{time:{"$gte":"2014-02-18 00:00:00" ,"$lte":"2014-02-18 23:59:59"}}'
time 필드가 아니고 info 필드 내의 time 필드 (?) 일 경우 이와 같이 사용
> info.time
1.1.1.1 서버의 /home/mongo/backup 의 공간에 해당 데이터들이 쌓입니다.
주의점 -> 항상 전체 컬렉션에서 해당 쿼리에 맞는 데이터를 쌓기 때문에 오늘 덤프를 뜨든, 내일 덤프를 뜨든 늘 전체 데이터를 full scan 합니다. 항상 전체 데이터에서 퍼센테이지 올라가는거보고 " 왜 쿼리가 안먹혀? " 라고 생각하지 마세요~
백업된 dump 파일을 서버로 옮기려면
mongorestore 를 합니다.
mongorestore --host 127.0.0.1 --port 27017 /home/mongo/backup/aptsys
'리눅스 > MySQL' 카테고리의 다른 글
root 관리자 계정 이름을 다른 아이디로 변경 하기 (0) | 2019.12.06 |
---|---|
MySQL 5.6 소스 설치 (0) | 2019.08.29 |
mysqldump 사용시 조건을 주어 백업하기 (0) | 2019.06.18 |
MySQL general 로그를 logrotate 로 관리하기 (0) | 2019.06.04 |
MySQL 5.7 소스 설치하기 (0) | 2019.05.13 |