전송 서버의 큐 데이터베이스 작업

 

적용 대상: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

마지막으로 수정된 항목: 2007-08-21

는 다음 처리 단계를 기다리는 메시지를 임시로 보관하는 장소입니다. 각 큐는 Exchange 전송 서버가 특정 순서로 처리할 논리적 메시지 집합을 나타냅니다. 큐는 허브 전송 서버 역할 또는 Edge 전송 서버 역할이 설치된 컴퓨터에만 있습니다.

Microsoft Exchange Server 2007에서는 큐 메시지 저장소로 단일 ESE(Extensible Storage Engine) 데이터베이스를 사용합니다. 이전에 JET라고 했던 ESE는 Exchange Server의 기본 데이터베이스 구조에 대해 낮은 수준의 API를 정의하는 메서드입니다.

다음 시나리오에서는 응답이 없는 허브 전송 서버 또는 Edge 전송 서버에 배달되지 않은 메시지가 포함되어 있는 큐 데이터베이스가 생깁니다.

  • 큐에 배달되지 않은 메시지가 있으면 Exchange 전송 서버가 실패합니다. 또한 적절한 시간 내에 서버를 다시 온라인 상태로 만들 수 없습니다.

  • 크기가 증가하여 사용 가능한 하드 디스크 드라이브 공간을 모두 사용하는 조각난 큐 데이터베이스가 Exchange 전송 서버에 있습니다.

큐 데이터베이스 및 관련 트랜잭션 로그 파일을 대상 Exchange 전송 서버의 임시 위치로 이동하고 큐 데이터베이스를 복구하고 대상 Exchange 전송 서버에 있는 기존의 큐 데이터베이스를 대체한 다음 대상 Exchange 전송 서버에서 복구한 큐 데이터베이스를 시작할 수 있습니다. 이 대상 Exchange 전송 서버는 Exchange 조직에 있거나 다른 Active Directory 디렉터리 서비스 포리스트에 있을 수 있습니다.

시작하기 전에

다음 절차를 수행하려면 사용하는 계정이 다음을 위임받아야 합니다.

  • Exchange Server 관리자 역할

Edge 전송 서버 역할이 설치된 컴퓨터에서 다음 절차를 수행하려면 해당 컴퓨터의 로컬 관리자 그룹에 속한 계정을 사용하여 로그온해야 합니다.

사용 권한, 역할 위임 및 Microsoft Exchange Server 2007 관리에 필요한 권한에 대한 자세한 내용은 사용 권한 고려 사항을 참조하십시오.

큐 데이터베이스와 관련 파일에서 작업을 수행할 경우, 예를 들어, 대상 서버로 큐 데이터베이스를 이동하거나 오프라인 복구 및 조각 모음을 수행할 경우에는 해당 큐 데이터베이스가 있는 디렉터리에서 다음 목록의 사용 권한이 있는지 확인하십시오.

  • 네트워크 서비스: 모든 권한

  • 시스템: 모든 권한

  • 관리자: 모든 권한

복구된 큐 데이터베이스를 받기 위해 선택한 대상 Exchange 전송 서버에 원본 Exchange 서버와 동일한 Exchange 2007 서비스 팩 및 보안 업데이트가 설치되어 있어야 합니다.

가능한 경우 원본 서버와 동일한 전송 서버 역할이 있으며 복구된 큐 데이터베이스를 받을 대상 Exchange 전송 서버를 선택해야 합니다. 다음 조건 중 하나에 해당하는 경우 예기치 않은 메시지 배달 작업이 발생할 수 있습니다.

  • 원본 서버와 다른 서버 역할이 있는 Exchange 전송 서버에서 복구된 큐 데이터베이스를 시작합니다.

  • 다른 Active Directory 포리스트에 있는 Exchange 전송 서버에서 복구된 큐 데이터베이스를 시작합니다.

예를 들어, 사서함 배달 큐에서 배달을 기다리는 메시지가 원격 배달 큐를 사용하여 배달을 요구할 수 있습니다. 이전의 원격 주소는 로컬 주소가 되고 이전의 로컬 주소는 원격 주소가 될 수 있습니다. 메시지가 연결할 수 없는 큐에 나타날 수도 있습니다. 분류기를 통해 수동으로 메시지를 다시 전송해야 할 수도 있습니다. 자세한 내용은 큐의 메시지를 다시 전송하는 방법을 참조하십시오

