WebSphere Extended Deployment, Version 6.0.x     운영 체제: AIX, HP-UX, Linux, Solaris, Windows, z/OS

데이터베이스 파티션

DB2/390과 같은 데이터베이스에는 내장 파티션 기능이 있으므로 응용프로그램에서 데이터베이스 파티션이 불필요할 수 있습니다.

응용프로그램을 실행하기 위해 신뢰할 수 있는 WebSphere 클러스터를 구성할 수 있지만 클러스터가 단일 데이터베이스 인스턴스를 사용하는 경우 데이터베이스는 단일 장애 지점과 수직 스케일링 한계가 됩니다. 데이터베이스가 사용 불가능하게 된 경우 클러스터에서 작업을 수행할 수 없으므로 단일 장애 지점입니다. 대부분의 데이터베이스가 수직으로만 스케일링하므로 수직 스케일링 문제가 됩니다. 즉, 보다 큰 시스템을 구입해야 합니다.

아래의 다이어그램은 단일 데이터베이스 서버 아키텍처를 보여줍니다. 이 다이어그램에는 두 개의 WebSphere Application Server가 있지만 데이터베이스 서버는 하나입니다. Application Server를 추가할수록 데이터베이스에는 성능 병목 현상이 발생합니다.

수평으로 스케일링하며 실패한 경우 전체 Application Server 클러스터를 중지하지 않는 데이터베이스가 필요할 수 있습니다. 많은 응용프로그램은 비기능적 요구사항으로 인해 임시 장애가 응용프로그램의 일부분에 영향을 미치는 것은 허용하지만 전체적인 정지는 허용하지 않습니다. 이러한 아키텍처에서는 파티션된 데이터베이스 설계를 사용합니다.

이러한 설계의 한 예로 독립형 DB2를 실행 중인 세 개의 상자가 있습니다. 테이블 스키마 및 보안 시스템은 세 개의 모든 데이터베이스에서 동일합니다. 모든 읽기 전용 참조 데이터는 정상적인 방법으로 가용성이 매우 높은 마스터 참조 데이터 DB2 인스턴스에서 세 개의 데이터베이스로 모두 복제됩니다. 이 마스터 참조 DB2 인스턴스는 응용프로그램에서 직접 사용하지 않으므로 정상 조작 중 단일 장애 지점이 아닙니다.

여러 서버가 준비되었으면 다음 단계는 응용프로그램 데이터가 파티션 가능한지 확인하는 것입니다. 간단한 해싱 설계 또는 범위 메커니즘을 사용하여 특정 파티션을 특정 DB2 인스턴스에 맵핑하거나 데이터베이스의 복제된 테이블을 사용하여 맵핑할 수 있습니다. 이 테이블은 Application Server 클러스터에서 캐시하며 특정 파티션의 데이터를 보유하는 DB2 인스턴스를 지정합니다. 그러면 응용프로그램을 변경하지 않아도 데이터베이스 사이에 중요한 데이터를 이동할 수 있습니다.

데이터베이스 인스턴스 사이에 파티션을 상관시키려면 응용프로그램 프로토콜이 필요합니다. 이런 유형의 상관을 사용하면 응용프로그램이 수평 확장성을 위해 사용 중인 데이터베이스 세트에 데이터베이스 인스턴스를 추가할 수 있습니다. 세 개의 독립적인 데이터베이스 인스턴스를 사용하면 Oracle RAC 또는 DB2 EEE와 같은 정상적인 클러스터 데이터베이스보다 가용성이 높다는 이점이 있습니다. 데이터베이스는 독립적이며 데이터베이스 중 하나의 장애는 이 데이터베이스에 상주하는 데이터 세트가 현재 사용 불가능함을 의미할 뿐이며 응용프로그램은 다른 온라인 데이터베이스 인스턴스에 상주하는 데이터의 트랜잭션을 계속 처리할 수 있습니다.

이 경우 전체 장애보다는 바람직합니다. 그러나 하나의 데이터베이스 대신 세 개의 데이터베이스가 있으므로 관리는 보다 복잡합니다. 응용프로그램은 지시된 트랜잭션을 사용하여 Application Server에 다음 트랜잭션의 전체 데이터가 들어 있는 데이터베이스 인스턴스를 알려줍니다. 이 패턴은 특히 응용프로그램에 특정 파티션의 데이터가 있는 데이터베이스 노드를 알려주는 MAPPER 테이블과 함께 사용할 때 응용프로그램의 데이터베이스 측면을 매우 유연하게 관리할 수 있도록 합니다.

CMP Bean을 사용하는 응용프로그램은 일반적으로 CMP Bean과 함께 사용할 단일 데이터베이스를 지정합니다. 이 방법은 이 패턴을 사용할 때 확실히 문제가 됩니다. CMP Bean을 각 데이터베이스에 대해 한 번씩 N번 전개할 수 있지만 다음과 같은 이유로 유연성이 적습니다.

WebSphere Extended Deployment는 새 기능인 프록시 데이터 소스를 제공하므로 응용프로그램이 트랜잭션 시작 이전에 사용할 데이터베이스를 WebSphere에 표시할 수 있습니다. 클러스터 구성원이 특정 응용프로그램 파티션에 대한 요청을 수신하면 CMP 런타임에 Bean과 함께 전개된 데이터 소스를 무시하고 대신 다음 트랜잭션 지속 기간 중 특정 데이터 소스를 사용하도록 지시할 수 있음을 의미합니다. 그러면 지시된 트랜잭션 패턴을 응용프로그램과 함께 사용할 수 있으므로 가용성이 증가하고 데이터베이스 층이 블레이드 유형 환경에서 수평으로 스케일링할 수 있습니다. 또한 응용프로그램은 MAPPER 테이블 패턴을 이용하여 데이터를 관리하고 파티션을 이동할 수 있습니다.

다음 다이어그램은 새 아키텍처를 보여줍니다. 시스템에 두 개의 데이터베이스가 있을 경우 EJB1이 두 서버 모두에 전개됩니다. 한 트랜잭션에서 맨 위 서버의 EJB1이 데이터베이스 1에 액세스합니다. 다른 트랜잭션에서 맨 아래 서버의 EJB2가 데이터베이스 2에 액세스합니다. 따라서 한 서버가 아닌 여러 데이터베이스 서버에 데이터베이스 로드가 분산됩니다.




Related concepts
J2EE 파티션 기능

개념 주제    

이용 약관 | 피드백 마지막 갱신 날짜: Mar 21, 2006 11:38:53 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/WPF51/cwpfdb_pdf.html

© Copyright IBM 2005, 2006. All Rights Reserved.
이 Information Center는 Eclipse 테크놀러지로 강화되었습니다. (http://www.eclipse.org)