다음을 통해 공유


BizTalk Server 데이터베이스 확장

BizTalk Server 데이터베이스에 고가용성을 제공하려면 Windows 클러스터에서 SQL Server 실행하는 두 컴퓨터를 구성합니다. 이러한 컴퓨터는 중복성을 위해 활성/활성/ 활성/수동 또는 활성/활성/수동(3대의 컴퓨터 필요) 구성에서 실행할 수 있으며 공유 드라이브(예: RAID 1+0 SCSI 디스크 배열) 또는 SAN(스토리지 영역 네트워크)에 데이터를 저장할 수 있습니다.

여타의 이유로 SQL Server 서비스를 사용할 수 없게 되면 데이터베이스 클러스터는 능동 컴퓨터에서 수동 컴퓨터로 리소스를 전송합니다. 이러한 장애 조치(Failover) 프로세스 중에는 BizTalk Server 서비스 인스턴스에서 데이터베이스에 연결할 수 없으므로 자동으로 다시 시작되어 데이터베이스에 다시 연결됩니다. 그러면 장애 조치 동안 리소스를 넘겨 받은 작동 데이터베이스(이전의 수동 컴퓨터) 컴퓨터에서 데이터베이스 연결 처리를 시작합니다.

BizTalk Server 데이터베이스 클러스터링에 대해서는 BizTalk Server Databases2 클러스터링에서 설명합니다. 이 섹션에서는 고가용성을 제공하기 위해 BizTalk Server 데이터베이스를 확장하는 데 중점을 둡니다.

BizTalk MessageBox 데이터베이스에 고가용성 제공

이 섹션에서는 고가용성을 위해 BizTalk MessageBox 데이터베이스를 구성하는 방법에 대한 정보를 제공합니다.

여러 MessageBox 데이터베이스 실행

BizTalk Server 데이터베이스의 확장성을 향상시키고 MessageBox 데이터베이스 SQL Server 컴퓨터에서 높은 CPU 사용률을 해결하기 위해 여러 MessageBox 데이터베이스에 데이터를 저장하도록 BizTalk Server 구성할 수 있습니다. 구성 마법사를 실행할 때 첫 번째 MessageBox 데이터베이스를 만듭니다. 이 MessageBox 데이터베이스가 마스터 MessageBox 데이터베이스입니다. BizTalk Server 배포에서 마스터 MessageBox 데이터베이스는 하나뿐입니다. 마스터 MessageBox 데이터베이스에는 마스터 등록 정보가 포함되어 있으며 메시지를 해당 MessageBox 데이터베이스로 라우팅하는 역할을 합니다. 일반적으로 master MessageBox 데이터베이스를 라우팅만 수행하고 다른 MessageBox 데이터베이스가 처리를 수행하도록 하려고 합니다. MessageBox 데이터베이스가 라우팅만 수행하도록 하려면 BizTalk 관리 콘솔의 MessageBox 속성에서 새 메시지 게시 사용 안 함을 선택합니다.