대상 Exchange 전송 서버에서 큐 데이터베이스 복구

기본적인 큐 데이터베이스 복구 단계는 다음과 같습니다.

  1. 대상 Exchange 전송 서버의 임시 위치로 큐 데이터베이스를 이동합니다.

  2. Exchange Server 데이터베이스 유틸리티(Eseutil.exe)를 사용하여 큐 데이터베이스 복구를 수행합니다.

  3. Eseutil을 사용하여 큐 데이터베이스의 오프라인 조각 모음을 수행합니다.

  4. 복구된 큐 데이터베이스로 대체하기 위해 대상 Exchange 전송 서버에서 기존의 큐 데이터베이스를 준비합니다.

  5. 대상 Exchange 전송 서버에서 복구된 큐 데이터베이스를 시작합니다.

대상 전송 서버의 임시 위치로 큐 데이터베이스 이동

큐 데이터베이스와 트랜잭션 로그의 기본 위치는 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue입니다. 큐 데이터베이스 위치와 트랜잭션 로그 위치는 C:\Program Files\Microsoft\Exchange Server\Bin에 있는 EdgeTransport.exe.config 응용 프로그램 구성 파일에서 구성됩니다. QueueDatabasePath 매개 변수는 데이터베이스 파일의 위치를 제어하고 QueueDatabaseLoggingPath 매개 변수는 트랜잭션 로그의 위치를 제어합니다.

큐 데이터베이스는 다음 파일로 구성됩니다.

  • Mail.que 큐 데이터베이스 파일입니다.

  • Trn.chk 검사점 파일입니다.

트랜잭션 로그는 다음 파일로 구성됩니다.

  • Trn.log 현재 트랜잭션 로그 파일입니다.

  • Trntmp.log 미리 만들어진 다음에 제공되는 트랜잭션 로그 파일입니다.

  • Trnnnn.log Trn.log가 EdgeTransport.exe.config 응용 프로그램 구성 파일의 QueueDatabaeLoggingFileSize 매개 변수에서 지정한 최대 크기에 도달할 때 만들어지는 다른 트랜잭션 로그 파일입니다. 기본값은 5MB입니다.

  • Trnres00001.jrs 자리 표시자 로그 파일입니다.

  • Trnres00002.jrs 자리 표시자 로그 파일입니다.

  • Temp.edb 이 큐 데이터베이스 스키마 검사기 파일은 트랜잭션 로그 파일은 아니지만 트랜잭션 로그 파일과 함께 있습니다.

허브 전송 서버 또는 Edge 전송 서버로 큐 데이터베이스를 이동하려면 다음을 수행합니다.

  1. 해당 큐 데이터베이스가 있는 Exchange 전송 서버의 Microsoft Exchange Transport Service를 중지합니다.

    • 명령 프롬프트나 Exchange 관리 셸에서 다음 명령을 입력합니다.

      Net Stop MSExchangeTransport
      
  2. 대상 허브 전송 서버 또는 Edge 전송 서버의 임시 디렉터리로 모든 큐 데이터베이스 및 트랜잭션 로그 파일을 이동합니다. 이 예제의 목적상 임시 디렉터리는 C:\QueueRecovery입니다.

  3. 해당 Exchange 2007 전송 서버가 수정된 후 Microsoft Exchange Transport Service가 다시 시작될 때 큐 데이터베이스가 새로 만들어집니다. 큐 데이터베이스 파일을 대상 전송 서버로 복사한 후에는 언제든지 이렇게 될 수 있습니다.

큐 데이터베이스 파일에 대한 자세한 내용은 큐 데이터베이스 관리를 참조하십시오.

Eseutil을 사용하여 큐 데이터베이스 복구 수행

대상 전송 서버에서 큐 데이터베이스를 시작하기 전에 Eseutil을 사용하여 데이터베이스 복구를 수행해야 합니다. 큐 데이터베이스가 순환 로깅을 사용하므로 Eseutil /C 복원 모드를 사용할 경우 이전 트랜잭션 로그를 데이터베이스로 재생할 수 없습니다. 그러나 Eseutil /R 복구 모드를 사용하면 데이터베이스 복구를 수행할 수 있습니다. Eseutil은 오프라인 큐 데이터베이스 유지 관리 및 복구에 사용할 수 있습니다.

참고

