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

2025. 1. 19. 18:38·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로의 마이그레이션은 신중하게 계획하고 실행해야 합니다. 특히 대용량 데이터베이스의 경우, 충분한 테스트와 백업이 필요합니다.

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

'MongoDB' 카테고리의 다른 글

MongoDB Aggregate 파이프라인  (0) 2025.02.25
MongoDB 프로젝션(Projection)  (0) 2025.02.15
MongoDB 쿼리 작성법과 최적화  (2) 2024.12.03
'MongoDB' 카테고리의 다른 글
  • MongoDB Aggregate 파이프라인
  • MongoDB 프로젝션(Projection)
  • MongoDB 쿼리 작성법과 최적화
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (512) N
      • 상품 추천 (33) N
      • MongoDB (4)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • 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)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바