1. 소개#
이 장은 Adapter for JDBC의 개념과 구조, 그리고 Altibase에서 변경된 데이터가 다른 데이터베이스에 복제되는 동작 구조를 설명한다.
Adapter for JDBC#
Altibase Adapter for JDBC(이하 'jdbcAdapter'라 칭한다)는 Altibase에서 변경된 데이터를 JDBC를 지원하는 다른 데이터베이스에 적용하는 유틸리티이다. 이는 Altibase 에서 제공하는 Altibase Log Analysis API를 이용하여 구현되었다.
구조와 개념#
사용자가 Altibase에서 변경된 데이터를 다른 데이터베이스(Other DB)로 복제하기 위해서는 아래 그림에 보이는 것처럼 먼저 Altibase, jdbcAdapter 및 사용하려는 JDBC를 지원하는 타사의 데이터베이스를 설치해야 한다.
jdbcAdapter는 Altibase Log Analysis API (이하 ALA라 칭한다)와 Java data base connectivity (JDBC)를 사용하여 구현되었다. ALA는 Altibase에서 변경된 데이터를 수신할 때 사용되고, JDBC는 데이터를 보낼 대상이 되는 다른 데이터베이스로 데이터를 전송할 때 사용된다. ALA에 대한 자세한 설명은 Log Analyzer User's Manual을 참고하기 바란다.
아래 그림은 jdbcAdapter가 어떻게 Altibase에서 다른 데이터베이스로 데이터를 복제하는지를 보여준다.
[그림 1] Adapter for JDBC의 구조
-
사용자가 데이터를 삽입하거나 수정할 때, Altibase 서버 내의 XLog 송신자는 XLog와 메타 정보를 생성하여 XLog 콜렉터에게 전송한다. 메타 정보는 handshaking 시에만 전송한다.
-
jdbcAdapter 내에 존재하는 XLog 콜렉터는 XLog와 메타 정보를 사용자에게 제공하기 위해 ALA를 사용한다. ALA 호출에 실패하면, 트레이스 로그가 trc 디렉터리의 파일에 기록된다.
-
jdbcAdapter는 획득한 데이터를 다른 데이터베이스에 적용하기 위해 ALA를 사용하여 데이터를 변환한다.
-
jdbcAdapter는 변환된 데이터를 JNI를 통해 JDBC를 사용하여 다른 데이터베이스에 적용한다.
용어#
XLog#
리두 로그를 논리적인 형태로 변환한 로그이다. 변경 DML (INSERT/UPDATE/DELETE) 구문과 관련된 트랜잭션의 이력을 저장한다.
XLog 송신자#
XLog 송신자는 액티브 리두 로그를 분석하여 XLog 형태로 변환하고 이를 XLog 콜렉터에게 전달한다.
XLog 송신자는 handshaking과 XLog 전송을 주로 담당한다.
XLog 콜렉터#
XLog 콜렉터는 메타 데이터와 XLog를 XLog 송신자로부터 받는다.
XLog 콜렉터는 메타 데이터, XLog 큐, 트랜잭션 테이블 및 XLog 풀을 가지고 있다.
Handshaking#
Handshaking은 XLog 송신자가 XLog 콜렉터에게 XLog를 보내기 전에 프로토콜 버전과 메타 데이터를 확인하는 작업이다.
Log Analysis API#
Altibase가 제공하는 인터페이스로써, jdbcAdapter를 구현할 때 사용된다. 주로 XLog와 XLog를 해석하는데 사용되는 메타 정보를 구하는데 사용된다.