기술자료

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

Replication - Times Ten to Times Ten

기술자료
DBMS별 분류
Oracle
작성자
dataonair
작성일
2007-11-27 00:00
조회
3952





Replication-TimesTen to TimesTen


Replication - TimesTen to TimesTen은 고가용성 및 로드 분산를 위해 서버 간에 실시간 데이터 복제를 지원하는 Oracle TimesTen In-Memory Database 의 옵션입니다. 복제되는 데이터의 충돌 탐지/해결은 기본으로 제공하고 , 장애 서버가 복구된 이후 자동 재동기화를 지원합니다. 이는 비동기식/동기식 전송 모드를 모두 지원하고 데이터 복제를 Active-Standby 또는 Active-Active로 구성할 수 있으며 Cache Connect to Oracle 옵션과도 완벽하게 호환됩니다.



고가용성


고가용성은 대부분의 실시간 애플리케이션에서 기본적으로 요구되는 기능입니다. 통신분야처럼 애플리케이션이 1년 365일 하루 24시간 항시 가동되어야 하는 산업이나 언제 어디에서나 액세스가 가능해야 하는 여행 및 예약 시스템에서 서비스 중단은 결코 용납되지 않습니다. 특히 주식 거래 시스템은 금융 시장이 개장된 시간 동안 중단 없는 가용성을 유지해야 합니다. 시스템의 실시간 특성이 높아질수록 보다 높은 가용성이 요구됩니다.

071127_oracleRTTT_01.jpg

그림 1. TimesTen In-Memory Database에 복제 기능

데이터 복제는 Oracle TimesTen In-Memory Databases 에 고가용성을 제공하기 위한 기반 기술입니다. 복제란 네트워크로 연결된 2대 이상의 서버상에 동일한 데이터 복사본이 유지된다는 것을 의미합니다. 한 서버에 장애가 발생하면 다른 서버의 데이터 복사본을 사용할 수 있습니다. 또한 복제설정이 되어 있는 서버간에 한 서버의 서비스를 중단하지 않고, 다른 서버를 오프라인 상태로 전환하여 관리, 스키마 변경 및 소프트웨어 업그레이드 등을 진행할 수 있습니다. 이 경우 오프라인 서버가 복제 구성에 다시 참여하면 이 서버는 최신 상태로 만드는 데 필요한 변경 사항에 대한 복제가 자동으로 실행된 다음, 정상 복제 프로세스를 재개합니다.



로드 분산


복제 기능은 고가용성을 실현하는 것은 물론, 워크로드를 여러 서버에 분산해 하드웨어 자원을 효율적으로 사용할 수 있도록 지원합니다. 워크로드 증가에 따라 서버를 추가해 구성을 확장할 수 있습니다.

071127_oracleRTTT_02.jpg

그림 2. 구성의 유연성



유연한 아키텍처


데이터 복제는 Active-Standby 및 Active-Active 구성을 비롯해 광범위한 시나리오를 만족하는 다양한 구성 옵션을 지원합니다. 또한, Master-Subscriber모델을 지원하여 Master로 지정된 테이블이나 전체 데이터 스토어에 대한 변경 사항을 Master 소스에서 1개 이상의 subscriber 데이터 스토어로 복사합니다. 또한 하나의 데이터 스토어를 Master와 Subscriber로 지정함으로써 멀티노드“N-way”양방향 복제를 구성할 수 있습니다. 양방향 복제로 인한 충돌이 발생하면 타임스탬프에 기초한 충돌 탐지 및 해결 메커니즘이 적용되어 데이터의 일관성을 유지하는 복제가 가능합니다.

