다음을 통해 공유


데이터베이스에 대한 파일 그룹 최적화

I/O(파일 입력/출력) 경합은 프로덕션 BizTalk Server 환경에서 제한 요소 또는 병목 상태인 경우가 많습니다. BizTalk Server 매우 데이터베이스 집약적인 애플리케이션이며, BizTalk Server 사용하는 SQL Server 데이터베이스는 매우 파일 I/O 집약적입니다. 이 항목에서는 파일 I/O 경합의 발생을 최소화하고 BizTalk Server 솔루션의 전반적인 성능을 향상시키기 위해 SQL Server 파일 및 파일 그룹 기능을 최적으로 사용하는 방법을 설명합니다.

개요

모든 BizTalk Server 솔루션은 처리량이 증가함에 따라 결국 파일 I/O 경합이 발생합니다. I/O 하위 시스템 또는 스토리지 엔진은 관계형 데이터베이스의 핵심 구성 요소입니다. 성공적인 데이터베이스 구현을 위해서는 일반적으로 프로젝트의 초기 단계에서 신중한 계획이 이루어져야 합니다. 계획 시 다음 문제를 고려해야 합니다.

  • 사용할 디스크 하드웨어의 유형. 예를 들면 RAID(독립 디스크의 중복 배열) 장치가 있습니다.

  • 파일 및 파일 그룹을 사용하여 디스크에 데이터를 할당하는 방법입니다. SQL Server 파일 및 파일 그룹을 사용하는 방법에 대한 자세한 내용은 데이터베이스 파일 및 파일 그룹을 참조하세요.

  • 데이터에 액세스할 때 성능을 향상시키기 위한 최적의 인덱스 디자인을 구현합니다. 인덱스 디자인에 대한 자세한 내용은 인 덱스 디자인을 참조하세요.

  • 최적의 성능을 위해 SQL Server 구성 매개 변수를 설정하는 방법입니다. SQL Server 최적의 구성 매개 변수를 설정하는 방법에 대한 자세한 내용은 서버 구성 옵션을 참조하세요.

    BizTalk Server 주요 디자인 목표 중 하나는 메시지가 손실되지 않도록 하는 것입니다. 메시지 손실 가능성을 완화하기 위해 메시지가 처리될 때 메시지가 MessageBox 데이터베이스에 자주 기록됩니다. 메시지가 오케스트레이션에 의해 처리되면 메시지는 오케스트레이션의 모든 지속성 지점에서 MessageBox 데이터베이스에 기록됩니다. 이러한 지속성 지점으로 인해 MessageBox는 메시지 및 관련 상태를 실제 디스크에 씁니다. 더 높은 처리량에서 이 지속성은 상당한 디스크 경합을 초래할 수 있으며 잠재적으로 병목 상태가 될 수 있습니다.

    SQL Server 파일 및 파일 그룹 기능을 최적으로 사용하여 파일 IO 병목 상태를 효과적으로 해결하고 BizTalk Server 솔루션의 전반적인 성능을 개선하는 것으로 나타났습니다.

참고

이 최적화는 숙련된 SQL Server 데이터베이스 관리자만 수행해야 하며 모든 BizTalk Server 데이터베이스가 제대로 백업된 후에만 수행되어야 합니다. 이 최적화는 BizTalk Server 환경의 모든 SQL Server 컴퓨터에서 수행해야 합니다.

이 기능을 사용하면 여러 디스크, 여러 디스크 컨트롤러 또는 RAID(독립 디스크의 중복 배열) 시스템에서 데이터베이스를 만들 수 있으므로 SQL Server 파일 및 파일 그룹을 사용하여 데이터베이스 성능을 향상시킬 수 있습니다. 예를 들어 컴퓨터에 4개의 디스크가 있으면 각 디스크마다 하나의 파일을 두어 3개의 데이터 파일과 한 개의 로그 파일로 구성된 데이터베이스를 만들 수 있습니다. 데이터에 액세스하면 4개의 읽기/쓰기 헤드가 동시에 데이터에 병렬로 액세스할 수 있습니다. 이렇게 하면 데이터베이스 작업의 속도가 크게 향상됩니다. SQL Server 디스크에 대한 하드웨어 솔루션을 구현하는 방법에 대한 자세한 내용은 SQL Server 온라인 설명서의 데이터베이스 성능을 참조하세요.

