1. MongoDB 데이터 백업/복구 종류

* 데이터 베이스의 백업/복제

: 데이터의 안전한 저장과 값에 대한 일관성 보장

: 장애 발생시 가장 중요하게 필요한 것이 백업과, 복구

: NoSQL특성상 분산되기 때문에 단순히 파일을 복사하는 것만으로는 데이터 복제와 복구가 싶지 않음

: MongoDB는 다양한 백업/복구 기능을 지원

* ShutDown & File copy

: 가장 기초적인 백업 방법

: 간단하긴하지만, I/O를 막아 무결성을 지키기 위해 mongoDB를 끄고 해야하는 단점이 존재

: 새로운 서버에 복사 붙여넣기만 하는 것으로 간단하게 처리 가능

: 너무 용량이 큰 경우 시간이 많이 소요되므로 필요한 경우만 사용.

* FSyncLock & Backup

: 데이터 베이스 전체에 락을 걸고 데이터를 복사하는 방법

: 무결성 이슈에서 자유로움

: 복제, 복구 등 작업이 끝나면 unlock을 해야함.

* MongoDump, MongoRestore

: 가장 흔하게 사용하는 방법

: 컬렉션, DB, 전체 데이터 단위로 백업 가능

: BSON형태로 저장되며, 더 빠르게 백업과 복구가능

: 백업된 데이터는 mongorestore 명령어를 통해 복구 가능

* MongoExport, MongoImport

: Mongodump, MongoRestore와의 차이는, 데이터를 json, csv, TSV형태로 백업이 가능하다.

: BSON보다 느리며 텍스트 형태로 저장

: 데이터를 마이그레이션할 때 외부 툴을 사용할 수 있다.

: MongoImport 명령어로 복구 가능

* Primary, Secondary & Replica

- Replica : MySQL의 리플리케이션에 해당하는 명령어

: Master-Slave를 동기화 하기 때문에 Main서버와 동일한 데이터 유지가능

: 쿼리를 통해 변경/삭제한 것은 복구가 어려움.

- 리플리케이션 세트

: Master-Slave를 통해 자동으로 Main서버가 고장났을 때 Slave서버를 Master로 올려 안정성을 확보한다.

* SnapShot 백업

: 사용자의 데이터를 더 안전하게 보관하기 위한 일종의 버퍼

: 대량의 Insert트래픽을 견딜 수 있어야함.

: 1.6v 부터 Journal 시스템 도입

: 데이터 입력시 메모리상의 Journal 시스템에 해당 내용을 저장한뒤 디스크에 내용을 저장함

: 디스크에 문제가 생긴 경우, Journal에 존재하는 데이터를 통해 복구가 가능

2. MongoDB 데이터 백업/복구 방법

* FSyncLock & Backup

: 실습 데이터 생성

> 실습 데이터 생성하기

: 로컬상에서 데이터 복사

> use admin

> db.copyDatabase("DB명","복사된DB명")    //    ""안에 쓰기

> show dbs

: 원격지로 데이터 복사

> db.copyDatabase("DB명","복사될DB명","192.168.1.77:27017")

: 원격지에서 데이터 가져오기

> db.cloneDatabase("192.168.1.77");

* MongoDump, MongoRestore

: MongoDump (mongo shell 밖에서 실행)

> mongodump --host 127.0.0.1     //    현재 실행되어 있는 DB의 내용을 BSON형태로 백업하겠다.

: MongoRestore (mongo shell 밖에서 실행)

> mongorestore -h 127.0.0.1 ./dump/    //    해당 폴더로 해당 데이터를 복구 시켜준다.

* MongoExport, MongoImport

: MongoExport

> mongoexport -h 192.168.1.77 -c 콜랙션명 -d DB명 -o "경로/test.exp"     //    해당 호스트에서 돌아가고있는 DB의 Collection을 test.exp로 백업하겠다.

: MongoImport

> mongoimport -d test -c things --type json --file "경로"    //    해당 경로의 백업파일을 현재 돌아가고 있는 DB의 DB의 컬랙션에 복구한다.






+ Recent posts