MessageBox 데이터베이스 처리 흐름의 예는 다음과 같습니다.

  1. master MessageBox 데이터베이스가 비즈니스 프로세스의 새로운 instance 또는 구독 메시지인 새 활성화 메시지를 받으면 master MessageBox 데이터베이스는 활성화 메시지를 사용 가능한 다음 MessageBox 데이터베이스에 배포합니다. 예를 들어 마스터 MessageBox 데이터베이스 하나와 일반 MessageBox 데이터베이스 두 개가 있는 경우, 마스터 MessageBox 데이터베이스는 라운드 로빈 패턴에 따라 첫 번째 활성화 메시지는 MessageBox 데이터베이스 1로, 두 번째 활성화 메시지는 MessageBox 데이터베이스 2로, 세 번째 활성화 메시지는 다시 MessageBox 데이터베이스 1로 라우팅합니다. 마스터 MessageBox 데이터베이스는 기본 제공 논리를 사용하여 로드 균형을 조정하며 추가적인 로드 균형 조정 메커니즘을 필요로 하지 않습니다.

  2. 마스터 MessageBox 데이터베이스가 활성화 메시지를 특정 MessageBox 데이터베이스(예: MessageBox 데이터베이스 1)로 라우팅하면 비즈니스 프로세스가 메모리에 로드되어 실행됩니다.

  3. 비즈니스 프로세스가 메시지를 기다려야 하고 대기 시간이 몇 초보다 길면 비즈니스 프로세스가 MessageBox 데이터베이스 1로 다시 유지됩니다. 비즈니스 프로세스가 상관 관계 메시지를 기다리고 있습니다.

  4. 상관 관계 메시지가 master MessageBox 데이터베이스에 도착하면 메시지 엔진은 상관 관계 메시지의 상태를 포함하는 MessageBox 데이터베이스의 데이터베이스에서 조회 작업을 수행합니다(이 예제에서는 MessageBox 1). master MessageBox 데이터베이스는 비즈니스 프로세스가 포함된 MessageBox 데이터베이스에 메시지를 전달합니다.

  5. 비즈니스 프로세스가 완료되거나 다른 상관 관계 메시지를 기다려야 할 때까지 처리를 계속하기 위해 메모리로 다시 가져옵니다.

    BizTalk Server는 모든 상태를 MessageBox 데이터베이스에 저장하며 각 MessageBox 데이터베이스에는 여러 비즈니스 프로세스에 대한 상태 정보가 포함됩니다. 안정성을 위해 마스터 및 보조 MessageBox 데이터베이스를 비롯한 모든 MessageBox 데이터베이스를 클러스터링해야 합니다.

    여러 MessageBox 데이터베이스를 구성하려면 BizTalk Server 관리 콘솔을 사용하여 SQL Server 실행하는 컴퓨터를 추가합니다. 관리 측면에서는 새 MessageBox 데이터베이스만 추가하면 됩니다. BizTalk Server는 활성화 메시지의 라운드 로빈 배포를 자동으로 처리하며 상관 관계 메시지를 해당 MessageBox 데이터베이스로 송신합니다.

    사용자 환경에서 여러 MessageBox 데이터베이스를 구성하는 경우 BizTalk Server 그룹에 대해 최소 3개의 MessageBox 데이터베이스를 만들어야 하며 master MessageBox 데이터베이스에서 메시지 게시를 사용하지 않도록 설정해야 합니다. 이 권장 사항은 MessageBox 데이터베이스를 추가하면 MessageBox 데이터베이스 간에 메시지를 라우팅하기 위해 master MessageBox 데이터베이스의 오버헤드가 발생하기 때문입니다. 두 개의 MessageBox 데이터베이스만 구성하는 경우 추가 MessageBox 데이터베이스에서 얻은 대부분의 혜택은 메시지 라우팅을 위해 master MessageBox 데이터베이스에서 사용하는 오버헤드에 의해 오프셋됩니다.

중요

BizTalk Server는 모든 상태를 MessageBox 데이터베이스에 저장하며 각 MessageBox 데이터베이스에는 여러 비즈니스 프로세스에 대한 상태 정보가 포함됩니다. 안정성을 위해 마스터 및 보조 MessageBox 데이터베이스를 비롯한 모든 MessageBox 데이터베이스를 클러스터링해야 합니다.

여러 MessageBox 데이터베이스의 가용성 향상

BizTalk Server 배포에 MessageBox 데이터베이스를 추가하면 확장성이 향상되지만 각 MessageBox 데이터베이스는 고유하고 독립적이며 BizTalk Server 환경에서 단일 실패 지점일 수 있으므로 고가용성을 제공하지 않습니다. 각 MessageBox 데이터베이스에 대해 서버 클러스터를 구성하면 중복성이 제공됩니다. BizTalk Server는 여러 MessageBox 데이터베이스에 데이터를 분산하므로 서버 클러스터링이 구현되지 않으면 데이터베이스에서 데이터를 공유하지 않으며 중복성을 제공하지 못합니다.

BizTalk 추적 데이터베이스의 가용성 향상