또한 특정 파일 그룹에 테이블을 만들 수 있으므로 파일 및 파일 그룹을 사용하면 데이터 배치가 가능합니다. 지정된 테이블에 대한 모든 파일 I/O를 특정 디스크로 전송할 수 있으므로 성능이 향상됩니다. 예를 들어, 많이 사용되는 테이블은 한 디스크에 있는 파일 그룹의 파일에 배치할 수 있으며, 데이터베이스의 액세스가 덜 적은 다른 테이블은 두 번째 디스크에 있는 다른 파일 그룹의 다른 파일에 있을 수 있습니다.

파일 I/O 병목 현상은 데이터베이스 계층의 병목 현상에 대해 자세히 설명합니다. 파일 I/O(디스크 I/O)가 병목 상태라는 가장 일반적인 지표는 "실제 디스크:평균 디스크 큐 길이" 카운터의 값입니다. "실제 디스크:평균 디스크 큐 길이" 카운터의 값이 SQL Server 실행 중인 컴퓨터의 지정된 디스크에 대해 약 3보다 크면 파일 I/O가 병목 현상일 수 있습니다.

파일 또는 파일 그룹 최적화를 적용해도 파일 I/O 병목 현상 문제가 resolve 않는 경우 물리적 또는 SAN 드라이브를 추가하여 디스크 하위 시스템의 처리량을 늘려야 할 수 있습니다.

이 항목에서는 파일 및 파일 그룹 최적화를 수동으로 적용하는 방법을 설명하지만 이러한 최적화를 스크립팅할 수도 있습니다. 샘플 SQL 스크립트는 BizTalk Server MessageBox 데이터베이스 파일 그룹 SQL 스크립트에 제공됩니다.

참고

지정된 BizTalk Server 솔루션에 대해 SQL Server 데이터베이스에서 사용하는 파일, 파일 그룹 및 디스크 구성을 수용하도록 이 스크립트를 수정해야 합니다.

기본 BizTalk Server 구성으로 만든 데이터베이스

BizTalk Server 구성할 때 사용할 수 있는 기능에 따라 SQL Server 최대 13개의 다른 데이터베이스를 만들 수 있으며 이러한 모든 데이터베이스는 기본 파일 그룹에 만들어집니다. 기본 파일 그룹이 ALTER DATABASE 명령을 사용하여 변경되지 않는 한 SQL Server 기본 파일 그룹은 기본 파일 그룹입니다. 다음 표에서는 BizTalk Server 구성할 때 모든 기능이 사용하도록 설정된 경우 SQL Server 생성된 데이터베이스를 나열합니다.

BizTalk Server 데이터베이스