Eseutil은 C:\Program Files\Microsoft\Exchange Server\Bin에 있습니다. 이 디렉터리는 경로에 정의되어 있습니다. 따라서 명령을 입력할 때 전체 경로를 지정하지 않아도 됩니다.

복구 프로세스는 검사점 파일을 읽고 트랜잭션 로그의 커밋되지 않은 트랜잭션을 큐 데이터베이스로 커밋합니다. 검사점 파일이 없으면 해당 트랜잭션 로그에서 사용할 수 있는 가장 오래된 로그 파일 항목의 재생을 시작합니다.

Eseutil을 사용하여 큐 데이터베이스 복구를 수행하려면 다음을 수행합니다.

  1. 명령 프롬프트나 Exchange 관리 셸에서 C:\QueueRecovery 디렉터리를 엽니다.

  2. 다음 명령을 실행합니다.

    Eseutil /r Trn /d. /8
    

    Trn은 3자의 기본 로그 파일 이름을 나타냅니다. /8은 빠른 복구를 위해 8KB 데이터베이스 페이지 크기를 설정합니다. /d.는 복구할 데이터베이스가 현재 디렉터리에 있음을 나타냅니다.

    참고

    대용량 큐 데이터베이스의 경우 데이터베이스 복구에 오랜 시간이 걸릴 수 있습니다.

Eseutil을 사용하여 데이터베이스 복구를 수행하는 방법에 대한 자세한 내용은 Eseutil /R 복구 모드를 참조하십시오.

Eseutil을 사용하여 큐 데이터베이스의 오프라인 조각 모음 수행

큐 데이터베이스 복구를 수행한 후에는 큐 데이터베이스의 일반 상태 및 성능을 위해 Eseutil /D 조각 모음 모드를 사용하여 데이터베이스에서 오프라인 조각 모음을 실행하는 것이 좋습니다. ESE 데이터베이스의 오프라인 조각 모음은 빈 데이터베이스 공백을 다시 확보하므로 데이터베이스 파일 크기를 줄일 수 있습니다.

Eseutil을 사용하여 큐 데이터베이스의 오프라인 조각 모음을 수행하려면 다음을 수행합니다.

  1. 명령 프롬프트나 Exchange 관리 셸에서 C:\QueueRecovery 디렉터리를 엽니다.

  2. 다음 명령을 실행합니다.

    Eseutil /d mail.que
    

    참고

    대용량 큐 데이터베이스의 경우 오프라인 데이터베이스 조각 모음에 오랜 시간이 걸릴 수 있습니다.

Eseutil을 사용하여 오프라인 데이터베이스 조각 모음을 수행하는 방법에 대한 자세한 내용은 Eseutil /D 조각 모음 모드를 참조하십시오.

복구된 큐 데이터베이스로 대체하기 위해 대상 Exchange 전송 서버에 있는 기존의 큐 데이터베이스 준비

복구된 큐 데이터베이스를 사용하여 대상 Exchange 전송 서버에 있는 큐 데이터베이스를 덮어쓸 수 있습니다. 그러나 그렇게 하면 대상 Exchange 전송 서버의 큐에 있는 기존의 메시지가 모두 제거됩니다. 복구된 큐 데이터베이스를 안전하게 시작하려면 먼저 대상 Exchange 전송 서버에서 다음 단계를 수행해야 합니다.

  1. 새 메시지가 큐로 흐르는 것을 중지하고 기존 메시지가 배달되도록 합니다.

  2. 모든 메시지가 배달될 때까지 사서함 배달 큐와 원격 배달 큐를 모니터링합니다.

  3. 연결할 수 없는 큐에서 저장하려는 메시지를 모두 다시 전송하거나 일시 중단하고 내보냅니다.

  4. 포이즌 메시지 큐에서 저장하려는 메시지를 모두 다시 시작하거나 내보냅니다.

  5. 복구된 큐 데이터베이스의 메시지가 유지되도록 Exchange 전송 서버의 메시지 만료 시간 제한을 수정합니다.

새 메시지가 대상 Exchange 전송 서버의 큐로 흐르는 것을 중지하고 기존 메시지가 배달되도록 하려면 다음을 수행합니다.

  • 명령 프롬프트나 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Net Pause MSExchangeTransport
    

