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 손실을 방지하고 현재 상태를 벗어나는 방법은? 없다….
- 복구하자. 복구가 완료되면, 아래의 형태로 출력된다.
자.. 이제 탑재해 보자.. 메일이 될 것이다.. 다행이다…
그래도 안되면… 방법 없다 백업 붓자…. -_-