데이터베이스 기본 데이터베이스 이름 Description
구성 데이터베이스 BizTalkMgmtDb BizTalk Server 그룹의 모든 BizTalk Server 인스턴스에 대한 중앙 메타 정보 저장소입니다.
BizTalk MessageBox 데이터베이스 BizTalkMsgBoxDb 구독 조건자를 저장합니다. 호스트 플랫폼이며 각 BizTalk Server 호스트에 대한 큐 및 상태 테이블을 유지합니다. 또한 메시지와 메시지 속성도 저장합니다.
BizTalk 추적 데이터베이스 BizTalkDTADb BizTalk Server 추적 엔진에서 추적하는 비즈니스 및 상태 모니터링 데이터를 저장합니다.
BAM 분석 데이터베이스 BAMAnalysis 비즈니스 활동에 대해 집계된 기록 데이터를 유지하는 데이터베이스를 SQL Server Analysis Services.
BAM 스타 스키마 데이터베이스 BAMStarSchema OLAP 처리를 위해 비즈니스 활동 모니터링에서 수집된 데이터를 변환합니다. BAM 분석 데이터베이스를 사용하는 경우 이 데이터베이스가 필요합니다.
BAM 기본 가져오기 데이터베이스 BAMPrimaryImport 비즈니스 활동의 이벤트를 저장한 다음 활동 인스턴스 이후의 진행률 및 데이터를 쿼리합니다. 이 데이터베이스는 실시간 집계도 수행합니다.
BAM 보관 데이터베이스 BAMArchive 구독 조건자를 저장합니다. BAM 보관 데이터베이스는 BAM 주 가져오기 데이터베이스에서 비즈니스 활동 데이터의 누적을 최소화합니다.
SSO 데이터베이스 SSODB 수신 위치에 대한 구성 정보를 안전하게 저장합니다. SSO 관련 애플리케이션에 대한 정보와 암호화된 사용자 자격 증명을 모든 관련 애플리케이션에 저장합니다.
규칙 엔진 데이터베이스 BizTalkRuleEngineDb 리포지토리:

- 관련 규칙 집합인 정책입니다.
- 규칙의 데이터 참조에 대해 사용자에게 친숙한 도메인별 이름의 컬렉션인 어휘입니다.
휴먼 워크플로 서비스 관리 데이터베이스 BizTalkHwsDb BizTalk Human Workflow Services에 필요한 관리 정보를 저장합니다.
Trading Partner Management database(거래 업체 관리 데이터베이스) TPM BAS(Business Activity Services)에 대한 거래 업체 데이터를 저장합니다.
추적 분석 서버 관리 데이터베이스 BizTalkAnalysisDb 비즈니스 및 상태 모니터링 OLAP 큐브를 모두 저장합니다.

데이터 파일 및 로그 파일 분리

앞에서 설명한 대로 기본 BizTalk Server 구성은 MessageBox 데이터베이스를 기본 파일 그룹의 단일 파일에 배치합니다. 기본적으로 MessageBox 데이터베이스의 데이터 및 트랜잭션 로그는 동일한 드라이브와 경로에 배치됩니다. 단일 디스크가 있는 시스템을 수용하기 위해 수행됩니다. 단일 파일/파일 그룹/디스크 구성은 프로덕션 환경에서 최적이 아닙니다 . 성능을 최적화하려면 데이터 파일 및 로그 파일을 별도의 디스크에 배치해야 합니다.

참고

로그 파일은 파일 그룹에 포함되지 않습니다. 로그 공간은 데이터 공간과는 별도로 관리됩니다.

BizTalk Server 데이터베이스를 배포하는 80/20 규칙

디스크 I/O 경합 또는 데이터베이스 경합으로 인해 대부분의 BizTalk Server 솔루션에서 경합의 기본 원본은 BizTalk Server MessageBox 데이터베이스입니다. 단일 및 다중 MessageBox 시나리오 모두에 해당합니다. BizTalk 데이터베이스 배포 값의 80%가 MessageBox 데이터 파일 및 로그 파일 최적화에서 파생된다고 가정하는 것이 합리적입니다. 아래에 자세히 설명된 샘플 시나리오는 MessageBox 데이터베이스에 대한 데이터 파일을 최적화하는 데 중점을 줍니다. 그런 다음 필요에 따라 다른 데이터베이스에 대해 이러한 단계를 수행할 수 있습니다. 예를 들어 솔루션에 광범위한 추적이 필요한 경우 추적 데이터베이스를 최적화할 수도 있습니다.

MessageBox 데이터베이스에 수동으로 파일 추가, 단계별

이 항목의 이 섹션에서는 MessageBox 데이터베이스에 파일을 수동으로 추가하기 위해 수행할 수 있는 단계에 대해 설명합니다. 이 예제에서는 세 개의 파일 그룹이 추가된 다음, 각 파일 그룹에 파일을 추가하여 MessageBox에 대한 파일을 여러 디스크에 배포합니다.

