다음을 통해 공유


검사 목록: BizTalk Server 데이터베이스 유지 관리 및 문제 해결

BizTalk Server 데이터베이스 및 해당 상태는 성공적인 BizTalk Server 데이터베이스 메시징 환경에 매우 중요합니다. 이 항목에서는 BizTalk Server 데이터베이스를 유지 관리하거나 문제를 해결할 때 따라야 하는 단계를 나열합니다.

BizTalk Server 데이터베이스 유지 관리

  • 통계 자동 업데이트통계 자동 만들기 옵션을 사용하지 않도록 설정합니다(BizTalk Server MessageBox 데이터베이스에만 적용됨). 기본적으로 이러한 설정은 BizTalk Server 구성의 일부로 구성됩니다. 이러한 설정을 변경하면 안 됩니다.

    이러한 설정을 사용하지 않도록 설정했는지 확인하려면 SQL Server 다음 저장 프로시저를 실행합니다.

    SELECT DATABASEPROPERTYEX('BizTalkMsgBoxDB', 'IsAutoCreateStatistics') AS IsAutoCreateStatistics
    SELECT DATABASEPROPERTYEX('BizTalkMsgBoxDB', 'IsAutoUpdateStatistics') AS IsAutoUpdateStatistics
    

    설정이 비활성화되었음을 나타내려면 반환되는 값이 0 이어야 합니다. 0이 반환되지 않으면 SQL Server 다음을 실행하여 설정을 사용하지 않도록 설정합니다.

    ALTER DATABASE BizTalkMsgBoxDB SET AUTO_CREATE_STATISTICS OFF
    ALTER DATABASE BizTalkMsgBoxDB SET AUTO_UPDATE_STATISTICS OFF
    

    이러한 설정에 대한 자세한 내용은 BizTalk Server BizTalkMsgBoxDb 데이터베이스에 연결하려고 할 때 차단, 교착 상태 상태 또는 기타 SQL Server 문제를 경험하세요.

  • Max Degree of Parallelism 속성을 설정합니다. 기본적으로 이 설정은 BizTalk Server 구성의 일부로 구성됩니다. 이러한 설정을 변경하면 안 됩니다.

    최대 병렬 처리 수준 run_value 설정하고 config_value 속성을 BizTalk Server MessageBox 데이터베이스를 호스트하는 SQL Server 인스턴스에서 1 값으로 설정합니다. 최대 병렬 처리 수준 설정을 검사 SQL Server Master 데이터베이스에 대해 다음 저장 프로시저를 실행합니다.

    exec sp_configure 'max degree of parallelism'
    

    run_valueconfig_value 값 1로 설정되지 않은 경우 SQL Server 다음 저장 프로시저를 실행합니다.

    exec sp_configure 'max degree of parallelism', '1' reconfigure with override
    

    최대 병렬 처리 수준 설정이 BizTalk Server 미치는 영향에 대한 자세한 내용은 BizTalk Server BizTalkMsgBoxDb 데이터베이스에 연결하려고 할 때 차단, 교착 상태 조건 또는 기타 SQL Server 문제를 경험하세요.

  • BizTalk Server 인덱스를 다시 작성할 수 있는 시기를 결정합니다.

    BizTalk Server 데이터베이스의 대부분의 인덱스는 클러스터형입니다(인덱스 ID: 1). DBCC SHOWCONTIG 명령을 사용하여 BizTalk Server 데이터베이스의 테이블에 대한 조각화 정보를 표시할 수 있습니다. 이러한 인덱스는 GUID 기반이므로 조각화가 발생하는 것이 정상입니다. DBCC SHOWCONTIG의 스캔 밀도 값이 30% 미만이면 가동 중지 시간 동안 인덱스를 다시 작성할 수 있습니다. BizTalk Server 데이터베이스의 많은 테이블에는 온라인 인덱싱을 수행할 수 없는 DataType 정의를 사용하는 열이 포함되어 있습니다. 따라서 BizTalk에서 데이터를 처리하는 동안 BizTalk Server 데이터베이스의 테이블에 대한 인덱스를 다시 작성해서는 안 됩니다.

    BizTalk 인덱스를 다시 빌드하는 방법에 대한 자세한 내용은 BizTalk Server BizTalkMsgBoxDb 데이터베이스에 연결하려고 할 때 차단, 교착 상태 상태 또는 기타 SQL Server 문제를 경험하세요.

    sys.dm_db_index_physical_stats 함수를 사용하여 SQL Server 조각화 정보를 찾을 수도 있습니다. 자세한 내용은 sys.dm_db_index_physical_stats(Transact-SQL)를 참조하세요.

  • 데이터베이스에서 잠금, 블록 또는 교착 상태를 모니터링합니다.

    BizTalk Server 사용하는 SQL Server 데이터베이스에서 잠금 및 블록이 발생할 것으로 예상되는 동작입니다. 그러나 이러한 잠금 또는 블록이 장기간 지속될 것으로 예상되지는 않습니다. BizTalk Server 사용하는 SQL Server 데이터베이스의 확장된 차단 및 교착 상태는 잠재적인 문제의 지표입니다.

    BizTalk Server 사용하는 SQL Server 데이터베이스에서 교착 상태 및 차단의 현재 알려진 원인은 BizTalk Server BizTalkMsgBoxDb 데이터베이스에 연결하려고 할 때 차단, 교착 상태 조건 또는 기타 SQL Server 문제가 발생합니다.

  • 데이터베이스 및 테이블의 크기를 모니터링합니다.

    BizTalk Server MessageBox 데이터베이스의 크기는 일반적으로 약 5GB 이상이어야 합니다. BizTalkMsgBoxDb 데이터베이스는 데이터를 보유하지 않아야 하며, 데이터가 처리되거나 BizTalkDTADb 데이터베이스로 이동될 때까지 버퍼로 간주되어야 합니다. 강력한 SQL Server 백 엔드와 수많은 장기 실행 오케스트레이션이 있는 환경에는 BizTalkMsgBoxDb 데이터베이스가 5GB보다 클 수 있습니다. 장기 실행 오케스트레이션이 없는 대용량 환경에는 BizTalk Server MessageBox 데이터베이스가 5GB보다 훨씬 작아야 합니다.

    BizTalk Server 추적 데이터베이스의 크기는 크게 달라질 수 있지만 쿼리 성능이 크게 저하되면 추적 데이터베이스가 너무 클 수 있습니다. 일반적으로 15~20GB보다 큰 BizTalk Server 추적 데이터베이스는 너무 큰 것으로 간주되어 성능에 부정적인 영향을 줄 수 있습니다.

    다음 문제는 너무 큰 BizTalk Server 데이터베이스에 기인할 수 있습니다.

    • BizTalk Server MessageBox 데이터베이스는 계속 증가하는 반면 데이터 크기(로그 파일뿐만 아니라)는 계속 커집니다. BizTalk Server 간단한 메시지 흐름 시나리오를 처리하는 데 평소보다 시간이 더 오래 걸립니다.
    • 그룹 허브 쿼리는 평소보다 시간이 오래 걸리며 시간 제한이 있을 수도 있습니다.
    • 데이터베이스 로그 파일이 잘리지 않습니다.
    • BizTalk SQL 에이전트 작업은 평소보다 느리게 실행됩니다.
    • 일부 테이블은 상당히 크거나 일반에 비해 행이 너무 많습니다.

    BizTalk Server 데이터베이스는 다음과 같은 여러 가지 이유로 커질 수 있습니다.

    • BizTalk SQL 에이전트 작업이 실행되지 않음
    • 과도한 일시 중단된 메시지 또는 서비스 인스턴스
    • 디스크 오류
    • 높은 수준의 추적
    • BizTalk Server 제한
    • 성능 저하 SQL Server
    • 네트워크 대기 시간 문제

    마찬가지로 테이블에 행이 너무 많을 수 있습니다. 너무 많은 행의 집합 수가 없습니다. 또한 이 행 수는 테이블에 저장되는 데이터의 종류에 따라 달라집니다. 예를 들어 행이 100만 개 이상인 dta_DebugTrace 테이블에 행이 너무 많을 수 있습니다. 행이 200,000개 이상인 HostNameQ_Suspended 테이블에는 행이 너무 많을 수 있습니다.

    데이터 문제가 발생하는지 여부를 확인하기 위해 사용자 환경에서 예상되는 사항을 알고 있는지 확인합니다.

  • BizTalk Server 호스트에서 추적을 사용하도록 설정합니다.

    기본적으로 추적은 기본 호스트에서 사용하도록 설정됩니다. BizTalk를 사용하려면 단일 호스트에서 호스트 추적 허용 옵션을 선택해야 합니다. 추적을 사용하도록 설정하면 TDDS(추적 데이터 디코딩 서비스)가 추적 이벤트 데이터를 BizTalk Server MessageBox 데이터베이스에서 BizTalk Server 추적 데이터베이스로 이동합니다. 호스트 추적 허용 옵션으로 구성된 BizTalk Server 호스트가 없거나 추적 호스트가 중지된 경우 TDDS가 실행되지 않고 BizTalk Server MessageBox 데이터베이스의 TrackingData_x_x 테이블이 선택되지 않은 상태로 증가합니다.

    따라서 호스트 추적 허용 옵션을 사용하여 전용 BizTalk Server 호스트를 구성해야 합니다. 전용 추적 호스트를 구성하는 방법에 대한 자세한 내용은 전용 추적 호스트 구성을 참조하세요.

    TDDS가 대용량 시나리오에서 새 추적 이벤트를 유지 관리할 수 있도록 하려면 단일 추적 호스트의 여러 인스턴스를 만들 수 있지만 추적을 위해 둘 이상의 호스트를 구성해야 합니다.

  • 올바른 BizTalk SQL Server 에이전트 작업을 사용합니다.

    BizTalk Server SQL 에이전트 작업의 실행은 BizTalk Server 데이터베이스를 관리하고 최적의 성능을 유지하는 데 중요합니다.

    • 백업 BizTalk Server SQL Server 에이전트 작업은 BizTalk Server 데이터베이스를 백업하는 유일한 지원 방법입니다. 이 작업을 수행하려면 전체 복구 모델을 사용하도록 모든 BizTalk Server 데이터베이스를 설정해야 합니다. 정상 BizTalk Server 환경에 대해 이 작업을 구성해야 합니다. SQL Server 서비스가 중지되고 모든 BizTalk Server 프로세스가 중지된 경우에만 SQL Server 메서드를 사용하여 BizTalk Server 데이터베이스를 백업할 수 있습니다.

      SQL 에이전트 백업 BizTalk Server 작업을 구성할 때 SQL Server 전체 복구 모델을 사용하는 방법에 대한 자세한 내용은 전체 복구 모델에서로그 전달 또는 백업을 참조하세요.

    • MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업은 무기한 실행되도록 설계되었습니다. 따라서 SQL 에이전트 작업 기록은 이 SQL 에이전트 작업이 성공적으로 완료되었음을 나타내지 않을 수 있습니다. 이 동작은 의도적으로 수행됩니다. 오류가 발생하면 작업이 1분 이내에 다시 시작되고 계속 실행되지 않습니다. 따라서 이 작업에 대한 오류 알림은 일반적으로 무시될 수 있습니다.

      MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업에 대한 작업 기록이 이 작업이 지속적으로 실패하고 다시 시작 중임을 나타내는 경우 실패/다시 시작 주기의 원인에 대한 추가 조사가 필요할 수 있습니다.

    • MessageBox_Message_Cleanup_BizTalkMsgBoxDb SQL Server 에이전트 작업은 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 작업에서 시작되므로 수동으로 사용하도록 설정해서는 안 되는 유일한 작업입니다.

    • DTA 제거 및 보관 SQL Server 에이전트 작업은 추적된 메시지를 제거하고 보관하여 BizTalk Server 추적 데이터베이스를 유지 관리합니다. 이 작업은 테이블의 모든 행을 읽고 각 행의 타임스탬프를 비교하여 레코드를 제거해야 하는지 여부를 결정합니다.

      BizTalk Server SQL Server 에이전트 작업의 문제를 해결할 때 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 제외한 모든 SQL 에이전트 작업이 오류 없이 완료되었는지 확인합니다.

    SQL Server 사용되는 BizTalk Server SQL 에이전트 작업에 대한 자세한 내용은 다음을 수행합니다.

  • 일시 중단된 인스턴스를 모니터링하고 종료합니다.

    서비스 인스턴스는 일시 중단(다시 시작 가능) 또는 일시 중단(다시 시작할 수 없음)할 수 있습니다. 이러한 서비스 인스턴스는 메시징, 오케스트레이션 또는 포트일 수 있습니다. BizTalk Server BizTalk Server 관리 콘솔의 그룹 허브 페이지를 사용하거나 Terminate.vbs 스크립트를 사용하여 이러한 인스턴스의 종료 및 제거를 수용합니다. Terminate.vbs 스크립트에 대한 자세한 내용은 일시 중단된 서비스 인스턴스 제거를 참조하세요.

    종결자 도구를 사용하여 일시 중단된 인스턴스를 제거할 수도 있습니다. 종결자 도구는 BizTalk 상태 모니터 포함되어 있습니다.

    "고아"와 "좀비"라는 용어는 종종 서로 바꿔서 사용됩니다. 분리된 메시지 또는 좀비 메시지는 연결된 서비스 instance 없는 메시지입니다. 일반적으로 메시지가 수신되기 전에 서비스 instance 종료되었기 때문입니다. 분리된 서비스 또는 좀비 서비스는 연결된 메시지가 없는 서비스입니다. BizTalk Server 좀비 메시지 및 서비스 인스턴스에 대한 자세한 내용은 BizTalk Server 좀비를 참조하세요.

  • PhysicalDisk 성능 개체의 성능 카운터를 모니터링합니다.

    BizTalk Server 1분 이내에 SQL Server 수 있는 짧고 매우 빠른 트랜잭션을 많이 만듭니다. SQL Server 이 활동을 유지할 수 없는 경우 BizTalk Server 성능 문제가 발생할 수 있습니다. PhysicalDisk 성능 개체에서 Avg. Disk sec/Read, Avg. Disk sec/TransferAvg. Disk sec/Write 성능 모니터 카운터를 모니터링합니다. 최적 값은 10ms(밀리초) 미만입니다. 20ms 이상의 값은 성능 저하로 간주됩니다.

    BizTalk Server 데이터베이스 고가용성에 대한 자세한 내용은 BizTalk Server 데이터베이스에 대한 고가용성 제공을 참조하세요.

  • BizTalk Server 데이터베이스에 대한 모범 사례를 따릅니다. BizTalk Server 데이터베이스 유지 관리에 대한 모범 사례를 참조하세요.

