mongoDB dump

여리·2024년 7월 24일
0

지금까지 계속 RDB(mysql)을 사용하던 내게 mongoDB를 사용하게 되는 기회가 찾아왔다. 매번 새로움을 배워야하는것에 대해서 어려움이 있지만 그래도 배움을 하고 사용을 확장한다는 것은 늘 긍정으로 받아들이게 되는 연습을 하면 즐겁다!

각설하고 제목대로 noSQL(mongoDB)의 데이터 dump를 해보자!

dump 명령법 1)

$ mongodump --host{호스트 정보} --port{포트 번호}
ex) mongodump --host {serverhost} --port {port} --username {username} --password {password} --db {dbname} --authenticationDatabase {인증에 사용할 데이터베이스} --authenticationMechanism {인증메커니즘} --out /path/to/your/dump/directory

여기서
--host : MongoDB 서버의 호스트명
--port : MongoDB 서버의 포트번호
--username : 사용자명
--password : 비밀번호
--db : 덤프할 데이터베이스 이름
--authenticationDatabase : 인증에 사용할 데이터베이스 (일반적으로 사용자 계정이 저장된 데이터베이스)
--authenticationMechanism : 인증 메커니즘 (예: SCRAM-SHA-1)
--out : 덤프 파일을 저장할 디렉토리 경로

dump 명령법 2)

$ mongodump --uri={uri} --out={output_directory}
ex) mongodump --uri="mongodb://username:password@serverhost:port/database?auth-mechanism" --out=/path/to/your/dump/directory

여기서
--out : 덤프 파일을 저장할 디렉토리 경로. 예를 들어, --out=./dump를 사용하면 현재 디렉토리에 dump라는 폴더가 생성되고 그 안에 덤프 파일들이 저장된다.

추가로 특정 컬렉션만 덤프하는 방법

mongodump --uri="mongodb://username:password@serverhost:port/database?auth-mechanism"  --collection=yourCollectionName --out=/path/to/your/dump/directory

기타 추가옵션

--gzip : 덤프 파일을 gzip 형식으로 압축하여 저장
--archive : 모든 덤프 데이터를 하나의 아카이브 파일로 저장

예시) 로컬호스트의 기본 db dump

$ mongodump --host localhost(또는 127.0.0.1) --port 27017

이렇게 하면 위치하고있는 디렉토리(폴더) 위치에 dump폴더로 데이터들이 있다.

차이점 요약

편리성:

--uri : 모든 연결 정보를 하나의 문자열로 지정하므로 간편하고 읽기 쉽다.
--host와 --port : 개별 옵션으로 지정해야 하므로 설정이 분리된다.

세부 설정:

--uri : URI 문자열 내부에서 모든 세부 설정을 포함할 수 있다.
--host와 --port : 추가적인 인증 정보와 데이터베이스 이름 등을 별도로 지정해야 한다.

이 두 예제는 같은 결과를 도출하지만, 설정 방식이 다르다. 더 간편한 방법을 원한다면 --uri를 사용하는 것이 좋다. 개별적으로 설정을 더 세밀하게 관리하고 싶다면 --host와 --port를 사용하는 것이 좋다.

그리고 이렇게 dump된 정보들을 보게되면

데이터들 안을 드려다보게되면 각 document로 데이터를 관리하게된다.
mongoDB는 BSON 형태로 저장하고 JSON의 형태로 출력된다.

다음 내용은 BSON과 JSON이 무엇인지 알아보는 시간이 필요해졌다.

profile
beckend developer

0개의 댓글