한 Subscriber는 Master로부터 변경데이타를 수신해 또 다른 Subscriber에게 변경 데이타를 넘기는 Propagator의 역할을 할 수 있습니다. Propagator는 낮은 대역폭의 네트워크에 연결되어 있는 Master로부터 데이터를 전달 받아, 자신과 같은 로컬 LAN상에 연결되어 있는 여러 Subscriber에게 데이터를 전달하여 ,낮은 대역폭의 네트워크 상에 있는 Master로부터의 데이터 복제 성능을 최적화하는 데 유용하게 사용됩니다. 또한, 하나의 Master 데이터 스토어에서 다수의 Subscriber로 복제할 경우 복제 로드를 분산하기 위해 사용될 수도 있습니다.



성능 및 일관성


트랜잭션 로그 기반의 복제 기법은 효율성을 높이는 반면, 오버헤드를 줄일 수 있습니다. 각 Master 및 Subscriber 데이터 스토어에서의 데이터 복제는 TCP/IP 스트림 소켓을 통해 통신하는 복제 에이전트에 의해 제어됩니다. Master 데이터 스토어의 에이전트가 트랜잭션 로그에서 레코드를 읽고 모든 관련 변경을 Subscriber 데이터 스토어의 에이전트에게 전달하면 이 에이전트는 변경된 내용을 자신의 데이터 스토어에 적용합니다. Subscriber 에이전트가 작동하지 않으면 Master는 변경된 내용이 Subscriber에 적용될 수 있을 때까지 자신의 로그에 보관합니다.

데이터 복제는 비동기식 모드가 기본으로 설정되어 있습니다. 비동기식 복제 모드에서는 애플리케이션이 Master 데이터 스토어를 변경하고 Subscriber에 복제되어야 할 변경내용의 반영 여부를 기다리지 않고 계속 서비스를 수행합니다. Master 및 Subscriber 데이터 스토어는 Subscriber가 변경내용을 성공적으로 수신, 실행되었음을 확인하는 내부 메커니즘을 갖추고 있어 비동기식 복제 모드에서도 복제될 변경 데이터가 각 Subscriber에 단 한번만 적용되도록 보장합니다.

일반적으로 비동기식 복제모드에서 Master 데이터 스토어를 사용하고 있는 애플리케이션은 Subscriber가 변경내용을 수신했는지를 기다리지 않고 동작하여 최고 성능을 발휘합니다. 이러한 비동기식 복제 모드에서도 Master 데이터 스토어와 Subscriber 데이터 스토어 간에 데이터의 일관성을 확실하게 보장받아야 하는 pessimistic 애플리케이션을 위하여 Oracle TimesTen In-Memory Database Replication은 return receipt 또는 return twosafe 라는 옵션을 제공합니다.

return receipt 서비스는 복제 시 Subscriber가 Master로부터 변경내용을 수신했다는 사실만을 확인될 때까지 애플리케이션의 서비스를 일시 차단함으로써 애플리케이션에게 loosely-coupled 비동기식 복제기능을 제공합니다. return twosafe 서비스는 복제 시 Subscriber가 업데이트 내용을 수신 및 실행했다는 사실 모두가 확인 될 때까지 애플리케이션을 차단함으로써 완전 동기식 옵션을 제공합니다.



캐싱된 데이터 복제


Cache Connect to Oracle 옵션을 사용하면 Oracle Database에 상주하는 데이터의 일부를 Oracle TimesTen In-Memory Database 에서 캐싱하거나 변경할 수 있도록 구성할 수 있습니다. oracle TimesTen In-Memory Database 의 캐싱 그룹을 변경가능(Updatable)한 옵션으로 구성하면 데이터를 변경할 경우 이 변경내용이 다시 Oracle Database에 반영될 수 있습니다.

Cache Connect to Oracle 옵션을 사용한 데이터 복제는 Oracle TimesTen In- Memory Database 간에 복제하는 것과 마찬가지로 캐시 그룹 간에 변경내용을 복제합니다. 이 경우 복제에 참여 중인 서버 중에 애플리케이션이 변경한 서버의 캐시 그룹 데이터만 Oracle Database로 전달되고 다른 서버는 데이터가 복제 되어도 Oracle Database로 전달되지 않아 Oracle Database로의 중복 전달을 피할 수 있습니다.