SQL Server MessageBox 데이터베이스에 수동으로 파일 추가

  1. SQL Server Management Studio 열어 서버에 연결 대화 상자를 표시합니다.

    SQL Server 로그인 화면

  2. 서버에 연결 대화 상자의 서버 이름 편집 상자에 BizTalk Server MessageBox 데이터베이스가 있는 SQL Server instance 이름을 입력하고 연결을 클릭하여 SQL Server Management Studio 표시합니다. SQL Server Management Studio 개체 탐색기 창에서 데이터베이스를 확장하여 이 instance SQL Server 대한 데이터베이스를 봅니다.

    SQL Server 2005 Management Studio, 개체 탐색기

  3. 파일을 추가할 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭하여 데이터베이스에 대한 데이터베이스 속성 대화 상자를 표시합니다.

    SQL Server 2005 데이터베이스 속성 대화 상자

  4. 데이터베이스 속성 대화 상자에서 파일 그룹 페이지를 선택합니다. BizTalkMsgBoxDb 데이터베이스에 대한 추가 파일 그룹을 만들려면 추가 를 클릭합니다. 다음 예제에서는 세 개의 추가 파일 그룹이 추가됩니다.

    SQL Server 2005, 데이터베이스에 파일 그룹 추가

  5. 데이터베이스 속성 대화 상자에서 파일 페이지를 선택합니다.

    파일 그룹에 추가할 추가 파일을 만들려면 추가 를 클릭한 다음 확인을 클릭합니다. 이제 MessageBox 데이터베이스가 여러 디스크에 분산되어 단일 디스크 구성에 비해 성능이 크게 향상됩니다.

    다음 예제에서는 이전에 만든 각 파일 그룹에 대해 파일이 만들어지고 각 파일은 별도의 디스크에 배치됩니다.

    SQL Server 2005, 파일 그룹 파일 추가

BizTalk MessageBox 데이터베이스에 파일 그룹 및 파일을 추가하기 위한 샘플 SQL 스크립트

이 가이드에는 BizTalk Server MessageBox 데이터베이스에 파일 그룹 및 파일을 추가하기 위한 SQL 스크립트가 포함되어 있습니다.

참고

SQL Server 로그 파일에 순차적으로 쓰기 때문에 SQL Server 데이터베이스에 대한 여러 로그 파일을 만들어 성능 이점을 실현할 수 없습니다.

이 스크립트를 실행하려면 다음 단계를 수행합니다.

  1. SQL Server Management Studio 열어 서버에 연결 대화 상자를 표시합니다.

  2. 서버에 연결 대화 상자의 서버 이름 편집 상자에 BizTalk Server MessageBox 데이터베이스가 있는 SQL Server instance 이름을 입력하고 연결을 클릭하여 SQL Server Management Studio 대화 상자를 표시합니다.

  3. SQL Server Management Studio 파일 메뉴를 클릭하고 새로 만들기를 가리킨 다음 현재 연결로 쿼리를 클릭하여 SQL 쿼리 편집기 시작합니다.

  4. BizTalk Server MessageBox 데이터베이스 파일 그룹 SQL 스크립트의 샘플 스크립트를 쿼리 편집기 복사합니다.

  5. BizTalk Server 환경과 일치하도록 스크립트의 매개 변수를 편집하고 스크립트를 실행합니다.

    스크립팅의 장점은 스크립트가 여러 작업을 신속하게 수행하고, 정확하게 재현할 수 있으며, 사람의 오류 가능성을 줄일 수 있다는 것입니다. 스크립팅의 단점은 잘못 작성된 스크립트를 실행하면 BizTalk Server 데이터베이스를 처음부터 다시 구성해야 하는 심각한 문제가 발생할 수 있다는 것입니다.

중요

이 가이드의 샘플 스크립트와 같은 SQL 스크립트는 프로덕션 환경에서 실행되기 전에 철저히 테스트해야 합니다.

참고 항목

데이터베이스 성능 최적화