Oracle Streams를
사용하면 한 데이타베이스 내에서 또는 한 데이타베이스에서 다른 데이타베이스로의 데이타 스트림에서 데이타 전달 및
관리와 트랜잭션, 이벤트가 가능합니다. 이 스트림은 게시된 정보를 가입된 대상으로 연결합니다. 그 결과, 이벤트
캡처 및 관리, 그리고 다른 데이타베이스 및 애플리케이션과의 이벤트 공유 부문에서 기존 솔루션보다 더 우수한 기능과
융통성을 제공하는 새 기능이 탄생했습니다. 사용자의 요구 사항이 바뀌면 기존 기능을 손상시키지 않고서도 간단하게
Oracle Streams의 새 기능을 구현할 수 있습니다.
개요
Oracle Streams는 어떤 정보가 스트림으로 들어오며 그 스트림이 어떻게 흐르는지, 또는 한 노드에서 다른
노드로 어떻게 연결되는지, 그 스트림의 이벤트가 각 노드로 흘러 들어가면 이벤트에 어떤 일이 발생하는지, 그리고 그
스트림이 어떻게 종료되는지를 사용자가 제어할 수 있도록 일련의 요소를 제공합니다. 그 스트림에 작용하는 요소의 구성을
구체적으로 지정하면 사용자는 특정 요구 사항을 처리할 수 있습니다.
Oracle Streams의 아키텍처는 아주 유동적입니다. 위
다이어그램에서 볼 수 있는 것처럼 Streams에는 다음 세 기본 요소가 있습니다.
- 캡처(Capture)
- 스테이지 처리 (Staging)
- 소비 (Consumption)
캡처
Oracle Streams는 데이타베이스 변경 및 애플리케이션 생성 메시지 등의 이벤트를 스테이지 영역으로 캡처하는
작업을 지원합니다. 이러한 이벤트는 다음 두 가지 방법으로 캡처됩니다. 암시적 캡처의 경우에는 서버가 원본 데이타베이스에서
DML 및 DDL 이벤트를 캡처합니다. 한편 명시적 캡처는 애플리케이션이 명시적으로 이벤트를 생성하여 스테이지 영역에
넣도록 만듭니다.
암시적
캡처의 경우 이 캡처 프로세스는 온라인 리두 로그를 핫 마이닝하거나 필요할 경우 아카이브된 로드 파일을 마이닝하여
리두 로그에서 추출된 변경 데이타를 검색합니다. 그런 다음 데이타를 LCR(Logical Change Record)로
포맷하여 나중에 사용할 수 있도록 스테이지 영역에 넣습니다. 이 캡처 프로세스는 정의된 규칙을 기초로 LCR을
인텔리전트하게 필터링할 수 있습니다. 따라서 원하는 객체의 변경 사항만 캡처됩니다.
사용자 애플리케이션은 이벤트를 표시하는 사용자 메시지를 명시적으로 스테이지 영역 대기열에 넣을 수 있습니다. 이러한
메시지는 적용 엔진에서 소비할 수 있도록 LCR 형식으로 포맷할 수 있으며, 다른 사용자 애플리케이션에서 소비하도록
포맷할 수도 있습니다.
스테이지
처리
일단 캡처된 이벤트는 스테이지 영역으로 들어갑니다.
스테이지 영역은 캡처된 이벤트를 저장 및 관리하는 서비스를 제공하는 대기열로, LCR 데이타에 대한 감사 및 추적뿐만
아니라 보안까지 제공되는 대기 영역입니다.
가입자가 이 스테이지 영역의 컨텐트를 검사하여 이벤트와 관계가 있는지 여부를
판단합니다. 가입자는 일반적으로 다른 시스템에 있는 또 다른 스테이지 영역이나 사용자 애플리케이션 또는 기본 적용
프로세스일 수 있습니다. 전달
가입자가 또 다른 스테이지 영역이라면 그 이벤트는 같은 데이타베이스 내에
있거나 또는 원격 데이타베이스에 있는 그 스테이지 영역으로 전달됩니다. 네트워크 경로 지정을 단순화하고 WAN
트래픽을 줄이기 위해 이벤트를 모든 데이타베이스와 애플리케이션으로 보낼 필요가 없습니다. 두 개 이상 시스템의
스테이지 영역을 통과해 직접 가입 시스템으로 갈 수 있기 때문입니다. 예를 들면, 실제로 그 이벤트를 활용하지
않는 허브 데이타베이스를 통해 이벤트를 전달할 수 있습니다. 즉, 한 스테이지 영역에서 여러 데이타베이스의 이벤트를
스테이지 처리할 수 있으므로 설정 및 구성이 단순해집니다.
소비
한 스테이지 영역에 있는 이벤트는 그 적용 엔진 또는 애플리케이션이 소비하며, 적용 엔진이 소비하는 경우에는 그
이벤트가 나타내는 변경 사항이 데이타베이스에 적용됩니다. Oracle Streams에는 표준 적용 또는 사용자
정의 적용 기능을 이용할 수 있도록 만들어주는 융통성 있는 적용 엔진이 포함되어 있습니다. 따라서 필요할 때 데이타를
변경할 수 있습니다. 명시적으로 대기열에서 빼기를 지원하므로 애플리케이션 개발자는 Oracle Streams를
사용해 애플리케이션에 데이타 변경 사항을 알리는 동시에 Oracle Streams의 변경 사항 캡처 및 전달 기능을
함께 이용할 수 있습니다.
기본적용 기본 적용 엔진은 암시적 또는
명시적으로 캡처된 LCR에 표시된 DML 변경 사항과 DDL 변경 사항을 적용합니다. 이 기본 적용 엔진은 충돌로
인해 대상 행이 변경되어 예상 값이 들어있지 않은 경우를 감지하며, 충돌이 감지되면 분석 루틴이 실행됩니다.
사용자 정의된 함수 적용
적용 엔진은 LCR 또는 사용자 메시지를 사용자 정의된 함수로 전달할 수
있습니다. 이 기능은 이벤트 처리에 최대의 융통성을 제공합니다. 사용자 정의된 함수의 일반적인 적용 방법은 필드
형식, 객체 이름, 열 이름 매핑 변경 등의 로컬 테이블에 적용하기 전에 LCR에 표시된 데이타의 형식을 변경하는
것입니다. 사용자 정의된 함수는 또 열 부분 집합화를 실행하거나 원본 데이타베이스에 없는 다른 객체를 업데이트하는
데에도 사용할 수 있습니다.
명시적으로 대기열에서 빼기 (Dequeue)
사용자 애플리케이션은 수신한 스테이지 영역의 대기열에서 LCR이나 사용자 메시지를 명시적으로 뺄 수 있습니다.
이에 따라 사용자 애플리케이션이 Streams의 스테이지 영역에 있는 데이타를 효과적으로 액세스할 수 있습니다.
Streams는 등록된 PL/SQL 또는 OCI 함수에 알림을 전송할 수 있으므로 새 메시지에 대한 polling을
대신할 수 있는 방안을 애플리케이션에 제공합니다. 물론, 애플리케이션은 polling도 실행할 수 있으며, 스테이지
영역에 새로 가입된 메시지가 사용 가능하게 될 때까지 기다릴 수도 있습니다.
규칙
Streams는 사용자가 규칙을 정하여 어떤 정보를 공유하고 그 정보를 어디로
보낼지를 제어할 수 있도록 만들어 줍니다.
최상의 경우 사용자는 테이블, 스키마 또는 글로벌(데이타베이스) 수준에서 변경 사항을 캡처, 전달 또는 적용하기를
원하는지 여부도 표시할 수 있습니다. 그리고 예를 들면 주어진 위치에 있는 데이타의 특정한 하위 집합만 적용하기와
같은 보다 복잡한 요구 사항의 경우 사용자는 SQL 질의의 WHERE 절의 조건과 유사한 규칙 조건을 지정할 수
있습니다. 이외에도 필요한 경우에는 관련 규칙을 규칙 집합으로 그룹화할 수도 있습니다.
변형
변형이란 캡처 및 적용에 관련된 객체의 폼이나 그 데이타를 변경하는 것을
말합니다. 변형에는 특정 사이트의 테이블에 있는 특정 열의 데이타 유형 표시 변경, 한 사이트의 테이블에만 열
추가, 특정 사이트의 테이블에 그 데이타의 하위 집합 포함 등이 있습니다.
대기열에 넣는 동안 변형을 지정하여 메시지를 스테이지 영역에 삽입하기 전에
정확한 유형으로 변형할 수 있습니다. 그리고 전달의 경우에도 변형을 지정할 수 있는데, 이 방법은 데이타를 원격
사이트로 전송하기 전에 부분 집합화 하는데 유용합니다. 마지막으로, 대기열에서 빼거나 로컬 적용 시에도 변형을
지정할 수 있으며, 이 방법은 특정 대상에 적합한 방식으로 메시지의 서식을 적용하는데 유용합니다.
이기종 지원
Oracle Streams는 공개 정보 공유 솔루션입니다. 각 요소는 업계
표준어와 표준을 지원하며, Streams는 오라클에서 오라클이 아닌 시스템으로의 적용과 캡처를 지원합니다.
그리고 투명한 게이트웨이나 일반 연결을 통해 오라클이 아닌 시스템에 변경 사항을 적용할 수 있습니다. Streams에는
또 오라클이 아닌 데이타 원본이 변경 레코드를 쉽게 제출 및 수신할 수 있도록 하여 양방향 이기종 데이타 이동을
가능하게 하는 API도 포함되어 있습니다. 이외에도 Message Gateway를 통해 MQ Series 및 Tibco와
같은 다른 메시지 대기 시스템에서 메시지를 주고 받을 수 있습니다.
관리
효율성
Streams 환경 구성, 관리 및 모니터링에
이용할 수 있는 도구가 몇몇 있습니다. Streams에 대해 가장 기본적인 인터페이스는 오라클의 PL/SQL 패키지
모음입니다. 사용자의 Streams 환경 구성, 관리 및 모니터링을 돕기 위해 오라클은 Oracle Enterprise
Manager 콘솔에 Streams 도구를 제공합니다. 사용자는 또 이 Streams 도구를 사용해 Streams
구성 스크립트를 생성한 다음 이 스크립트를 변경해 실행하면 자신의 Streams 환경을 구성할 수 있습니다.
또한 Streams 데이타 딕셔너리 보기가 사용자에게 계속해서 Streams 환경에 대한 정보를 전달합니다.
특정 시장에 맞게 구축
Oracle Streams는 다양한 시장 고객의 정보 공유 요구 사항을 충족시켜
줍니다. 예를 들어, 고객은 Oracle Streams를 사용해 이벤트 알림, 복제, 데이타 웨어하우스 로드 솔루션을
만들 수 있습니다. 오라클은 또 작업에 맞게 성능을 확장할 수 있는 기능을 기본 제공합니다. Advanced Queuing은
Oracle Streams를 기초로 하며, Oracle9i Database와 통합된 우수한 메시지
대기열 기능을 제공합니다. 데이타 보호 시장의 요구 사항을 완벽하게 이행하기 위해 오라클은 Oracle Streams를
기반으로 하여 데이타 보호를 제공하는 Oracle Data Guard를 제공합니다.
물론, 모든 고객은 Oracle Streams의 모든 기능을 이용할 수 있으며, 여러 시장으로 확장 가능한 구성을
만들 수 있으므로 새로운 종류의 애플리케이션이 가능합니다.
또한 모든 구축 및 관련 메타 데이타는 호환성이 있습니다. 예를 들면, 복제 설치를 완전히 재구성하지 않고 손쉽게
확장하여 데이타 웨어하우스를 로드하거나 양방향 복제가 가능하도록 할 수 있습니다.
Oracle
Streams-통합된 단일 솔루션
Oracle Streams는
공동 인프라를 사용하여 가장 까다로운 정보 공유 요건을 충족시킵니다. 복잡한 분산 환경에서는 정보 공유 요건을
충족시키는 단일한 솔루션을 이용하여 이익을 얻을 수 있습니다. 따라서 Oracle Streams는 조직이 성장하더라도
변화하는 요건을 충족시킬 수 있는 융통성을 갖추고 있습니다.
| 핵심
기능 |
통합된
단일 솔루션
- 단일 솔루션으로 모든 데이타 공유 필요성을
충족시킴.
- 다양한 구성의 구축 지원:
- 복제
- 메시지 대기열
- 데이타 웨어하우스 로드
- Oracle Data Guard를
이용한 데이타 보호
- Oracle과 Oracle이 아닌 데이타
저장소 사이에 데이타를 투명하게 공유하도록 함.
Oracle9i Database의 통합 기능
- 설치할 추가 소프트웨어와 배워야 할 특별한
명령이 없음.
- Oracle9i Database가
제공하는 안정성과 보안의 장점 이용.
관리 효율성
- Oracle의 PL/SQL 패키지로 구성
및 관리에 최대의 융통성 제공.
- Oracle Enterprise Manager의
Streams 도구를 통해 간편한 사용을 위한 마법사와 모니터링 기능 제공.
- 데이타 딕셔너리 보기를 통해 사용자에게
지속적으로 환경에 대한 정보 제공.
|
융통성
- 캡처
- DDL 변경뿐만 아니라 DML 변경까지도
암시적으로 캡처.
- 사용자 정의된 규칙을 바탕으로 캡처된
변경 사항 필터링.
- 애플리케이션이 사용자 메시지를 명시적으로
스테이지 영역의 대기열에 넣을 수 있도록 함.
- 스테이지 처리/전달
- 안전한 대기 영역에 캡처된 데이타
감사 및 추적 제공.
- 데이타를 적용하기 전에 스테이지
영역을 통해 경로 지정.
- 데이타를 스테이지 영역의 대기열에
넣거나 뺄때, 또는 전달 전에 변형 지원.
- 소비
- 기본 적용 메커니즘을 사용해 변경
내용을 적용하기 전에 자동으로 충돌 감지 및 해결.
- 사용자 정의된 적용 메커니즘을 사용해
데이타 수정 및 적용 방법에 대한 완벽한 제어를 사용자에게 제공.
- 애플리케이션이 명시적으로 대기열에서
빼기를 사용해 Streams의 스테이지 영역에 있는 데이타를 직접 액세스하도록 함.
성능
- 온라인 리두 로그 핫 마이닝으로 데이타
캡처 대기 줄임.
- 캡처 및 적용 프로세스를 병렬화하여 동시
이벤트 처리량 최대 보장.
|
| |
|
Top of Page |