Dump
서비스할 웹사이트의 데이터베이스는 DBNAME이며 접근을 위한 uri와 password를 설정파일(.yaml)로 미리 작성한다.uri에는 엔드포인드와 username, db명이 포함된다. (mongoDB uri string Path)
password의 경우 !로 끝날경우 uri에 포함될 시 파싱에러가 발생하여 별도로 분리해야한다.
uri: uri: "mongoDB주소(mongodb://id:pathword@ ~ / db명 ? replicaSet = ..)"
password: "mongoDB비밀번호"
웹사이트의 db로부터 백업을 받을 때 다음의 명령어를 이용한다.
mongodump --config="YAML파일 이름".yaml --forceTableScan
Restore
설정파일 ("YAML파일 이름".yaml)
복원할 데이터베이스가 원본 데이터와 다를 경우 별도의 설정파일이 필요하다.
mongorestore 명령을 이용할 때 uri 옵션에는 db명이 포함될 수 없다.
"YAML파일 이름".yaml 파일의 uri와 달리 db명이 생략된 uri를 사용해야 한다.
uri: "mongoDB주소(mongodb://id:pathword@ ~ /? replicaSet = ..)"
password: "mongoDB비밀번호"
웹사이트 db로부터 백업받은 데이터를 다른 db로 복원(Restore or Dump)할 경우 아래와 같은 명령어를 이용한다.
- nsFrom: source db.collection 명
- nsTo: destination db.collection 명
아래 명령의 경우 dump 디렉토리의 "원래" db의 모든 collection을 복원 대상으로 한다.
"복원"db에 동일 collection명으로 복원을 시도한다는 것을 의미한다.
drop 옵션은 restore 전에 동일 collection이 있을 경우 drop한 후에 restore함을 의미한다.
즉 "원래" db를 로컬머신의 dump 디렉토리로 백업했던 것을 "복원" db로 복원한 것이다.
mongorestore --drop --config="복원 DB".yaml --nsFrom="원래 DB".* --nsTo="복원 DB".*
'데이터베이스 > MongoDB' 카테고리의 다른 글
[MongoDB] 인덱스 교차 (Index Interserction) (0) | 2023.03.20 |
---|---|
[MongoDB] 접두사 인덱스, 등치 (Index Prefix, Equality)란? (0) | 2023.03.20 |
[MongoDB] 인덱스 검색, 인덱스 정렬 방식에 따른 검색속도 차이 (0) | 2023.03.20 |
[MongoDB] Single Field Indexes, Compound Index (단일 인덱스, 복합 인덱스) (0) | 2023.03.14 |
[MongoDB] 인덱스(index)란? 인덱스 설계 시 고려할 점 (0) | 2023.03.13 |
댓글