모든 메시지가 배달될 때까지 대상 Exchange 전송 서버의 사서함 배달 큐와 원격 배달 큐를 모니터링하려면 다음을 수행합니다.

  • 대상 Exchange 전송 서버의 배달 큐를 모니터링하려면 큐 뷰어를 사용하거나 Exchange 관리 셸에서 Get-Queue cmdlet를 사용합니다. 서버의 배달 큐에 남아 있는 메시지가 없을 때까지, 즉 메시지 개수가 0으로 표시될 때까지 기다립니다.

대상 Exchange 전송 서버의 연결할 수 없는 큐에서 저장하려는 메시지를 모두 다시 전송하거나 일시 중단하고 내보내려면 다음을 수행합니다.

  1. 연결할 수 없는 큐에 있는 메시지를 다시 전송하려면 대상 Exchange 전송 서버의 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Retry-Queue -Identity "Unreachable" -Resubmit $True
    
  2. 큐 뷰어를 사용하여 연결할 수 없는 큐에서 내보낼 메시지를 일시 중단합니다.

  3. InternalMessageID.eml 형식으로 자동 메시지 파일 이름을 지정하여 연결할 수 없는 큐에서 일시 중단된 메시지를 모두 디렉터리로 내보내려면 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
    

메시지를 다시 전송하는 방법에 대한 자세한 내용은 큐의 메시지를 다시 전송하는 방법을 참조하십시오.

메시지를 일시 중단하는 방법에 대한 자세한 내용은 메시지를 일시 중단하는 방법을 참조하십시오.

메시지를 내보내는 방법에 대한 자세한 내용은 큐에서 메시지를 내보내는 방법을 참조하십시오.

대상 Exchange 전송 서버의 포이즌 메시지 큐에서 저장하려는 메시지를 모두 다시 시작하거나 내보내려면 다음을 수행합니다.

  1. 포이즌 메시지 큐의 메시지를 다시 시작하려면 다음 단계 중 하나를 수행합니다.

    • 큐 뷰어에서 해당 포이즌 메시지 큐를 선택하고 메시지를 선택한 다음 작업 창에서 다시 시작을 선택합니다.

    • Exchange 관리 셸에서 다음 명령을 실행합니다.

      Get-Message -Queue "Poison" | ft Identity
      Resume-Message <IdentityofPoisonMessage>
      
  2. InternalMessageID.eml 형식으로 자동 메시지 파일 이름을 지정하여 포이즌 메시지 큐에서 일시 중단된 메시지를 모두 디렉터리로 내보내려면 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
    

참고

포이즌 메시지 큐에는 서버 오류가 발생한 후 Exchange 2007 시스템에 유해한 것으로 판명된 메시지가 들어 있습니다. 이들 메시지는 내용이나 형식이 실제로 유해한 것일 수도 있고, Exchange 서버가 유해한 것으로 알려진 메시지를 처리할 때 서버 오류를 발생시키는 잘못 작성된 에이전트로 인한 것일 수도 있습니다. 포이즌 메시지 큐에 있는 메시지가 안전한지 알 수 없는 경우에는 해당 메시지를 검사할 수 있도록 파일로 내보냅니다. 포이즌 메시지 큐에서 메시지를 제거하려는 경우에는 NDR(배달 못 함 보고서)을 보내지 않고 제거합니다. NDR에 원본 메시지의 내용이 포함되어 있을 수 있습니다. 포이즌 메시지 큐의 메시지는 이미 일시 중단된 상태에 있습니다. 따라서 내보내기 전에 일시 중단할 필요가 없습니다. 포이즌 메시지 큐는 Retry-Queue cmdlet를 Resubmit 매개 변수와 함께 사용하여 다시 전송할 수 없습니다. 포이즌 메시지 큐의 메시지를 다시 전송하려면 큐 뷰어를 사용하여 메시지를 다시 시작하거나 Resume-Message cmdlet를 사용해야 합니다.

메시지를 다시 전송하는 방법에 대한 자세한 내용은 메시지를 다시 시작하는 방법을 참조하십시오.

복구된 큐 데이터베이스의 메시지가 유지되도록 대상 Exchange 전송 서버의 메시지 만료 시간 제한을 수정하려면 다음을 수행합니다.

  • Exchange 관리 셸에서 다음 명령을 실행합니다.

    Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
    

    기본적으로 배달되지 않은 메시지는 NDR과 함께 보낸 사람에 반환되고 큐에서 삭제됩니다. 다음 조건에 해당하는 경우 메시지 만료 시간 제한 간격을 늘려야 합니다.

    • 복구하려는 큐 데이터베이스가 2일 넘게 오프라인 상태에 있습니다.

    • 큐 데이터베이스가 복구된 후 2일 이내에 메시지 배달을 마치지 못했습니다.

    이로 인해 큐 데이터베이스가 시작된 후 즉시 메시지를 삭제할 수 없거나 다시 시작된 데이터베이스가 오래된 메시지를 배달하기 때문에 메시지를 삭제할 수 없습니다.