특정 배포 요구 사항에 따라 BizTalk 추적 데이터베이스를 별도의 SQL Server 컴퓨터에 분리하고 호스트 추적을 전담하는 BizTalk 호스트를 따로 만들어 추적 성능을 향상시킬 수 있습니다. 다음 그림에서는 두 개의 호스트 인스턴스와 클러스터된 데이터베이스가 있는 전용 추적 호스트를 보여 줍니다.

추적 데이터베이스 확장

배포의 처리량이 많고 이러한 메시지에 대한 데이터 추적량이 많아지면 추적 오버헤드로 인해 SQL Server 실행 컴퓨터에서 많은 양의 리소스가 소비될 수 있습니다. 이 상황이 발생하고 들어오는 메시지의 비율이 높은 경우 메시지를 추적하는 데 필요한 리소스가 다른 BizTalk Server 구성 요소(예: 메시지 수신 및 MessageBox 데이터베이스에 유지)를 실행하는 데 필요한 리소스보다 크므로 BizTalk Server 새 메시지를 처리할 수 없는 지점에 도달합니다.

성능 및 보안을 향상시키려면 다른 항목(수신 위치, 오케스트레이션 또는 파이프라인)을 포함하지 않는 호스트에 추적 업무를 전담시키고 수신, 처리 및 송신 호스트의 추적을 비활성화하는 것이 좋습니다. 고가용성 추적 호스트를 제공하려면 추적 호스트의 호스트 인스턴스를 두 개 이상 만드십시오. 새 호스트 만들기를 참조하세요.

각 MessageBox 데이터베이스에 대해 BizTalk Server 하나의 추적 호스트 instance 사용하여 MessageBox 데이터베이스에서 BizTalk Tracking 데이터베이스(BizTalkDTADb)로 메시지를 이동합니다. 다른 컴퓨터에서 추적 호스트 인스턴스가 추가로 실행되면 BizTalk Server는 자동으로 각 MessageBox 데이터베이스의 처리를 별도의 추적 호스트 인스턴스로 확장합니다. MessageBox 데이터베이스의 수가 추적 호스트 인스턴스의 수보다 많으면 하나 이상의 추적 호스트 인스턴스가 둘 이상의 MessageBox 데이터베이스 작업을 처리합니다.

고가용성 BizTalk 추적 데이터베이스를 제공하려면 Windows 클러스터링을 사용하여 SQL Server를 실행하는 두 대의 데이터베이스 컴퓨터를 능동/수동 구성으로 구성합니다.

고가용성 BAM 데이터베이스 제공

BAM(비즈니스 활동 모니터링)은 IT 구현과 무관하거나 다른 유형의 IT 구현에서 비즈니스 프로세스에 대한 가시성을 제공합니다. BAM SQL Server 데이터베이스(BAM 별모양 스키마 데이터베이스, BAM 기본 가져오기 데이터베이스 및 BAM 보관 데이터베이스)와 BAM 분석 데이터베이스는 작동 모니터링 데이터와는 다른 비즈니스 활동 데이터를 저장합니다. 다음 다이어그램은 BAM 데이터베이스 인프라를 보여줍니다.

BAM 데이터베이스 인프라

