GOLDILOCKS Replication 소개
데이터베이스 이중화 (replication)는 데이터를 효율적이고 일관되게 분배하여 원본 데이터베이스 (local database)에서 장애가 발생할 경우, 원격 데이터베이스 (remote database)를 사용하여 데이터를 복구하여 지속적으로 서비스를 유지할 수 있도록 한다. 또한 동일한 데이터를 가지는 여러 개의 데이터베이스를 구축하기 위해서도 이중화가 사용된다.
GOLDILOCKS의 이중화는 Change Data Capture (CDC) 방식을 사용하는 툴인 CYCLONE을 지원한다.
Change Data Capture (CDC)
데이터베이스 운영 중에 생성되는 redo log를 캡처하고 분석하여 이중화를 수행하는 방식이다.
데이터베이스에 갱신된 내용이 redo log file에 저장되고 난 이후에 CYCLONE이 처리할 수 있기 때문에 비동기 (asynchronous) 방식만 지원한다.
CDC 방식은 비동기 방식만 지원하기 때문에 원본 데이터베이스와 그를 이중화하는 원격 데이터베이스 사이에는 데이터 반영에 대한 interval이 발생할 수 밖에 없다. 만약 원격 데이터베이스로 이중화를 완료하지 않은 상태에서 원본 데이터베이스나 장비에 장애가 발생할 경우, 원격 데이터베이스는 interval을 반영하지 못한 상태로 남아있게 된다.
이러한 비동기 방식의 interval로 인해 데이터가 미반영되는 점을 보완하기 위해 LOGMIRROR를 사용할 수 있다.
LOGMIRROR는 redo log file을 이중화하는 툴로써 원본 데이터베이스에서 생성되는 redo log를 손실없이 원격 장비에 전송하고 저장한다. 이를 사용하여 데이터의 손실을 방지할 수 있다.
CDC 방식을 사용하여 데이터베이스에서 수행되고 COMMIT 된 transaction 데이터를 Comma-Separated Values (CSV) 형식의 파일로 저장하는 CYFILE 툴을 제공한다. 사용자는 필요에 따라 저장된 파일을 사용하여 직접 데이터를 처리하거나 데이터를 변환하여 목적에 맞게 사용할 수 있다.
CYFILE은 CDC 방식을 사용하여 redo log file을 직접 capture하여 실시간으로 transaction을 분석하고 해당 내용을 CSV 형식의 파일로 저장한다.
특징
CYCLONE
CYCLONE의 특징은 다음과 같다.
Change Data Capture (CDC) 방식을 사용하는 이중화 툴이다.
원본 데이터베이스의 redo log file 갱신 사항을 인식하고 분석하여 적용한다.
Master와 slave로 구분되어 운영된다.
Active-active, active-standby를 지원한다.
Table 단위의 replication이 가능하다.
성능 향상을 위한 다양한 옵션을 설정할 수 있다.
독립적인 프로세스 (process)로 실행되기 때문에 장애가 발생해도 GOLDILOCKS에 영향을 미치지 않는다.
운영을 구성할 때 H/W를 추가하거나 변경할 필요가 없다.
다양한 이중화 구성 (topology)이 가능하다.
Standalone 환경에서 master와 slave 간의 운영은 1 : 1 또는 N : N을 지원한다.
Cluster 환경에서 master와 slave 간의 운영은 N : 1을 지원한다.
LOGMIRROR
LOGMIRROR의 특징은 다음과 같다.
원본 데이터베이스의 redo log를 손실없이 원격 장비에 전송하고 저장한다.
CYCLONE과 연동하여 데이터 손실없이 이중화할 수 있다.
한 개의 데이터베이스에서 한 개의 LOGMIRROR만 운영할 수 있다.
Master와 slave로 구분되어 운영된다.
CYFILE
CYFILE의 특징은 다음과 같다.
Change Data Capture (CDC) 방식을 사용한다.
원본 데이터베이스의 redo log file에 갱신된 내용을 인식하고 분석한다.
Table 단위로 capture 할 수 있다.
독립적인 프로세스로 실행되기 때문에 장애가 발생하더라도 GOLDILOCKS에 영향을 미치지 않는다.
Standalone 환경과 cluster 환경을 지원한다.