BizTalk Server 데이터베이스 문제 해결

BizTalk Server 데이터베이스와 관련된 문제를 해결하려면 다음 작업을 수행합니다.

  • 필요한 모든 BizTalk SQL Server 에이전트 작업이 사용하도록 설정되고 실행되고 있는지 확인합니다.

    MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 작업을 제외한 모든 BizTalk SQL Server 에이전트 작업을 사용하도록 설정하고 성공적으로 실행해야 합니다. 다른 작업을 사용하지 않도록 설정하지 마세요.

    오류가 발생하는 경우 SQL Server 기록 보기 옵션을 사용하여 오류 정보를 확인한 다음 그에 따라 오류를 해결합니다. MessageBox _Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업은 무한히 실행됩니다. 따라서 작업 기록이 작업이 지속적으로 실패하고 다시 시작된다는 것을 보고하는 경우에만 염려해야 합니다.

  • MsgBoxViewer 도구를 사용하여 BizTalk MessageBox 및 기타 데이터베이스를 분석합니다.

    MsgBoxViewer 도구는 BizTalk 상태 모니터 포함되어 있습니다. MsgBoxViewer 도구는 테이블 크기 및 행 수에 대한 자세한 정보가 포함된 HTML 보고서를 제공하기 때문에 문제 해결에 유용합니다. 또한 보고서는 BizTalk Server 제한되는지 여부를 확인하는 데 도움이 될 수 있습니다. 또한 이 도구는 BizTalk Server 데이터베이스 및 BizTalk Server 구성의 스냅샷 제공합니다.

    BizTalk Server 평소보다 느리게 실행되는 경우 MsgBoxViewer 도구를 실행하고 선택적 쿼리 탭에서 모든 쿼리를 클릭하여 선택한 다음 생성된 HTML 보고서를 검토하여 문제를 확인합니다. 요약 보고서 섹션에는 노란색 경고와 잠재적인 문제가 빨간색으로 나열되어 있습니다.

    또한 MsgBoxViewer 도구를 사용하여 가장 크고 레코드가 가장 많은 테이블을 확인할 수 있습니다. 일반적으로 대규모로 증가하는 테이블 목록과 이러한 테이블을 관리하는 방법에 대한 지침은 데이터베이스 테이블 BizTalk Server 크게 증가합니다.

  • 종결자 도구를 사용하여 MsgBoxViewer 도구로 식별되는 문제를 resolve.

    종결자 도구는 BizTalk 상태 모니터 포함되어 있습니다. 이 도구를 사용하면 BizTalk MsgBoxViewer 도구로 식별된 문제를 쉽게 resolve 수 있습니다.

  • 교착 상태 시나리오를 조사합니다.

    교착 상태 시나리오에서 교착 상태 정보가 SQLERROR 로그에 기록되도록 SQL Server DBCC 추적을 사용하도록 설정합니다. SQL Server 다음 문을 실행하여 교착 상태 시나리오에 대해 DBCC 추적을 사용하도록 설정합니다.

    DBCC TRACEON (1222,-1)
    

    PSSDIAG 유틸리티를 사용하여 Lock:Deadlock 이벤트 및 Lock:DeadlockChain 이벤트에 대한 데이터를 수집할 수도 있습니다. 자세한 내용은 PSSDIAG 데이터 수집 유틸리티를 참조하세요.

    BizTalkMsgBoxDB 데이터베이스는 대용량 및 대용량 OLTP(온라인 트랜잭션 처리) 데이터베이스입니다. 이러한 데이터베이스에서는 일부 교착 상태가 예상되며 이 교착 상태는 BizTalk Server 엔진에서 내부적으로 처리됩니다. 이 동작이 발생하면 오류 로그에 오류가 나열되지 않습니다. 교착 상태 시나리오를 조사할 때 출력에서 조사 중인 교착 상태는 이벤트 로그의 교착 상태 오류와 상관 관계가 있어야 합니다.

  • 차단된 프로세스를 찾습니다.

    SQL Server 활동 모니터를 사용하여 잠금 시스템 프로세스의 SPID(서버 프로세스 식별자)를 가져올 수 있습니다. 그런 다음 SQL Profiler를 실행하여 잠금 SPID에서 실행 중인 SQL 문을 확인할 수 있습니다. PSSDIAG 유틸리티를 사용하여 SQL Server 잠금 및 차단 문제를 해결할 수 있습니다. 유틸리티는 차단 스크립트를 사용하도록 설정된 모든 Transact-SQL 이벤트를 캡처합니다. 자세한 내용은 PSSDIAG 데이터 수집 유틸리티를 참조하세요.

    SQL Server 차단된 프로세스 임계값 설정을 지정하여 지정한 임계값보다 더 오래 차단되는 SPID 또는 SPID를 확인할 수 있습니다. 차단된 프로세스 임계값 옵션에 대한 자세한 내용은 차단된 프로세스 임계값 옵션을 참조하세요.

    SQL Server 잠금 또는 차단 문제가 발생하면 Microsoft 고객 지원 서비스에 문의할 수 있습니다.

  • 원치 않는 모든 데이터를 삭제합니다.

    데이터베이스가 너무 커져서 데이터베이스에 포함된 데이터가 더 이상 필요하지 않은 경우 데이터를 삭제하는 것이 좋습니다. 주의: 데이터가 중요 비즈니스용이거나 데이터가 필요한 경우 이 메서드를 사용하지 마세요.

    BizTalkMsgBox 데이터베이스를 제거하려면 다음을 수행합니다.

    1. BizTalk 상태 모니터 포함된 터미네이터 도구를 다운로드하여 설치합니다.

    2. 테스트 환경의 MessageBox 데이터베이스에서 수동으로 데이터를 제거하는 방법 항목의 단계에 따라 BizTalk MessageBox 데이터베이스에 bts_CleanupMsgbox 저장 프로시저를 만듭니다.

    3. Terminator 도구를 사용하여 bts_CleanupMsgbox 저장 프로시저를 실행하고 BizTalk MessageBox 데이터베이스를 제거합니다.

      bts_CleanupMsgbox 저장 프로시저는 데이터를 삭제합니다. 프로덕션 환경에서 이 저장 프로시저를 실행할 때는 주의해야 합니다.

    4. 모든 호스트 및 BizTalk Server 서비스를 다시 시작합니다.

    BizTalkDTADb 데이터베이스를 제거하려면 다음을 수행합니다.

    • 메서드 1

      1. 모든 BizTalk Server 데이터베이스를 백업합니다.
      2. dtasp_PurgeAllCompletedTrackingData 저장 프로시저를 실행합니다. 저장 프로시저에 대한 자세한 내용은 BizTalk 추적 데이터베이스에서 수동으로 데이터를 제거하는 방법을 참조하세요.
    • 방법 2: BizTalkDTADb 데이터베이스에 제거해야 하는 불완전한 인스턴스가 많은 경우에만 이 옵션을 사용합니다.

      1. 모든 BizTalk Server 데이터베이스를 백업합니다.
      2. 모든 BizTalk 호스트, 서비스 및 사용자 지정 격리 어댑터를 중지합니다. HTTP 또는 SOAP 어댑터를 사용하는 경우 IIS 서비스를 다시 시작합니다.
      3. BizTalkDTADb 데이터베이스에서 dtasp_CleanHMData 저장 프로시저를 실행합니다.
      4. 모든 호스트 및 BizTalk Server 서비스를 다시 시작합니다.

    추적 데이터가 있어야 하는 경우 BizTalkDTADb 데이터베이스를 백업하고 데이터베이스를 다른 SQL Server 복원한 다음 원래 BizTalkDTADb 데이터베이스를 제거합니다.

MsgBoxViewer 데이터 또는 PSSDIAG 출력을 분석하는 데 도움이 되도록 Microsoft 고객 지원 서비스에 문의하세요. 고객 지원 서비스에 문의하기 전에 MsgBoxViewer 데이터, PSSDIAG 출력 및 업데이트된 이벤트 로그(.evt 파일)를 압축합니다. 이러한 파일을 BizTalk Server 지원 엔지니어에게 보내야 할 수 있습니다.

다음

참고 항목

변경할 수 없는 SQL Server 설정