메시지 만료에 대한 자세한 내용은 메시지 다시 시도, 다시 전송 및 만료 간격 관리를 참조하십시오.

대상 Exchange 전송 서버에서 복구된 큐 데이터베이스 시작

대상 Exchange 전송 서버에서 복구된 큐 데이터베이스를 시작하려면 다음을 수행합니다.

  1. 대상 Exchange 전송 서버의 명령 프롬프트나 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Net Stop MSExchangeTransport
    
  2. "C:\QueueRecovery"의 모든 파일을 사용하여 대상 Exchange 전송 서버에 있는 기존의 모든 빈 큐 데이터베이스 파일과 트랜잭션 로그 파일을 덮어씁니다. 큐 데이터베이스와 트랜잭션 로그의 기본 위치는 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue입니다.

  3. 명령 프롬프트나 Exchange 관리 셸에서 다음 명령을 실행합니다.

    Net Start MSExchangeTransport
    

복구 후 구성 작업

대상 Exchange 전송 서버에서 복구된 큐 데이티베이스가 시작되면 메시지 흐름이 시작됩니다. 다음 목록에서는 발생할 가능성이 있는 문제에 대해 설명합니다.

  • 복구된 큐 데이터베이스가 실패한 Exchange 2007 서버에서 온 경우 포이즌 메시지 큐의 메시지를 처리해야 합니다. 포인즌 메시지 큐의 각 메시지에 대해 해당 메시지가 실제로 Exchange 2007 서버 오류의 원인인지 또는 해당 메시지를 포이즌 메시지 큐에 잘못 넣은 것인지 결정해야 합니다. 메시지를 다시 시작하거나 메시지를 내보내서 검사할 수도 있습니다. 포이즌 메시지 큐에 있는 메시지가 안전한지 알 수 없는 경우에는 해당 메시지를 검사할 수 있도록 파일로 내보내야 합니다. 포이즌 메시지 큐에서 메시지를 제거하려는 경우에는 NDR을 보내지 않고 제거합니다. NDR에 포이즌 메시지의 내용이 포함되어 있을 수 있습니다.

  • 연결할 수 없는 큐 및 배달 큐에서 준비 상태에서 정체되어 있는 메시지를 처리해야 합니다. 이러한 메시지는 수동으로 다시 전송해야 합니다.

  • 배달 문제가 있는 메시지를 제거하려는 경우에는 메시지 제거 시 NDR을 보낼 것인지 여부를 결정해야 합니다. 메시지를 제거하고 NDR을 보내면 NDR 메시지 자체도 배달해야 합니다. 게다가 NDR 메시지에도 자체의 배달 문제가 있을 수 있습니다. NDR을 보내지 않고 문제가 있는 메시지를 제거할 수 있습니다. 메시지를 제거하는 방법에 대한 자세한 내용은 큐에서 메시지를 제거하는 방법을 참조하십시오.

  • 복구된 큐 데이터베이스를 대상 Exchange 전송 서버에 영구 보관할 것인지 아니면 묶여 있는 메시지를 모두 배달한 후에 새 큐 데이터베이스로 대체할 것인지를 고려해야 합니다. 복구된 큐 데이터베이스를 시작하면 바로 새 메시지가 Exchange 전송 서버의 정상적인 메시지 배달 작업의 일부로 큐에 들어갑니다. 새 복사본을 사용하여 큐 데이터베이스를 대체하려는 경우에는 다음 단계를 수행해야 합니다.

    1. 기존의 메시지가 완전히 없어질 때까지 Microsoft Exchange Transport Service를 일시 중지합니다. 그 동안에는 새 메시지를 받아들이지 않습니다.

    2. Microsoft Exchange Transport Service를 중지합니다.

    3. 큐 데이터베이스 파일과 트랜잭션 로그 파일을 모두 삭제합니다.

    4. Microsoft Exchange Transport Service를 시작합니다.

자세한 내용

자세한 내용은 다음 항목을 참조하십시오.