BAM 인프라의 가용성을 높이려면 다음을 수행하십시오.

  • BAM 기본 가져오기 데이터베이스 및 BAM 분석 데이터베이스를 클러스터링합니다. BAM 기본 가져오기 데이터베이스는 비즈니스 활동 모니터링 시스템의 핵심입니다. 따라서 Windows 클러스터링을 사용하여 이 데이터베이스의 가용성을 높이고 다음 두 가지 권장 사항에 따라 이 데이터베이스가 가득 차지 않도록 주의하는 것이 중요합니다. BAM 분석 데이터베이스는 비즈니스 분석가가 활동 집계 및 OLAP 큐브를 작성하는 데 사용하는 데이터가 보관된 Analysis Services 데이터베이스이므로 이 데이터베이스의 작동이 중단되면 생산성이 저하됩니다. BAM 보관 데이터베이스를 클러스터할 필요는 없지만 SSIS(SQL Server Integration Services) 패키지가 실행될 때 이벤트 로그에서 오류를 모니터링하여 데이터가 성공적으로 전송되었는지 확인하고 데이터베이스 크기를 모니터링하여 데이터를 채우기 전에 바꿀 수 있도록 하는 것이 좋습니다.

  • 온라인 윈도를 정의합니다. 더 나은 성능을 허용하고 가동 중지 시간을 방지하기 위해 BAM은 작업이 완료되었을 때 타임스탬프를 기반으로 BAM 주 가져오기 데이터베이스의 데이터를 테이블로 분할합니다. BAM은 완료된 테이블을 동일한 형식의 다른 빈 테이블과 정기적으로 교체하여 이 작업을 수행합니다. 이 작업이 수행되고 나면 이후 완료된 활동이 새 파티션(테이블)으로 이동되며 BAM은 온라인 윈도에 정의된 시간 동안 이전 파티션을 유지합니다. BAM 기본 가져오기 데이터베이스의 파티션 수가 너무 많이 늘어나지 않도록 하기 위해 온라인 윈도를 정의해야 합니다. 온라인 창 예약에 대한 자세한 내용은 기본 가져오기 데이터베이스 데이터 보관을 참조하세요.

  • 주기적으로 실행되도록 SSIS 패키지를 예약합니다. 온라인 윈도를 정의하면 BAM 기본 가져오기 데이터베이스가 이전 활동 파티션으로 가득 차는 것을 막을 수 있습니다. 또한 SSIS 패키지가 주기적으로 실행되도록 예약하여 활동 데이터에 대한 새 파티션을 만들고 BAM 주 가져오기 데이터베이스의 이전 파티션에서 BAM 보관 데이터베이스로 데이터를 이동해야 합니다. SSIS 패키지 예약에 대한 자세한 내용은 SQL Server Integration Services 패키지 예약을 참조하세요.

  • 활동 정의 시 작은 데이터 항목 집합(검사점)을 선택할 때는 불필요한 데이터 항목이 포함되지 않도록 주의해야 합니다.

  • 집계를 디자인할 때는 예약 집계와 실시간 집계 간의 장단점을 이해해야 합니다. 실시간 집계는 SQL Server 트리거에 의해 자동으로 유지 관리되며 대기 시간은 0입니다. 일부 중요 업무용 대기 시간이 짧은 시나리오에는 이상적이지만 이벤트가 BAM 주 가져오기 데이터베이스에 기록될 때마다 성능 비용이 발생합니다. 예약된 집계는 예약된 큐핑 SSIS 패키지를 사용하여 집계 데이터를 업데이트합니다. 대기 시간은 SSIS 일정 간격과 같거나 크지만 전반적으로 BAM 주 가져오기 데이터베이스에 더 작은 성능 영향을 줍니다.

  • 예약된 집계를 선택하는 경우 보관 SSIS보다 더 자주 실행되도록 큐빙 SSIS를 예약해야 합니다. 이는 보관 SSIS가 예약된 집계를 위해 처리된 활동 데이터를 BAM 보관 데이터베이스로 이동하지 않기 때문입니다.

  • 여러 컴퓨터에서 BAM Event Bus 서비스를 사용하도록 설정하여 장애 조치(failover) 기능을 가져옵니다.

기타 BizTalk Server 데이터베이스의 가용성 향상

다른 BizTalk Server 데이터베이스에 고가용성을 제공하려면 Windows 클러스터에서 SQL Server 실행하는 두 컴퓨터를 구성합니다. 이러한 컴퓨터는 중복성을 위해 활성/활성 또는 활성/수동 구성에서 실행할 수 있으며 공유 드라이브(예: RAID 1+0 SCSI 디스크 배열) 또는 SAN(스토리지 영역 네트워크)에 데이터를 저장할 수 있습니다.

참고 항목

BizTalk Server 데이터베이스 클러스터링2