1. 데이터베이스 링크 소개#
이 장에서는 데이터베이스 링크의 개념과 Altibase의 데이터베이스 링크 구성 요소를 설명한다.
관련 용어#
이 절은 Altibase 데이터베이스 링크를 사용하기 위해 알아야 하는 용어를 소개한다.
-
Altibase 분산 데이터베이스 시스템 (Altibase Distributed Database System)
Altibase 서버 노드가 최소한 한 개 이상 포함된 두 개 이상의 데이터베이스 서버 노드들로 구성된 시스템을 말한다.
-
원격 노드 (Remote Node)
데이터베이스 링크로 연결된 대상 서버 또는 시스템을 의미한다. Altibase 서버 혹은 이기종의 데이터베이스 시스템을 원격 노드로 사용할 수 있다. 이 때 데이터베이스 링크로 연결되는 대상 서버 또는 시스템이 반드시 물리적으로 떨어져 있는 장비에 존재해야 할 필요는 없다. 즉, 하나의 장비에 로컬 서버와 대상 데이터베이스 서버가 모두 존재할 경우에도 대상 데이터베이스 서버를 원격 노드라고 한다.
-
원격 서버 (Remote Server)
원격 노드와 원격 서버의 의미를 구분하여 사용한다. 원격 노드는 데이터베이스 링크로 연결된 대상 데이터베이스 서버만을 의미하는데 반해, 원격 서버는 데이터베이스 링크 연결과는 상관없이 논리적으로 구분되는 데이터베이스 서버를 일컫는다.
-
연결 (Link)
데이터베이스 링크를 통한 서버간의 연결을 가리킨다.
-
링크 객체 (Link Object)
대상 데이터베이스 서버에 연결하기 위해 로컬 데이터베이스에 생성하는 데이터베이스 링크 객체를 말한다.
-
지역 서버 (Local Server)
데이터베이스 링크의 주체가 되는 Altibase 서버로써, 데이터베이스 링크 객체를 생성하고 사용한다.
-
링커 프로세스 (Linker Process)
이기종 DBMS들로 구성된 분산 데이터베이스 시스템을 구축할 경우에 지역 서버와 원격 서버간의 통신을 담당한다. 이 프로세스는 지역 서버에서 구동되며, AltiLinker라고도 표현한다.
-
링커 세션 (Linker Session)
Altibase 서버와 AltiLinker 프로세스 간에 생성되는 1:1 세션을 의미한다. 링커 세션은 링커 제어 세션(Linker Control Session)과 링커 데이터 세션(Linker Data Session)으로 구분된다.
-
위치 표시자(@) (Location Descriptor)
SQL 구문에 데이터베이스 링크를 표현하기 위해 사용되는 기호이다. 객체명과 데이터베이스 링크 이름 사이에 '@' 기호로 위치 표시자를 쓸 수 있다.
-
글로벌 트랜잭션 (Global Transaction)
지역 서버에서 수행되는 SQL 구문과 원격 노드에서 수행되는 SQL 구문으로 구성되는 트랜잭션이다.
-
로컬 트랜잭션 (Local Transaction)
지역 서버에서 수행되고 완료되는 구문들로 구성된 트랜잭션을 의미한다.
-
원격 트랜잭션 (Remote Transaction)
원격 노드에서 데이터베이스 링크로 수행중인 모든 트랜잭션을 의미한다.
-
글로벌 커밋 노드 (Global Commit Node)
글로벌 트랜잭션을 commit 또는 rollback하는 노드이다. 주로 사용자가 데이터베이스 링크를 생성하여 글로벌 트랜잭션을 시작하는 노드이다.
-
REMOTE 함수
Altibase 데이터베이스 링크 기능을 수행하는 pass-through 스타일의 저장 함수 혹은 저장 프로시저를 의미한다.
-
원격 구문 (Remote Statement)
데이터베이스 링크를 통해 전달되어 원격 서버에서 수행되는 SQL 구문을 의미한다.
-
참여자 (Participant)
데이터베이스 시스템간 수행되는 글로벌 트랜잭션에서 데이터베이스 시스템을 의미한다.
데이터베이스 링크 정의#
이 절은 데이터베이스 링크의 개념과 처리 방식을 소개하고, Altibase 분산 데이터베이스 시스템에 대하여 기술한다.
데이터베이스 링크의 개념#
Altibase의 데이터베이스 링크란 각각 독립적으로 동작하는 둘 이상의 데이터베이스 서버가 네트워크로 연결되어 있으며 주어진 권한 내에서 지역 서버가 원격 서버에 논리적으로 관계가 있는 데이터를 요청하고 결과를 받아오는 기술 요소이다.
독립적으로 동작한다는 것은 각 데이터베이스 시스템이 자신의 데이터 저장 영역을 갖고 있으며, 사용자의 요청을 독립적으로 처리할 수 있음을 의미한다. 네트워크로 연결된다는 것은 논리적으로 구분된 두 시스템 혹은 서버가 서로 접근이 가능하다는 것을 의미한다. 또한 논리적으로 관계가 있다는 것은 개별 노드에 분산된 데이터 사이에 상관 관계가 존재함을 의미한다.
처리 방식#
Altibase 데이터베이스 링크의 처리 방식을 개략적으로 설명하면 다음과 같다.
링크 객체를 생성한 서버에 질의를 입력하면, 데이터베이스 링크 프로세스를 거쳐 원격 서버에서 필요한 데이터를 가져온 후, 최종적인 질의 결과를 사용자에게 반환한다. 이 과정에서 최종 사용자는 논리적으로 하나의 서버가 동작하는 것으로 인식하게 된다.
Altibase 데이터베이스 링크는 크게 아래의 네 가지 요소로 구성되며, 아래 그림에서 짙은 색으로 표시되어 있다. DK 모듈과 AltiLinker 프로세스는 다음 절에서 상세히 설명한다.
-
DK 모듈 (DB-Link Module)
-
AltiLinker: 자바로 구현된 링커 프로세스
-
ADLP: Altibase 데이터베이스 링크 프로토콜
-
dblink.conf: 데이터베이스 링크용 프로퍼티 파일
[그림 1‑1] 데이터베이스 링크 처리 방식(Heterogeneous Link)
Altibase 분산 데이터베이스 시스템 개념#
ltibase 분산 데이터베이스 시스템은 논리적으로 떨어져 있는 두 개 이상의 데이터베이스 서버들로 구성되며, 최소한 하나는 Altibase 서버이어야 한다. 이 때 데이터베이스 링크를 생성하고 사용하는 데이터베이스는 반드시 Altibase이어야 한다. 연결 대상 서버는 Altibase 서버일 수도 있고 타사의 이기종 데이터베이스 시스템일 수도 있다.
로컬 서버의 Altibase가 데이터베이스 링크로 연결하는 원격 서버가 동일한 버전의 Altibase 서버인지 아닌지에 따라 Homogeneous Link 또는 Heterogeneous Link로 구분된다. 각각의 링크는 아래의 메커니즘을 갖는다.
Heterogeneous Link#
Heterogeneous Link는 Altibase 서버와 이기종 데이터베이스 서버와의 연결을 의미한다. 원격 서버의 데이터베이스가 Altibase이더라도 지역 서버의 Altibase와 버전이 다르면 Heterogeneous Link로 연결된다. 동일한 버전의 Altibase 서버 간에도 Heterogeneous Link가 가능하다.
Homogeneous Link#
Homogeneous Link는 동일한 버전의 프로토콜을 사용하는 Altibase 서버 간의 연결을 의미한다.
Homogeneous Link는 링크 프로세스(AltiLinker)를 거치지 않고 서버 간에 직접 연결한다. 따라서 Heterogeneous Link에 비해 성능이 좋으며, 특히 원격 노드에 접근이 빈번할수록 성능 격차가 더 커진다.
Altibase 버전 6.5.1 이상은 Homogeneous Link를 지원하지 않는다.
아래 표는 이 문서에서 사용하는 간략한 용어에 대한 정식 명칭과 그 의미를 나타낸다.
Notation | Full Name | Meaning |
---|---|---|
DB-Link | Altibase Database Link | Altibase 데이터베이스 링크 |
Heterogeneous-Link | Heterogeneous Database Link | Altibase 서버와 이기종 데이터베이스 시스템간의 데이터베이스 링크 |
Homogeneous-Link | Homogeneous Database Link | 동일한 버전의 Altibase 서버간의 데이터베이스 링크 |
Heterogeneous DBMS | Heterogeneous database management system | 이질적인 데이터베이스 관리 시스템으로, 지역 서버의 Altibase와 버전이 다른 Altibase 서버도 포함 |
Altibase 데이터베이스 링크 구성 요소#
이 절은 Altibase DB Link를 구성하는 요소들 중 데이터베이스 링크 모듈과 AltiLinker 프로세스에 대해 상세히 설명한다.
데이터베이스 링크 모듈#
데이터베이스 링크 모듈(이하 DK 모듈로 표기)은 Altibase 서버 내에서 데이터베이스 링크를 구현한 모듈이다. 이 모듈은 분산 데이터베이스 시스템 환경에서 원격 서버와의 연결을 위한 세션 관리, 원격 서버와의 연결을 의미하는 데이터베이스 링크 객체들의 관리, 데이터베이스 링크를 거쳐 수행되는 트랜잭션들의 관리, 각종 성능 뷰에 제공할 정보 관리, 원격 질의의 수행 결과로 얻은 레코드 집합 관리 등을 수행한다. 각각에 대해서 아래의 절에 상세히 설명한다.
-
링크 객체 관리
-
링커 세션 관리
-
성능 뷰의 정보 관리
-
글로벌 트랜잭션 관리
-
분산 트랜잭션 복구
-
결과 집합 데이터 관리
링크 객체 관리#
Altibase에서 링크 객체는 스키마 객체에 해당된다. 링크 객체의 생성과 삭제는 SQL문을 사용해서 가능하며, 각 SQL문에 대해서는 "4장 데이터베이스 링크 사용법"에서 자세히 설명한다.
Altibase는 링크 객체에 대해 아래의 두 가지 권한을 제공한다.
종류 | 허용된 사용자 | 설명 |
---|---|---|
PRIVATE Database Link | 링크 객체를 생성한 사용자와 SYS 사용자 | PRIVATE 링크 객체는 SYS 사용자 또는 해당 링크 객체를 생성한 사용자만이 사용하거나 삭제할 수 있다. |
PUBLIC Database Link | 모든 사용자 | PUBLIC 링크 객체는 모든 사용자가 사용할 수 있다. 단, 삭제는 SYS 사용자 또는 해당 객체를 생성한 사용자만이 할 수 있다. |
링커 세션 관리#
Altibase DK 모듈은 AltiLinker 프로세스에 연결하기 위해 링커 세션을 생성하고, 사용자 세션이 데이터베이스 링크를 참조할 때마다 이 링커 세션의 연결 상태를 감시한다.
아래 그림은 클라이언트가 데이터베이스 링크를 사용하는 SQL구문을 실행할 때, 이를 처리하기 위해 DK 모듈 및 AltiLinker 프로세스에 생성되는 세션들을 나타낸다.
[그림 1‑2] DK 모듈과 AltiLinker 프로세스 내의 링커 세션
성능 뷰의 정보 관리#
사용자는 성능 뷰를 조회하여 데이터베이스 링크 관련 정보를 확인할 수 있다. Altibase가 데이터베이스 링크를 위해 관리하는 성능 뷰의 정보는 아래와 같다.
데이터베이스 링크 객체 정보#
데이터베이스에 생성된 데이터베이스 링크 객체에 대한 정보를 의미하며, 이 정보는 V$DBLINK_DATABASE_LINK_INFO 성능 뷰로 사용자에게 제공된다.
링커 세션 정보#
DK 모듈에서 생성된 링커 세션에 관련된 정보를 의미하며, 이 정보는 V$DBLINK_LINKER_SESSION_INFO 성능 뷰로 사용자에게 제공된다.
링커 세션은 링커 제어 세션과 링커 데이터 세션으로 구분된다. 링커 제어 세션은 AltiLinker 프로세스가 종료되기 전까지 Altibase 서버와 AltiLinker 프로세스 사이에 유일하게 생성되어 존재하고, 링커 데이터 세션은 데이터베이스 링크를 사용하는 사용자 세션 별로 하나씩 생성된다.
-
링커 제어 세션 정보
링커 제어 세션의 상태 정보를 의미하며, 이 데이터는 V$DBLINK_LINKER_CONTROL_SESSION_INFO 성능 뷰로 사용자에게 제공된다. 링커 제어 세션은 AltiLinker 프로세스의 종료와 상태 정보의 요청 및 설정 변경 등을 수행한다.
-
링커 데이터 세션 정보
링커 데이터 세션과 관련된 정보를 의미하며, 이 정보는 V$DBLINK_LINKER_DATA_SESSION_INFO 성능 뷰로 사용자에게 제공된다.
트랜잭션 정보#
-
글로벌 트랜잭션 정보
글로벌 트랜잭션에 대한 상태 정보를 의미하며, 이 정보는 V$DBLINK_GLOBAL_TRANSACTION_INFO 성능 뷰로 사용자에게 제공된다.
-
원격 트랜잭션 정보
데이터베이스 링크를 통해 원격 노드에서 수행중인 모든 원격 트랜잭션에 대한 상태 정보를 의미하며, 이 정보는 V$DBLINK_REMOTE_TRANSACTION_INFO 성능 뷰로 사용자에게 제공된다.
-
원격 구문(Remote Statement) 정보
데이터베이스 링크를 통해 원격 노드에서 수행중인 모든 구문(statement)에 대한 정보를 의미하며, 이 데이터는 V$DBLINK_REMOTE_STATEMENT_INFO 성능 뷰로 사용자에게 제공된다.
AltiLinker 프로세스의 상태 정보#
AltiLinker 프로세스의 동적인 상태 정보를 의미하며, 이 정보는 V$DBLINK_ALTILINKER_STATUS 성능 뷰로 사용자에게 제공된다. 이 정보에는 연결 상태 뿐만 아니라 AltiLinker 프로세스가 현재 사용 중인 JVM 메모리에 관련된 정보도 포함된다.
글로벌 트랜잭션 관리#
Altibase 데이터베이스 링크에서 트랜잭션의 개념은 글로벌 트랜잭션과 원격 트랜잭션으로 구분된다.
글로벌 트랜잭션이란 지역 서버에 존재하는 데이터베이스 링크를 통해 원격 서버에서 수행되는 원격 트랜잭션을 하나 이상 포함하는 트랜잭션을 의미한다. Altibase 데이터베이스 링크는 글로벌 트랜잭션을 처리하기 위하여 ADLP라는 Altibase 데이터베이스 링크용 프로토콜을 구현하였다.
원격 트랜잭션은 데이터베이스 링크를 통해 원격 서버에서 수행되는 구문들로 구성된 트랜잭션으로 글로벌 트랜잭션을 구성한다.
ADLP (Altibase Database Link Protocol)#
ADLP는 Altibase 서버와 AltiLinker 프로세스 사이 데이터 교환 방식과 처리 방식을 정의한 것으로, 다음의 내용을 포함한다.
-
링커 세션 제어
-
원격 트랜잭션 제어
-
원격 구문 수행
-
AltiLinker 프로세스 제어
글로벌 트랜잭션 완료는 글로벌 트랜잭션에 참여하고 있는 모든 서버(로컬 및 원격)에서 트랜잭션을 한꺼번에 완료(커밋 혹은 롤백)해야 한다. 따라서 어느 한 서버에 문제가 발생하면 데이터의 일관성을 유지하지 못할 수 있다. 이러한 문제의 대처 방안으로 Altibase 데이터베이스 링크는 지역 서버와 원격 서버 간의 프로토콜 공유 정도에 따라 세 가지 레벨의 글로벌 트랜잭션 수행 메커니즘을 제공한다.
-
원격 구문 실행 레벨 (Remote Statement Execution Level)
원격 구문 실행 레벨은 글로벌 트랜잭션의 전역적인 일관성을 보장하지 않는다. 단지 데이터베이스 링크를 통해 원격 노드에서 구문을 수행하는 것만을 보장한다. 즉, 이 레벨에서는 하나의 글로벌 트랜잭션 내에서 로컬 서버에서 수행되는 구문과 데이터베이스 링크를 통해 원격 서버에서 수행되는 구문은 별개의 트랜잭션으로 동작한다.
DBLINK_GLOBAL_TRANSACTION_LEVEL 프로퍼티를 이 레벨로 설정하면, AltiLinker가 원격 서버로 연결하는 세션은 기본적으로 autocommit 모드가 ON으로 설정된다. -
단순 트랜잭션 커밋 레벨 (Simple Transaction Commit Level)
Altibase 데이터베이스 링크 중 Heterogeneous Link는 Altibase와 이기종의 데이터베이스 시스템 간에 수행되는 글로벌 트랜잭션의 원자성을 보장하기 위하여 단순 트랜잭션 커밋의 메커니즘을 구현한다. 이 레벨은 2단계 커밋의 동작 방식과 유사하다. 그러나, 2단계 커밋 프로토콜이 커밋 준비를 위해 서버간에 메시지를 주고 받는 것과는 달리, 단순 트랜잭션 커밋의 경우에는 서버간에 메시지 교환 없이 단지 커밋이나 롤백 명령을 원격 노드로 전달할 수 있는지 만을 검사한다.
단순 트랜잭션 커밋 레벨이 동작하기 위해서는 원격 노드를 구성하는 데이터베이스 시스템이 auto-commit 모드를 OFF로 설정할 수 있는 시스템이어야 한다.
DBLINK_GLOBAL_TRANSACTION_LEVEL 프로퍼티를 이 레벨로 설정하면, AltiLinker가 원격 서버로 연결하는 세션은 기본적으로 autocommit 모드가 OFF로 설정된다. -
2단계 커밋 레벨 (Two-Phase Commit Level)
Altibase 서버와 이기종 데이터베이스 시스템 간의 글로벌 트랜잭션 정합성을 보장하는 2단계 커밋 프로토콜을 제공한다. DBLINK_GLOBAL_TRANSACTION_LEVEL 프로퍼티를 2(Two-Phase Commit Level)로 설정한 후에 사용할 수 있다. 아래 그림은 2단계 커밋 레벨의 동작을 설명한다.
[그림 1‑3] 2단계 커밋 레벨 (Two-Phase Commit Level)
-
준비 단계(Prepare Phase)
사용자가 커밋을 수행하면 Altibase는 준비 로그(prepare log)를 기록하고 준비요청 메시지를 AltiLinker에게 보낸다. 메시지를 받은 AltiLinker는 글로벌 트랜잭션에 속한 모든 참여자에게 준비요청 메시지를 보낸다. 그리고 참여자가 준비를 마치면 AltiLinker는 Altibase에게 준비완료 메시지를 보내고 모든 참여자에게 결과를 받은 Altibase는 다음 단계를 진행한다.
-
커밋 단계(Commit Phase)
Altibase는 커밋로그(commit log)를 기록하고 커밋요청 메시지를 AltiLinker에게 보낸다. AltiLinker는 모든 참여자에 커밋을 수행하며 모든 참여자가 커밋에 성공할 때까지 커밋 메시지를 보낸다. 참여자 전원이 커밋에 성공하면 Altibase에게 성공 메시지를 보낸다. Altibase가 성공 메시지를 받으면 해당 트랜잭션이 종료되었다는 것을 의미하므로 종료 로그(end log)를 남기고 결과를 반영한다. 즉, 종료 로그가 기록된 트랜잭션은 장애 복구를 할 수 없다.
-
Altibase는 글로벌 트랜잭션 및 원격 트랜잭션에 대한 정보 및 트랜잭션의 처리 상태에 관한 정보를 성능 뷰로 제공한다.
분산 트랜잭션 복구 (Recovery Of Distributed Transaction)#
장애 시점은 2PC를 기준으로 하고, 장애 대상은 Altibase와 참여자(원격 데이터베이스 시스템)로 한다. Altibase는 참여자와 메시지를 주고 받을 때 ALTILINKER_RECEIVE_TIMEOUT에 설정한 시간 동안 응답이 없으면 참여자에 장애가 발생했다고 판단한다.
준비 로그의 기록 이전#
Altibase에 장애가 발생한 경우, 분산 트랜잭션의 시작 로그에는 기록이 남지만 준비 로그에는 기록이 남지 않았다면 참여하고 있는 모든 원격 트랜잭션를 철회한다. 그리고 Altibase에서 수행되고 있는 로컬 트랜잭션도 철회되며 종료 로그를 기록한다.
준비 로그의 기록 이후 - 커밋 로그의 기록 이전#
Altibase에 장애가 발생한 경우, 분산 트랜잭션의 준비 로그는 기록되지만 커밋 로그 및 롤백 로그는 기록되지 않는다. 커밋 로그가 기록되지 않은 상황에는 정합성 보장을 위해 수행하고 있는 모든 원격 트랜잭션을 복구한다. 이 때 참여자에 장애가 발생하면 원격 트랜잭션의 복구를 보장하기 위해 참여자가 롤백 메시지를 받을 때까지 Altibase는 메시지 송신을 시도하여 복구를 수행하고 종료 로그를 기록한다. 참여자에 장애가 발생한 경우, Altibase는 참여자의 트랜잭션이 복구하도록 메시지를 보낸다. AltiLinker에 장애가 발생한 경우, 모든 원격 트랜잭션의 상태를 알 수 없으며 모든 트랜잭션에 대한 커밋 로그가 기록되지 않았으므로 롤백을 수행하고 종료 로그를 기록한다.
커밋 로그의 기록 이후 - 종료 로그의 기록 이전#
커밋 단계에서 장애가 발생한 경우에는 분산 트랜잭션에 대한 커밋 및 롤백 로그가 기록되지만 종료 로그는 기록되지 않는다. Altibase는 참여자에게 커밋 메시지의 응답을 받지 못한 상태로 참여자의 트랜잭션이 커밋 또는 롤백 되도록 지속적으로 시도하고 완료되면 종료 로그를 기록한다.
결과 집합 데이터 관리#
Altibase DK 모듈은 데이터베이스 링크를 통해 로컬 서버와 원격 서버간에 주고 받는 데이터를 처리하는 기능을 제공한다. DK 모듈은 다음과 같은 데이터를 처리한다.
-
제어 데이터
ADLP에 정의되어 있는 각 작업이 요구하는 데이터로, 내부적으로 생성되어 DK 모듈과 AltiLiker 프로세스간에 주고 받는 데이터를 의미한다.
-
사용자 데이터
프로퍼티 설정 값, 원격 서버에서 수행할 구문의 문자열 및 바인딩 변수의 설정 값 등이 해당된다.
-
원격 데이터
원격 서버에서 수행된 결과 데이터로, DK 모듈이 수신하는 데이터를 의미한다.
이러한 데이터에 대한 처리는 크게 Altibase 서버와 AltiLinker 프로세스 사이에 주고받는 모든 데이터의 타입 변환과 원격 서버에서 수행한 쿼리의 결과로 받는 원격 데이터의 버퍼링으로 구분된다.
타입 변환은 ADLP에 정의된 작업 별 데이터 명세에 따라 변환이 수행 되며, 원격 데이터의 경우 원격 서버가 수행한 쿼리의 결과 집합 내의 각 타입을 거기에 대응하는 Altibase 서버 타입으로 변환한다.
원격 데이터의 버퍼링은 DK 모듈 내부적으로 관리하는 고정된 크기의 메모리 버퍼(이후 DK 버퍼로 표현)와 디스크 임시 테이블을 이용한다. 사용자는 데이터베이스 링크를 위해 사용할 DK 버퍼의 크기를 프로퍼티로 조절할 수 있다. 한 번 설정된 버퍼의 크기는 Altibase 운영 중에는 변경할 수 없으므로, 메모리 자원과 성능을 고려하여 서버 시작 전에 결정하도록 한다. DK 버퍼는 한 개 이상의 데이터 버퍼 블록으로 구성되며, 데이터 버퍼 블록의 최소 크기와 개수는 프로퍼티로 조절할 수 있다.
AltiLinker 프로세스#
AltiLinker는 Altibase 패키지 내에 포함되어 배포되는 자바 응용 프로그램이다. AltiLinker 프로세스는 Heterogeneous Link용으로 동작하며, 링크 객체가 존재하는 Altibase 서버와 해당 링크 객체에 의해 연결되는 이기종 데이터베이스 시스템 혹은 원격 서버와의 통신을 담당한다.
Altibase 데이터베이스 링크에서 Heterogeneous Link에 대해 제공하는 AltiLinker는 아래와 같은 몇 가지 특징이 있다.
- 데이터베이스 링크로 연결된 이기종 데이터베이스 서버에서 발생한 오류가 Altibase 서버에 영향을 주지 않는다.
- AltiLinker는 JDBC 인터페이스로 원격 데이터베이스에 접근하므로 JDBC를 지원하는 모든 데이터베이스 시스템에 Altibase 데이터베이스 링크로 접근이 가능하다.
AltiLinker 프로세스를 활성화하려면, 아래의 두 프로퍼티를 설정해야 한다.
프로퍼티 | 설정 값 | 프로퍼티 파일 |
---|---|---|
DBLINK_ENABLE | 1 (0이면 disable) | altibase.properties |
ALTILINKER_ENABLE | 1 (0이면 disable) | dblink.conf |
AltiLinker 프로세스의 역할을 간략히 정리하면 아래와 같다.
- JDBC 드라이버를 통해 이기종 데이터베이스 시스템에 연결
- ADLP를 통해 Altibase 서버에서 요청 받은 작업 수행
- 원격 노드에서 수행한 쿼리의 결과를 Altibase 서버로 전달
주의사항#
- AltiLinker 프로세스는 JDBC 인터페이스를 사용하여 원격 서버의 데이터베이스에 접근하므로 해당 데이터베이스 벤더가 제공하는 JDBC 드라이버가 반드시 필요하다.
- AltiLinker 프로세스는 지역 서버와 동일한 장비에서만 동작한다.