MongoDB 데이터베이스를 백업하고 복구하는 방법
MongoDB 데이터베이스를 백업하고 복구하는 방법은 중요한 데이터의 안전성을 보장하기 위한 핵심적인 작업 중 하나입니다. MongoDB는 다양한 백업 및 복구 옵션을 제공하며, 이를 통해 데이터 손실을 방지하고 데이터를 안전하게 관리할 수 있습니다.
MongoDB 백업하기
1. mongodump 사용
mongodump 명령을 사용하여 MongoDB 데이터베이스를 백업할 수 있습니다.
예를 들어, mydb 데이터베이스를 backup 디렉토리에 백업하려면 다음과 같이 실행합니다.
mongodump --db mydb --out /path/to/backup/directory
이 명령은 지정한 데이터베이스의 모든 컬렉션을 JSON 형식으로 백업합니다.
2. mongodump 옵션 설명
- --db: 백업하려는 데이터베이스의 이름을 지정합니다.
- --out: 백업 파일을 저장할 디렉토리 경로를 지정합니다.
MongoDB 복구하기
1. mongorestore 사용
mongorestore 명령을 사용하여 MongoDB 데이터베이스를 복구할 수 있습니다. 백업한 데이터베이스를 mydb_restored로 복구하려면 다음과 같이 실행합니다.
mongorestore --db mydb_restored /path/to/backup/directory/mydb
이 명령은 백업된 데이터베이스를 지정한 이름으로 복구합니다.
2. mongorestore 옵션 설명
- --db: 복구할 데이터베이스의 이름을 지정합니다.
- --dir: 백업 디렉토리의 경로를 지정합니다.
사용 예시
백업(mongodump)하기
- 모든 데이터를 백업
mongodump --host HOST_NAME --port PORT_NUMBER
- 지정한 경로에 백업
mongodump --host 127.0.0.1 --port 27017 --out /tmp/mongo_backup
$ mongodump --host 127.0.0.1 --port 27017 --out /tmp/mongo_backup
2021-07-15T09:50:57.544+0900 writing admin.system.version to
2021-07-15T09:50:57.545+0900 done dumping admin.system.version (1 document)
2021-07-15T09:50:57.545+0900 writing WEB_STATIC.WEBACC_DATE to
2021-07-15T09:50:57.545+0900 writing WEB_STATIC.WEBACC_KEYWORD to
2021-07-15T09:50:57.545+0900 writing WEB_STATIC.WEBACC_TOTAL to
2021-07-15T09:50:57.546+0900 writing WEB_STATIC.WEBACC_LOG to
2021-07-15T09:51:00.530+0900 [........................] WEB_STATIC.WEBACC_KEYWORD 289993/85209455 (0.3%)
2021-07-15T09:51:00.530+0900 [........................] WEB_STATIC.WEBACC_DATE 192123/348907014 (0.1%)
2021-07-15T09:51:00.530+0900 [........................] WEB_STATIC.WEBACC_TOTAL 212446/5980259 (3.6%)
2021-07-15T09:51:00.530+0900 [........................] WEB_STATIC.WEBACC_LOG 163050/4280165 (3.8%)
...
2021-07-15T10:30:03.529+0900 [#######################.] WEB_STATIC.WEBACC_DATE 346562554/348907014 (99.3%)
2021-07-15T10:30:06.530+0900 [#######################.] WEB_STATIC.WEBACC_DATE 347105234/348907014 (99.5%)
2021-07-15T10:30:09.530+0900 [#######################.] WEB_STATIC.WEBACC_DATE 347653502/348907014 (99.6%)
2021-07-15T10:30:12.529+0900 [#######################.] WEB_STATIC.WEBACC_DATE 348239348/348907014 (99.8%)
2021-07-15T10:30:15.529+0900 [#######################.] WEB_STATIC.WEBACC_DATE 348812834/348907014 (100.0%)
2021-07-15T10:30:15.811+0900 [########################] WEB_STATIC.WEBACC_DATE 348918903/348907014 (100.0%)
2021-07-15T10:30:15.811+0900 done dumping WEB_STATIC.WEBACC_DATE (348918903 documents)
- 아카이브(gzip)로 백업
mongodump --host 127.0.0.1 --port 27017 --archive=/tmp/mongo_backup/serv-205.gz
- 백업 파일 전송
- tar ssh 전송
cd /tmp/mongo_backup/admin
tar czf - * | ssh root@222.222.222.222 "cd /tmp/mongo_backup/admin; tar xfp -"
복구(mongorestore)하기
- 지정한 경로로 복구
mongorestore --host 127.0.0.1 --port 27017 --db admin /tmp/mongo_backup/admin
$ mongorestore --host 127.0.0.1 --port 27017 --db admin --drop /tmp/mongo_backup/admin
2021-07-15T13:37:29.670+0900 The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude=${DATABASE}.${COLLECTION}
2021-07-15T13:37:29.670+0900 building a list of collections to restore from /tmp/mongo_backup/admin dir
2021-07-15T13:37:29.670+0900 reading metadata for db.system.version from /tmp/mongo_backup/admin/system.version.metadata.json
2021-07-15T13:37:29.672+0900 finished restoring db.system.version (0 documents, 0 failures)
2021-07-15T13:37:29.672+0900 Failed: db.system.version: error creating collection db.system.version: error running create command: (InvalidNamespace) cannot write to 'db.system.version'
2021-07-15T13:37:29.672+0900 0 document(s) restored successfully. 0 document(s) failed to restore.
- 아카이브(gzip)로 복구하기
mongorestore --host 127.0.0.1 --port 27017 --gzip --archive=/tmp/mongo_backup/serv-205.gz
MongoDB의 백업 및 복구 옵션은 다양하며, 클러스터 환경에서의 백업과 복구도 고려해야 합니다. 데이터베이스 운영 환경에 따라 적절한 백업 전략을 설정하고 백업 주기를 관리하는 것이 중요합니다.
Reference > MongoDB Package Components > mongodump
https://docs.mongodb.com/database-tools/mongorestore/
https://docs.mongodb.com/v4.2/reference/program/mongodump/
'리눅스' 카테고리의 다른 글
lsyncd 로그 파일의 로테이션을 구성하는 방법 (0) | 2023.09.25 |
---|---|
sysfsutils 설치 및 systool 명령어 사용하는 방법 (0) | 2023.09.24 |
PHP Redis 확장(Extension) 모듈을 설치하는 방법 (0) | 2023.09.24 |
리눅스에서 SHA-256 해시를 생성하고 파일의 무결성을 확인하는 방법 (0) | 2023.09.24 |
fmt 명령어 (0) | 2023.09.24 |