Windows에서 Linux로 MongoDB 마이그레이션 하기

2025. 1. 19. 18:38·DataBase/MongoDB
반응형

소개

MongoDB를 Windows에서 Linux 환경으로 마이그레이션하는 전체 과정을 상세히 알아보겠습니다. MongoDB 8.0.3 버전을 기준으로 설명하겠습니다.

Linux에 MongoDB 설치하기

Ubuntu/Debian 환경

# 1. MongoDB GPG 키 가져오기
sudo apt-get update
sudo apt-get install gnupg curl

curl -fsSL https://pgp.mongodb.com/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

# 2. MongoDB 리포지토리 추가
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

# 3. 패키지 업데이트 및 MongoDB 설치
sudo apt-get update
sudo apt-get install -y mongodb-org

RHEL/CentOS 환경

# 1. 리포지토리 파일 생성
sudo tee /etc/yum.repos.d/mongodb-org-8.0.repo <<EOF
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-8.0.asc
EOF

# 2. MongoDB 설치
sudo yum install -y mongodb-org

Windows에서 데이터베이스 백업하기

MongoDB 서비스 중지

# 관리자 권한으로 PowerShell 실행
net stop MongoDB

mongodump 실행

# 전체 데이터베이스 백업
mongodump --out C:\mongodb_backup

# 특정 데이터베이스만 백업
mongodump --db your_database_name --out C:\mongodb_backup

# 인증이 필요한 경우
mongodump --uri "mongodb://username:password@localhost:27017" --out C:\mongodb_backup

백업 파일 압축

# 7-Zip 사용
"C:\Program Files\7-Zip\7z.exe" a C:\mongodb_backup.zip C:\mongodb_backup\*

백업 파일 Linux 서버로 전송

SCP 사용

# Windows PowerShell에서
scp C:\mongodb_backup.zip username@server_ip:/home/username/

# 또는 Linux 서버에서 다운로드
scp username@windows_ip:C:/mongodb_backup.zip /home/username/

SFTP 사용

# SFTP 접속
sftp username@server_ip

# 파일 업로드
put C:\mongodb_backup.zip

# 종료
exit

Linux에서 MongoDB 설정 및 복원

MongoDB 설정

# 1. MongoDB 설정 파일 수정
sudo nano /etc/mongod.conf

# 2. 주요 설정 내용
storage:
  dbPath: /var/lib/mongodb
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
net:
  port: 27017
  bindIp: 0.0.0.0  # 외부 접속 허용 시

# 3. 디렉토리 권한 설정
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb

MongoDB 서비스 시작

# 서비스 시작
sudo systemctl start mongod

# 서비스 상태 확인
sudo systemctl status mongod

# 부팅 시 자동 시작 설정
sudo systemctl enable mongod

백업 복원

# 1. 백업 파일 압축 해제
unzip mongodb_backup.zip

# 2. mongorestore 실행
# 전체 데이터베이스 복원
mongorestore /home/username/mongodb_backup

# 특정 데이터베이스 복원
mongorestore --db your_database_name /home/username/mongodb_backup/your_database_name

# 인증이 필요한 경우
mongorestore --uri "mongodb://username:password@localhost:27017" /home/username/mongodb_backup

마이그레이션 확인

데이터 정합성 검증

// MongoDB Shell에서
// 컬렉션 개수 확인
db.collection_name.count()

// 샘플 데이터 확인
db.collection_name.find().limit(5)

// 인덱스 확인
db.collection_name.getIndexes()

성능 확인

// 쿼리 실행 계획 확인
db.collection_name.find({your_query}).explain("executionStats")

문제 해결 및 주의사항

자주 발생하는 문제

1. 권한 문제

# MongoDB 디렉토리 권한 재설정
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb

 

2. 메모리 부족

 

# 시스템 메모리 확인
free -h

# swap 공간 확인
swapon --show

 

3.디스크 공간

# 디스크 사용량 확인
df -h

# MongoDB 데이터 디렉토리 크기 확인
du -sh /var/lib/mongodb

 

보안 설정

# 방화벽 설정
sudo ufw allow 27017

# MongoDB 인증 활성화
security:
  authorization: enabled

마치며

MongoDB의 Windows에서 Linux로의 마이그레이션은 신중하게 계획하고 실행해야 합니다. 특히 대용량 데이터베이스의 경우, 충분한 테스트와 백업이 필요합니다.

저작자표시 비영리 변경금지 (새창열림)

'DataBase > MongoDB' 카테고리의 다른 글

MongoDB Aggregate 파이프라인  (0) 2025.02.25
MongoDB 프로젝션(Projection)  (0) 2025.02.15
MongoDB 쿼리 작성법과 최적화  (3) 2024.12.03
'DataBase/MongoDB' 카테고리의 다른 글
  • MongoDB Aggregate 파이프라인
  • MongoDB 프로젝션(Projection)
  • MongoDB 쿼리 작성법과 최적화
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    스마트스토어리뷰
    C#
    스크립트 실행 순서
    codingcommunity
    programming101
    유니티
    스크립트 실행
    programmerlife
    cv2
    unity
    카페24리뷰이관
    learntocode
    appdevelopment
    codingtips
    긴유통기한우유
    상품 리뷰 크롤링
    카페24리뷰
    devlife
    list
    셀레니움
    rtsp
    리뷰관리
    쇼핑몰리뷰
    파이썬
    믈레코비타멸균우유
    Python
    라떼우유
    리스트
    ipcamera
    리뷰이관
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Windows에서 Linux로 MongoDB 마이그레이션 하기
상단으로

티스토리툴바