본문 바로가기

IT Professional/Microsoft Exchange

ESEUTIL 을 사용하여 Exchange Database Clean up 하기

글을 읽기 전에…

글은 Microsoft Exchange에 대하여 어느 정도 기본적인 지식이 있거나, 또는 직접 운영하고 있는 실무자를 대상으로 합니다.

어느 날…

운영 중인 Exchange 사용자 하나로 부터 메일을 없다는 전화를 받는다.

그리고… 전화가 우르르 몰려 들기 시작한다.

가장 먼저 해야 할일은 Event log 확인이고, 서버 상의 전체 사용자가 문제가 아니라면, 특정 Storage 문제일 것이라는 추측이 가능하다.

익스체인지 관리 콘솔을 열어 보면, 분명 특정 Storage 분리(unmount) 되어있을 것이다.

해결책은?

간단하다. 해당 Storage Mount 하면 된다.

문제 해결!!!!

이라면 좋겠으나… 그렇게 쉽게 마운트 Storage 처음부터 분리되지도 않는다.

정상적으로 분리가 되면, 메시지 기타 activity 마무리 되지 않은 상태에서 지저분하게 종료되고, 정상적으로 분리되지 않은 Database storage 파일은 마운트에도 문제가 발생한다.

이제 여기서 수많은 관리자들의 하늘을 노랗게 만드는Exchange 필살 무기 ESEUTIL 사용하게 된다.

ESEUTIL

익스체인지 Database Storage 파일의 전반적인 관리를 담당하는 Tool 이다. CMD 치면 Chkdisk 압축툴을 합쳐 놓은 정도의 툴이다.

일반적으로 설치되었다면 [Drive]:program files\microsoft\exchange server\vxx\bin 위치한다.

가급적 쓰는 것이 바람직한… 예정된 작업이 아닌 상황에서 한번 쓰게 되면 최소 시말서 정도는 각오해야 하는Tool 이다.

툴을 이용해서 복구해 보자.

1. DataBase 파일의 복구

  • 먼저 StorageDatabase 복구하자. 커맨드는 아래와 같다.
  • Eseutil.exe /ml [Storage file full path]
  • 진행을 하고 완료를 하게 되면 아래와 같이 떨어진다.

  • 일단 정상적으로 복구 되었다.


2. Log 파일의 복구

  • 파일에 필수적인 로그 파일을 복구하다.
  • Eseutil.eex /ml [Log file folder full path]\[log file initial]
  • 여기서 주의할 점은 파일을 바로 지정하는 것이 아니다. 폴더.. 디렉토리를 지정해야 한다. 로그 파일의 경우 해당 폴더에서 파일이 시작하는 이름 기준으로 지정하면 된다.
  • 아래는 Test 서버에서 진행한 내용이므로, E00 지정하여 복구 하였다.

    그렇게 해서 이제 탑재를 시도하면… 대부분 되지만… 운이 나쁜 경우 이런 메시지가 나온다. (나는 대부분 운이 매우 나쁜 편에 속한다.)

    이럴 찾아 보면, 이래 저래 시키는 것들이 많은데…

    솔직히 해당 Storage Database 에만 문제가 있는 경우는 당근, Storage 파일의 문제고… eseutil로의 복구가 완전치 못하다는 것을 의미한다.

    3.최후의 수단…

    • Eseutil /p [storage file full path]
    • 명령을 실행하면 아래와 같은 경고가 출력된다.

      • 뭐라고 라고라? 일부 Data 손실될 수도 있다? 장난하냐? 거기다가 건방지게 이놈은 한글도 아니다…
      • Data 손실을 방지하고 현재 상태를 벗어나는 방법은? 없다….
      • 복구하자. 복구가 완료되면, 아래의 형태로 출력된다.

        .. 이제 탑재해 보자.. 메일이 것이다.. 다행이다…

        그래도 안되면… 방법 없다 백업 붓자…. -_-