MongoDB 데이터베이스 복구

Mehvish Ashiq 2022년6월13일
MongoDB 데이터베이스 복구

이 튜토리얼은 우리가 직면한 문제에 따라 Windows 운영 체제에서 MongoDB를 사용하여 데이터베이스를 복구하는 방법에 대해 설명합니다.

MongoDB에서 데이터베이스 복구

MongoDB를 사용하여 데이터베이스를 복구해야 하는 다양한 시나리오가 있습니다. 예를 들어, 부적절하거나 부정확한 종료가 있거나 불일치 및 오류를 확인하려는 경우 데이터베이스를 복구합니다.

시스템이 실수로 종료되는 경우에도 데이터베이스를 복구합니다. 복구 프로세스에 들어가기 전에 MongoDB 데이터베이스의 구성 요소를 이해합시다.

MongoDB 데이터베이스 구성 요소

MongoDB 데이터베이스에는 아래에 간략하게 설명된 세 가지 구성 요소가 있습니다.

  1. mongo - 경고 로그를 확인하는 대화형 쉘 예를 들어, 작업을 자세히 설명하고 재시도합니다.
  2. mongos - 프로세스 ‘부적절한 종료. 또한 인스턴스에서 강제로 연결을 끊었습니다.
  3. mongod - 백그라운드 작업 및 데이터 요청을 처리하는 데몬 프로세스입니다.

다음은 몇 가지 문제점과 해당 솔루션입니다.

문제 1: 시스템이 실수로 종료됨

다음은 이 문제에 대한 단계별 솔루션입니다. 단계를 수행하기 전에 root 디렉토리에 data 폴더가 있어야 합니다.

  • cd/ 명령을 사용하여 Windows OS에서 디렉토리를 root, C:\>로 변경합니다.
  • mongod.exe 서비스의 전체 경로를 복사합니다. 이 경우 C:\Program Files\MongoDB\Server\5.0\bin\mongod.exe입니다.

    --repair 매개변수도 추가했습니다.

    C:\> "C:\Program Files\MongoDB\Server\5.0\bin\mongod.exe" --dbpath C:\data --repair
    
  • Enter 키를 누르고 완료될 때까지 기다립니다. 완료되면 데이터베이스가 복구됩니다.

문제 2: 부적절한 종료에 대한 MongoDB 복구

MongoDB에서 작업하는 동안 비정상 종료가 발생하고 저널링이 비활성화된 경우 데이터가 일치하지 않을 수 있습니다. 비어 있지 않은 mongod.lock 파일이 있는 경우 다음 오류 메시지가 표시됩니다.

에러 메시지:

Detected unclean shutdown – mongod.lock is not empty

이 특정 문제에 대한 솔루션이 아래에 나와 있습니다.

  • Windows 명령 프롬프트에서 cd/ 명령을 사용하여 root 디렉토리로 전환합니다.
  • --dbpath에 데이터 파일의 백업 복사본을 만듭니다.
  • --repair를 사용하여 MongoDB를 초기화합니다.
  • 아래 주어진 명령을 실행하고 Enter 키를 누르십시오.
C:\> mongod --dbpath /data/db --repair

완료되면 MongoDB가 복구됩니다.

문제 3: 연결 실패 부정확한 종료 감지됨

우리 중 누구라도 다음과 같은 오류에 직면하면 2단계 프로세스를 따라야 합니다.

에러 메시지:

couldn't connect to server 127.0.0.1 shell/mongo.js:8 4 exceptions: connect failed Unclean shutdown detected

1단계: Windows 명령 프롬프트를 열고 cd/를 입력하여 디렉토리를 root로 변경합니다.

2단계: 아래와 같이 명령을 실행하고 Enter 키를 누르고 이 작업이 끝날 때까지 기다립니다. 완료되면 이제 MongoDB가 복구됩니다.

C:\> mongod --repair
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook