CUBRID
  • 매뉴얼 소개
    • 매뉴얼 구성
    • 용어 정리
    • 매뉴얼 규약
    • 버전명 및 버전 문자열 규약
  • CUBRID 소개
    • 시스템 구조
      • 프로세스 구조
      • 데이터베이스 볼륨 구조
        • 영구적 볼륨(Permanent Volume)
        • 일시적 볼륨(Temporary Volume)
        • 백업 볼륨
      • 데이터베이스 서버
      • 브로커
      • 인터페이스 모듈
    • CUBRID의 특징
  • 설치 및 업그레이드
    • 설치와 실행
      • 지원 플랫폼 및 설치 권장 사양
      • 버전 호환성
      • Linux에서의 설치와 실행
      • Windows에서의 설치와 실행
      • 압축 파일로 설치하기
        • Linux에서 tar.gz 파일로 CUBRID 설치
        • Windows에서 zip 파일로 CUBRID 설치
    • 환경 변수 설정
      • CUBRID 환경 변수
      • OS 환경 변수 및 Java 환경 변수
      • 환경 변수 설정
      • 언어 및 문자셋 설정
    • 포트 설정
      • CUBRID 기본 사용 포트
      • CUBRID HA 사용 포트
      • CUBRID 매니저 서버 사용 포트
      • CUBRID 자바 저장 프로시저 서버 사용 포트
    • 업그레이드
      • 업그레이드 시 주의 사항
      • CUBRID 9.2/9.3/10.0/10.1/10.2/11.0 에서 CUBRID 11.2 으로 업그레이드하기
        • DB 마이그레이션
        • 파라미터 설정
      • CUBRID 9.1에서 CUBRID 11.2으로 업그레이드하기
        • DB 마이그레이션
        • 파라미터 설정
      • CUBRID 2008 R4.1/R4.3/R4.4에서 CUBRID 11.2으로 업그레이드하기
        • DB 마이그레이션
        • 파라미터 설정
      • CUBRID 2008 R4.0 이하 버전에서 CUBRID 11.2으로 업그레이드하기
        • DB 마이그레이션
        • 파라미터 설정
    • HA 환경에서 DB 마이그레이션
      • CUBRID 2008 R2.2 이상 버전에서 CUBRID 11.2 으로 HA 마이그레이션
      • CUBRID 2008 R2.0 또는 R2.1에서 CUBRID 11.2 으로 HA 마이그레이션
    • CUBRID 제거
      • Linux에서 CUBRID 제거
      • Windows에서 CUBRID 제거
  • 시작하기
    • CUBRID 서비스 시작
      • 셸 명령어
      • CUBRIDService 또는 CUBRID Service Tray
      • 데이터베이스 생성
      • 데이터베이스 시작
    • 질의 도구
      • CSQL 인터프리터
    • 관리 도구
      • CUBRID 매니저로 SQL 실행하기
      • CUBRID 마이그레이션 툴킷으로 스키마/데이터 이전하기
    • 드라이버
  • CSQL 인터프리터
    • CSQL 인터프리터 소개
    • CSQL 실행
      • CSQL 실행 모드
      • CSQL 사용 방법
      • CSQL 시작 옵션
    • 세션 명령어
  • CUBRID SQL
    • 작성 규칙
      • 식별자
        • 식별자 작성 원칙
        • 허용되는 식별자
        • 허용되지 않는 식별자
        • 식별자 이름의 최대 길이
      • 예약어
      • 주석
      • 리터럴
        • 숫자
        • 날짜/시간
        • 비트열
        • 문자열
        • 컬렉션
        • NULL
    • 데이터 타입
      • 데이터 타입
        • 수치형 데이터 타입
          • INT, INTEGER
          • SHORT, SMALLINT
          • BIGINT
          • NUMERIC, DECIMAL
          • FLOAT, REAL
          • DOUBLE, DOUBLE PRECISION
        • 날짜/시간 데이터 타입
          • DATE
          • TIME
          • TIMESTAMP
          • DATETIME
          • 문자열을 날짜/시간 타입으로 CAST
        • 타임존이 있는 날짜/시간 데이터 타입
          • 타임존 설정
          • 타임존 함수
          • 타임존 타입을 사용하는 함수
          • 타임존 타입에 대한 변환 함수
          • IANA 타임존
        • 비트열 데이터 타입
          • BIT(n)
          • BIT VARYING(n)
        • 문자열 데이터 타입
          • CHAR(n)
          • VARCHAR(n) 또는 CHAR VARYING(n)
          • STRING
          • 특수 문자 이스케이프
          • 비교 규칙
        • ENUM 데이터 타입
          • ENUM 타입 비교
          • ENUM 타입 정렬
          • 참고 사항
        • BLOB/CLOB 데이터 타입
          • BLOB
          • CLOB
          • 정의 및 변경
          • 저장 및 변경
          • 조회
          • 연산자와 함수
          • 저장소 생성 및 관리
          • 트랜잭션 지원 및 복구
        • 컬렉션 데이터 타입
          • SET
          • MULTISET
          • LIST 또는 SEQUENCE
        • JSON 데이터 타입
          • JSON 데이터 생성
          • JSON 유효성 검사
          • JSON 데이터의 타입
          • JSON 데이터 변환
          • JSON 경로
          • JSON 포인터
        • 묵시적 타입 변환
          • 변환 규칙
    • 데이터 정의문
      • 테이블 정의문
        • CREATE TABLE
          • 테이블 정의
          • 칼럼 정의
          • ON UPDATE
          • 제약 조건 정의
          • 칼럼 옵션
          • 테이블 옵션
          • CREATE TABLE LIKE
          • CREATE TABLE AS SELECT
        • ALTER TABLE
          • ADD COLUMN 절
          • ADD CONSTRAINT 절
          • ADD INDEX 절
          • ALTER COLUMN … SET DEFAULT 절
          • AUTO_INCREMENT 절
          • CHANGE/MODIFY 절
          • 칼럼의 커멘트
          • RENAME COLUMN 절
          • DROP COLUMN 절
          • DROP CONSTRAINT 절
          • DROP INDEX 절
          • DROP PRIMARY KEY 절
          • DROP FOREIGN KEY 절
        • DROP TABLE
        • RENAME TABLE
      • 인덱스 정의문
        • CREATE INDEX
          • 인덱스의 커멘트
          • 온라인 인덱스 생성
          • 다른 트랜잭션에서 온라인 인덱스 출력
          • 다른 트랜잭션이 고유키 위반을 유발하는 삽입을 실행하는 도중의 온라인 인덱스
        • ALTER INDEX
        • DROP INDEX
      • 뷰 정의문
        • CREATE VIEW
          • 업데이트 가능한 VIEW의 생성 조건
          • 뷰의 커멘트
        • ALTER VIEW
          • ADD QUERY 절
          • AS SELECT 절
          • CHANGE QUERY 절
          • DROP QUERY 절
          • COMMENT 절
        • DROP VIEW
        • RENAME VIEW
      • 시리얼 정의문
        • CREATE SERIAL
          • 시리얼의 커멘트
        • ALTER SERIAL
        • DROP SERIAL
        • 시리얼 사용
          • 의사 칼럼
          • 함수
      • 동의어 정의문
        • CREATE SYONYM
          • 1. 전용(Private) 동의어
          • 2. 동의어 정보
          • 3. 동의어 이름
          • 4. 동의어에 대한 동의어
          • 5. 스키마 지정 동의어 생성
        • ALTER SYONYM
          • 대상 객체 변경
          • 커멘트 변경
        • DROP SYONYM
        • RENAME SYONYM
          • 1. 스키마를 변경할 수 없음
          • 2. 이미 사용 중인 이름
        • 동의어 사용
          • 1. 다른 스키마의 동의어 사용
          • 2. 동의어를 사용할 수 없는 구문
      • 서버 정의문
        • CREATE SERVER
          • 서버 정의
        • RENAME SERVER
        • DROP SERVER
        • ALTER SERVER
          • OWNER TO 절
          • CHANGE 절
      • 저장 함수/프로시저 정의문
        • CREATE PROCEDURE
          • 저장 프로시저의 커멘트
          • 등록된 저장 프로시저의 정보 확인
        • DROP PROCEDURE
        • CREATE FUNCTION
          • 저장 함수의 커멘트
          • 등록된 저장 함수의 정보 확인
        • DROP FUNCTION
        • Java Call Specification
          • 데이터 타입 매핑
    • 연산자와 함수
      • 논리 연산자
      • 비교 연산자
      • 산술 연산자
        • 수치형 데이터 타입의 산술 연산과 타입 변환
        • 날짜/시간 데이터 타입의 산술 연산과 타입 변환
          • 타임존 파라미터들과 관련된 동작
      • 집합 산술 연산자
        • SET, MULTISET, LIST
          • 변수에 컬렉션 값 할당
      • 문장 집합 연산자
        • UNION, DIFFERENCE, INTERSECTION
      • 포함 연산자
        • SETEQ
        • SETNEQ
        • SUPERSET
        • SUPERSETEQ
        • SUBSET
        • SUBSETEQ
      • 비트 함수와 연산자
        • 비트 연산자
        • BIT_AND
        • BIT_OR
        • BIT_XOR
        • BIT_COUNT
      • 문자열 함수와 연산자
        • 병합 연산자
        • ASCII
        • BIN
        • BIT_LENGTH
        • CHAR_LENGTH, CHARACTER_LENGTH, LENGTHB, LENGTH
        • CHR
        • CONCAT
        • CONCAT_WS
        • ELT
        • FIELD
        • FIND_IN_SET
        • FROM_BASE64
        • INSERT
        • INSTR
        • LCASE, LOWER
        • LEFT
        • LOCATE
        • LPAD
        • LTRIM
        • MID
        • OCTET_LENGTH
        • POSITION
        • REPEAT
        • REPLACE
        • REVERSE
        • RIGHT
        • RPAD
        • RTRIM
        • SPACE
        • STRCMP
        • SUBSTR
        • SUBSTRING
        • SUBSTRING_INDEX
        • TO_BASE64
        • TRANSLATE
        • TRIM
        • UCASE, UPPER
      • 수치 연산 함수
        • ABS
        • ACOS
        • ASIN
        • ATAN
        • ATAN2
        • CEIL
        • CONV
        • COS
        • COT
        • CRC32
        • DEGREES
        • DRANDOM, DRAND
        • EXP
        • FLOOR
        • HEX
        • LN
        • LOG2
        • LOG10
        • MOD
        • PI
        • POW, POWER
        • RADIANS
        • RANDOM, RAND
        • ROUND
        • SIGN
        • SIN
        • SQRT
        • TAN
        • TRUNC, TRUNCATE
        • WIDTH_BUCKET
      • 날짜/시간 함수와 연산자
        • ADDDATE, DATE_ADD
        • ADDTIME
        • ADD_MONTHS
        • CURDATE, CURRENT_DATE
        • CURRENT_DATETIME, NOW
        • CURTIME, CURRENT_TIME
        • CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP
        • DATE
        • DATEDIFF
        • DATE_SUB, SUBDATE
        • DAY, DAYOFMONTH
        • DAYOFWEEK
        • DAYOFYEAR
        • EXTRACT
        • FROM_DAYS
        • FROM_TZ
        • FROM_UNIXTIME
        • HOUR
        • LAST_DAY
        • MAKEDATE
        • MAKETIME
        • MINUTE
        • MONTH
        • MONTHS_BETWEEN
        • NEW_TIME
        • QUARTER
        • ROUND
        • SEC_TO_TIME
        • SECOND
        • SYS_DATE, SYSDATE
        • SYS_DATETIME, SYSDATETIME
        • SYS_TIME, SYSTIME
        • SYS_TIMESTAMP, SYSTIMESTAMP
        • TIME
        • TIME_TO_SEC
        • TIMEDIFF
        • TIMESTAMP
        • TO_DAYS
        • TRUNC
        • TZ_OFFSET
        • UNIX_TIMESTAMP
        • UTC_DATE
        • UTC_TIME
        • WEEK
        • WEEKDAY
        • YEAR
      • JSON 함수
        • JSON 함수 소개
        • JSON_ARRAY
        • JSON_OBJECT
        • JSON_KEYS
        • JSON_DEPTH
        • JSON_LENGTH
        • JSON_VALID
        • JSON_TYPE
        • JSON_QUOTE
        • JSON_UNQUOTE
        • JSON_PRETTY
        • JSON_SEARCH
        • JSON_EXTRACT
        • ->
        • ->>
        • JSON_CONTAINS_PATH
        • JSON_CONTAINS
        • JSON_MERGE_PATCH
        • JSON_MERGE_PRESERVE
        • JSON_MERGE
        • JSON_ARRAY_APPEND
        • JSON_ARRAY_INSERT
        • JSON_INSERT
        • JSON_SET
        • JSON_REPLACE
        • JSON_REMOVE
        • JSON_TABLE
      • LOB 함수
        • BIT_TO_BLOB
        • BLOB_FROM_FILE
        • BLOB_LENGTH
        • BLOB_TO_BIT
        • CHAR_TO_BLOB
        • CHAR_TO_CLOB
        • CLOB_FROM_FILE
        • CLOB_LENGTH
        • CLOB_TO_CHAR
      • 데이터 타입 변환 함수와 연산자
        • CAST
        • DATE_FORMAT
        • FORMAT
        • STR_TO_DATE
        • TIME_FORMAT
        • TO_CHAR(date_time)
        • TO_CHAR(number)
        • TO_DATE
        • TO_DATETIME
        • TO_DATETIME_TZ
        • TO_NUMBER
        • TO_TIME
        • TO_TIMESTAMP
        • TO_TIMESTAMP_TZ
      • 집계/분석 함수
        • 개요
        • 집계 함수와 분석 함수 비교
        • OVER 함수 내에 “ORDER BY” 절을 명시해야 하는 분석 함수
        • AVG
        • COUNT
        • CUME_DIST
        • DENSE_RANK
        • FIRST_VALUE
        • GROUP_CONCAT
        • LAG
        • LAST_VALUE
        • LEAD
        • MAX
        • MEDIAN
        • MIN
        • NTH_VALUE
        • NTILE
        • PERCENT_RANK
        • PERCENTILE_CONT
        • PERCENTILE_DISC
        • RANK
        • ROW_NUMBER
        • STDDEV, STDDEV_POP
        • STDDEV_SAMP
        • SUM
        • VARIANCE, VAR_POP
        • VAR_SAMP
        • JSON_ARRAYAGG
        • JSON_OBJECTAGG
      • 클릭 카운터 함수
        • INCR, DECR
      • ROWNUM 함수
        • ROWNUM, INST_NUM
        • ORDERBY_NUM
        • GROUPBY_NUM
      • 정보 함수
        • CHARSET
        • COERCIBILITY
        • COLLATION
        • CURRENT_USER, USER
        • DATABASE, SCHEMA
        • DBTIMEZONE
        • DEFAULT
        • DISK_SIZE
        • INDEX_CARDINALITY
        • INET_ATON
        • INET_NTOA
        • LAST_INSERT_ID
        • LIST_DBS
        • ROW_COUNT
        • SESSIONTIMEZONE
        • USER, SYSTEM_USER
        • VERSION
      • 암호화 함수
        • MD5
        • SHA1
        • SHA2
      • 비교 연산식
        • 단순 비교 조건식
        • ANY/SOME/ALL 수량어와 그룹 조건식
        • BETWEEN
        • EXISTS
        • IN
        • IS NULL
        • LIKE
        • REGEXP, RLIKE
        • CASE
      • 비교 함수
        • COALESCE
        • DECODE
        • GREATEST
        • IF
        • IFNULL, NVL
        • ISNULL
        • LEAST
        • NULLIF
        • NVL2
      • 기타 함수
        • SLEEP
        • SYS_GUID
    • 데이터 조작문
      • SELECT
        • FROM 절
          • 유도 테이블
          • 부질의 유도 테이블
          • DBLINK
        • WHERE 절
        • GROUP BY … HAVING 절
        • ORDER BY 절
        • LIMIT 절
        • 조인 질의
          • 내부 조인
          • 외부 조인
          • 교차 조인
          • 자연 조인
        • 부질의
          • 단일 행 부질의
          • 다중 행 부질의
        • VALUES
        • FOR UPDATE
      • 계층적 질의
        • START WITH 절
        • CONNECT BY 절
        • 계층 질의 실행
          • 조인 테이블에 대한 계층 질의
          • 계층 질의 결과
          • 계층 질의문에서의 데이터 정렬
        • 계층 질의 의사 칼럼
          • LEVEL
          • CONNECT_BY_ISLEAF
          • CONNECT_BY_ISCYCLE
        • 계층 질의 연산자
          • CONNECT_BY_ROOT
          • PRIOR
        • 계층 질의 함수
          • SYS_CONNECT_BY_PATH
        • 계층 질의문 예
        • 계층 질의문의 성능
      • INSERT
        • INSERT … SELECT 문
        • ON DUPLICATE KEY UPDATE 절
      • UPDATE
      • REPLACE
      • DELETE
      • MERGE
      • TRUNCATE
      • PREPARED STATEMENT
        • PREPARE 문
        • EXECUTE 문
        • DEALLOCATE PREPARE 문, DROP PREPARE 문
      • DO
      • CTE
        • CTE 컬럼명
        • 재귀절
        • DML과 CREATE에서 CTE의 사용
      • CALL
    • 질의 최적화
      • 통계 정보 갱신
      • 통계 정보 확인
      • 질의 실행 계획 보기
      • 질의 프로파일링
      • SQL 힌트
      • 인덱스 힌트
        • USING INDEX
        • USE, FORCE, IGNORE INDEX
        • 인덱스 힌트 사용 예
      • 특별한 인덱스
        • 필터링된 인덱스
        • 함수 기반 인덱스
      • 인덱스를 활용한 최적화
        • 커버링 인덱스
        • ORDER BY 절 최적화
        • 내림차순 인덱스 스캔
        • GROUP BY 절 최적화
        • 다중 키 범위 최적화
        • Index Skip Scan
        • Loose Index Scan
        • 인-메모리 정렬
        • SORT-LIMIT 최적화
      • 쿼리 캐시
    • 분할
      • 분할
        • 분할 키
        • 영역 분할
        • 해시 분할
        • 리스트 분할
          • 분할 커멘트
        • 분할 프루닝
        • 분할 관리
          • 분할 테이블을 일반 테이블로 변경
          • 분할 재구성
          • 분할 추가
          • 분할 제거
          • 해시 분할 재구성
          • 분할 승격
        • 분할 테이블의 인덱스
        • 분할에 관한 노트
          • 분할 테이블에 관한 통계
          • 분할된 테이블에 대한 제약들
          • 분할 키와 문자셋, 콜레이션
    • 다국어 지원
      • 다국어 개요
        • 문자 데이터
        • 관련 용어
        • 로캘 속성
        • 콜레이션 속성
        • 콜레이션 명명 규칙
          • CUBRID 콜레이션
        • 로캘 저장 위치
      • 로캘 설정
        • 1단계: 로캘 선택
        • 2단계: 로캘 컴파일하기
        • 3단계: 특정 로캘을 사용하기 위해 CUBRID 설정하기
          • 내장된 로캘과 라이브러리 로캘
          • ISO-8859-1 문자셋에서 한국어와 터키어의 월, 요일
        • 4단계: 선택한 로캘 설정으로 데이터베이스 생성하기
        • 5단계(선택 사항): 로캘 파일의 수동 검증
        • 6단계: CUBRID 관련 프로세스 시작
        • 데이터베이스 콜레이션을 시스템 콜레이션에 동기화
      • 콜레이션 설정
        • 칼럼의 문자셋과 콜레이션
          • 문자셋
          • 문자열 검사
          • 문자셋 변환
          • 콜레이션
          • CHARSET과 COLLATE 수정자
          • 콜레이션이 서로 다를 때 결정 방식
          • ENUM 타입 칼럼의 문자셋과 콜레이션
        • 테이블의 문자셋과 콜레이션
        • 문자열 리터럴의 문자셋과 콜레이션
          • SET NAMES 문
          • 문자셋 소개자
        • 표현식의 문자셋과 콜레이션
        • 시스템 데이터의 문자셋과 콜레이션
        • DB 생성 시 지정한 로캘의 영향
          • 식별자의 대소문자 구분
        • 문자열 리터럴의 입출력
          • CSQL을 위한 텍스트 변환
          • 유니코드 정규화
        • 콜레이션의 축약과 확장
          • 축약
          • 확장
        • 문자셋과 콜레이션을 필요로 하는 연산
          • 문자셋
          • 콜레이션
          • 문자셋 변환
        • 콜레이션 설정으로 인한 영향
          • LIKE 조건 최적화
          • 커버링 인덱스
          • 각 콜레이션에 대한 기능 요약
        • 콜레이션 정보 보기
      • JDBC에서 i18n 문자 사용
      • 타임존 설정
        • 타임존 라이브러리 컴파일
          • 윈도우즈
          • 리눅스
          • 타임존 라이브러리 및 데이터베이스 호환성
          • JDBC에서 타임존 데이터 타입 사용
      • 다국어 설정을 위한 고려 사항
        • 로캘
        • CHAR와 VARCHAR
        • 문자셋 선택
        • 콜레이션 선택
        • 정규화
        • CAST vs COLLATE
      • 주의 사항
      • 로캘과 콜레이션 추가 안내서
        • LDML 캘린더 정보
        • LDML 숫자 정보
        • LDML 알파벳
        • LDML 콘솔 변환
        • LDML 콜레이션
    • 트랜잭션과 잠금
      • 데이터베이스 트랜잭션
        • 트랜잭션 커밋
        • 트랜잭션 롤백
        • 세이브포인트와 부분 롤백
      • 커서 유지
      • 데이터베이스 동시성
      • 다중 버전 동시성 제어(Multiversion Concurrency Control)
        • 버전 관리, 가시성 및 스냅샷
        • VACUUM
          • VACUUM 병렬 수행
          • VACUUM 데이터
          • VACUUM 작업
          • 삭제된 파일 추적
      • 잠금 프로토콜
        • 잠금의 단위
        • 잠금 모드의 종류와 호환성
          • 잠금 사용 예제
        • unique 제약 조건을 보호하기 위한 잠금
        • 트랜잭션 교착 상태(deadlock)
        • 트랜잭션 잠금 타임아웃
      • 트랜잭션 격리 수준
        • 트랜잭션 격리 수준 설정
        • 트랜잭션 격리 수준 값 확인
        • READ COMMITTED 격리 수준
          • READ COMMITTED UPDATE RE-EVALUATION
        • REPEATABLE READ 격리 수준
        • SERIALIZABLE 격리 수준
        • CUBRID에서 더티 레코드를 다루는 방법
      • 트랜잭션 종료와 복구
        • 데이터베이스 재구동
    • 트리거
      • CREATE TRIGGER
        • 트리거 정의를 위한 가이드라인
        • 트리거 정의 구문
        • 이벤트 시점
        • 트리거 타입
        • 트리거 이벤트 타입
        • 트리거 이벤트 대상
        • 이벤트 타입과 대상 조합
        • 트리거 조건 영역
        • 상관명(correlation name)
        • 트리거 실행 영역
        • 트리거의 커멘트
      • ALTER TRIGGER
        • 트리거 커멘트
      • DROP TRIGGER
      • RENAME TRIGGER
      • 지연된 트리거
        • 지연된 영역 실행
        • 지연된 영역 취소
        • 트리거 권한 부여
      • REPLACE와 INSERT … ON DUPLICATE KEY UPDATE에서의 트리거
      • 트리거 디버깅
        • 트리거 실행 로그 보기
        • 중첩된 트리거 제한
      • 트리거를 이용한 응용
    • Java 저장 함수/프로시저
      • Java 저장 함수/프로시저 소개
      • 기능 사용을 위한 준비
        • cubrid.conf 확인
        • 자바 저장 프로시저 서버 구동
      • 자바 저장 함수/프로시저 작성과 로드
        • Java 소스 작성
        • Java 소스 컴파일
        • Java 클래스 로드
        • 저장 함수/프로시저 등록
      • Java 저장 함수/프로시저 호출
        • CALL 문
        • SQL 문에서 호출
        • Java 응용 프로그램에서 호출
      • 서버 내부 JDBC 드라이버 사용
        • Connection 생성
        • 질의문 수행
          • 질의문 수행 예시
        • OUT, IN/OUT 정의
        • Set 타입의 IN/OUT 정의
        • Java 저장 함수/프로시저에서 OID 사용
        • 질의 결과셋 반환
        • 연결 중인 클라이언트 정보 획득
      • 다른 데이터베이스 연결
      • loadjava 유틸리티
      • 주의 사항
        • 리턴 값 및 IN/OUT 파라미터에 대한 타입 자릿수 제한사항
      • 부록
        • JDBC API 지원표
          • java.sql.Connection
          • java.sql.Statement
          • java.sql.PreparedStatement
          • java.sql.CallableStatement
          • java.sql.ResultSet
          • java.sql.ResultSetMetaData
    • CUBRID DBLink
      • CUBRID DBLink 소개
      • CUBRID DBLink 구성도
        • 동일기종 간의 DBLink 구성도
        • 이기종 간의 DBLink 구성도
      • DBLink를 위한 GATEWAY
        • cub_cas_cgw
        • cub_gateway
        • 공유 메모리
        • GATEWAY 구동
        • GATEWAY 종료
        • GATEWAY 재시작
        • GATEWAY 상태 확인
        • CUBRID 서비스 시작시 게이트웨이 함께 시작
      • CUBRID DBLINK 설정
        • 동일기종 DBLink 설정
        • 이기종 DBLink 설정
        • GATEWAY 파라메터
        • cubrid_gateway.conf 파일
        • ODBC Driver 설치
        • ODBC Driver Name 확인 및 설정
      • Cubrid DBLink 사용 방법
      • 제약사항
    • 메서드
      • 메서드 타입
      • 메서드 호출
    • 클래스 상속
      • 클래스 속성과 클래스 메서드
      • 상속을 위한 순서 규칙
      • INHERIT 절
      • ADD SUPERCLASS 절
      • DROP SUPERCLASS 절
      • 클래스 충돌 해결
        • 해결 지시자
        • 수퍼클래스 충돌
          • 수퍼클래스 추가
          • 수퍼클래스 삭제
          • 호환되는 도메인
        • 서브클래스 충돌
          • 속성과 메서드의 추가
          • 속성과 메서드의 삭제
        • 스키마 불변성
          • 클래스 계층 불변성
          • 이름 불변성
          • 상속 불변성
          • 일치 불변성
        • 스키마 변경 규칙
          • 충돌 해결 규칙
          • 도메인 변경 규칙
          • 클래스 계층 규칙
    • 데이터베이스 관리
      • 사용자 관리
        • 데이터베이스 사용자
        • CREATE/ALTER/DROP USER
          • 사용자의 커멘트
        • GRANT
        • REVOKE
        • ALTER … OWNER
        • 사용자 권한 관리 메서드
      • SET
        • 시스템 파라미터
        • 사용자 변수
      • KILL
      • SHOW
        • DESC, DESCRIBE
        • EXPLAIN
        • SHOW TABLES
        • SHOW COLUMNS
        • SHOW INDEX
        • SHOW COLLATION
        • SHOW TIMEZONES
        • SHOW GRANTS
        • SHOW CREATE TABLE
        • SHOW CREATE VIEW
        • SHOW ACCESS STATUS
        • SHOW EXEC STATISTICS
        • 진단(Diagnostics)
          • SHOW VOLUME HEADER
          • SHOW LOG HEADER
          • SHOW ARCHIVE LOG HEADER
          • SHOW HEAP HEADER
          • SHOW HEAP CAPACITY
          • SHOW SLOTTED PAGE HEADER
          • SHOW SLOTTED PAGE SLOTS
          • SHOW INDEX HEADER
          • SHOW INDEX CAPACITY
          • SHOW CRITICAL SECTIONS
          • SHOW TRANSACTION TABLES
          • SHOW THREADS
          • SHOW JOB QUEUES
          • SHOW PAGE BUFFER STATUS
    • 사용자 스키마
    • 시스템 카탈로그
      • 시스템 카탈로그 클래스
        • _db_class
        • _db_attribute
        • _db_domain
        • _db_charset
        • _db_collation
        • _db_method
        • _db_meth_sig
        • _db_meth_arg
        • _db_meth_file
        • _db_query_spec
        • _db_index
        • _db_index_key
        • _db_auth
        • _db_data_type
        • _db_partition
        • _db_server
        • _db_stored_procedure
        • _db_stored_procedure_args
        • _db_synonym
        • db_user
        • db_authorization
        • db_serial
        • db_trigger
        • db_ha_apply_info
        • dual
      • 시스템 카탈로그 가상 클래스
        • DB_CLASS
        • DB_DIRECT_SUPER_CLASS
        • DB_VCLASS
        • DB_ATTRIBUTE
        • DB_ATTR_SETDOMAIN_ELM
        • DB_CHARSET
        • DB_COLLATION
        • DB_METHOD
        • DB_METH_ARG
        • DB_METH_ARG_SETDOMAIN_ELM
        • DB_METH_FILE
        • DB_INDEX
        • DB_INDEX_KEY
        • DB_AUTH
        • DB_TRIG
        • DB_PARTITION
        • DB_SERVER
        • DB_STORED_PROCEDURE
        • DB_STORED_PROCEDURE_ARGS
        • DB_SYNONYM
      • 카탈로그 클래스/가상 클래스 사용 권한
      • 카탈로그에 대한 질의
  • CUBRID 운영
    • CUBRID 프로세스 제어
      • CUBRID 서비스 제어
      • 데이터베이스 서버 제어
      • 브로커 제어
      • 게이트웨이 제어
      • CUBRID 매니저 서버 제어
      • CUBRID HA 제어
      • CUBRID 자바 저장 프로시저 (Java SP) 서버 제어
    • CUBRID 서비스
      • 서비스 등록
      • 서비스 구동
      • 서비스 종료
      • 서비스 재구동
      • 서비스 상태 관리
      • cubrid 유틸리티 로깅
    • 데이터베이스 서버
      • 데이터베이스 서버 구동
      • 데이터베이스 서버 종료
      • 데이터베이스 서버 재구동
      • 데이터베이스 상태 확인
      • 데이터베이스 서버 접속 제한
      • 데이터베이스 서버 로그
        • 에러 로그
        • 이벤트 로그
      • 데이터베이스 서버 에러
    • 브로커
      • 브로커 구동
      • 브로커 종료
      • 브로커 재시작
      • 브로커 상태 확인
      • 브로커 서버 접속 제한
      • 패킷 암호화
      • 특정 브로커 관리
      • 브로커 파라미터의 동적 변경
      • 브로커 설정 정보 확인
      • 브로커 로그
        • 접속 로그 확인
        • 에러 로그 확인
        • SQL 로그 관리
          • broker_log_top
          • cubrid_replay
      • CAS 에러
    • 게이트웨이
      • 게이트웨이 구동
      • 게이트웨이 종료
      • 게이트웨이 재시작
      • 게이트웨이 상태 확인
    • CUBRID 매니저 서버
      • CUBRID 매니저 서버 구동
      • CUBRID 매니저 서버 종료
      • CUBRID 매니저 서버 로그
      • CUBRID 매니저 서버 환경 설정
      • CUBRID 매니저 사용자 관리 콘솔
    • CUBRID 자바 저장 프로시저 서버
      • CUBRID 자바 저장 프로시저 서버 구동
      • CUBRID 자바 저장 프로시저 서버 종료
      • CUBRID 자바 저장 프로시저 서버 재시작
      • CUBRID 자바 저장 프로시저 서버 상태 확인
      • 데이터베이스 서버 구동 시 CUBRID 자바 저장 프로시저 함께 구동
      • Java 저장 함수/프로시저 서버 설정
        • Java 저장 함수/프로시저 환경 설정
        • 자바 저장 프로시저 서버 시스템 파라미터
      • CUBRID 자바 저장 프로시저 서버 로그
        • 에러 로그
        • 자바 로그
      • CUBRID 자바 저장 프로시저 에러
    • 데이터베이스 관리
      • 데이터베이스 사용자
      • databases.txt 파일
      • 데이터베이스 볼륨
    • cubrid 유틸리티
      • cubrid 유틸리티 로깅
      • createdb
      • addvoldb
      • deletedb
      • renamedb
      • alterdbhost
      • copydb
      • installdb
      • backupdb
        • 백업 정책 및 방식
        • 백업 파일 관리
        • 보관 로그 관리
      • restoredb
        • 복구 정책과 절차
        • 다른 서버로의 데이터베이스 복구
      • unloaddb
      • loaddb
        • 가져오기용 파일 작성 방법
          • 주석
          • 명령 라인
          • 데이터 라인
        • 데이터베이스 마이그레이션
      • spacedb
      • compactdb
      • optimizedb
      • plandump
      • statdump
      • lockdb
        • 출력 내용
      • tranlist
      • killtran
      • checkdb
      • diagdb
      • paramdump
      • tde
      • flashback
      • HA 명령어
      • 로캘 명령어
      • 타임존 명령어
    • 시스템 설정
      • 데이터베이스 서버 설정
        • 데이터베이스 서버 설정이 미치는 범위
        • 데이터베이스 서버 설정값 변경
          • 환경 설정 파일 편집
          • SQL 문을 사용
          • CSQL 인터프리터의 세션 명령어 사용
        • cubrid.conf 설정 파일과 기본 제공 파라미터
          • 데이터베이스 서버 시스템 파라미터
          • 파라미터의 섹션별 분류
          • 기본 제공 파라미터
        • 접속 관련 파라미터
        • 메모리 관련 파라미터
        • 디스크 관련 파라미터
        • 오류 메시지 관련 파라미터
        • 동시성/잠금 파라미터
        • 로깅 관련 파라미터
        • 트랜잭션 처리 관련 파라미터
        • 구문/타입 관련 파라미터
        • 스레드 관련 파라미터
        • 타임존 파라미터
        • 질의 계획 캐시 관련 파라미터
        • 질의 캐쉬 관련 파라미터
        • 유틸리티 관련 파라미터
        • HA 관련 파라미터
        • 기타 파라미터
      • 브로커 설정
        • cubrid_broker.conf 설정 파일과 기본 제공 파라미터
          • 브로커 시스템 파라미터
          • 기본 제공 파라미터
          • 브로커 설정 파일 관련 환경 변수
        • 공통 적용 파라미터
          • 접속
          • 로그
          • 브로커 서버(cub_broker)
        • 브로커별 파라미터
          • 접속
          • 브로커 응용 서버(CAS)
          • 트랜잭션 및 질의
          • 로그
          • 기타
      • HA 설정
    • SystemTap
      • 개요
      • SystemTap 설치하기
        • 설치 확인
        • 버전
      • 관련 용어
        • 마커(Marker)
        • 프로브(Probe)
        • 비동기 이벤트
      • CUBRID에서 SystemTap 사용하기
        • CUBRID 소스 빌드
        • SystemTap 스크립트 실행
        • 결과 출력
      • CUBRID 마커
        • 연결 마커
        • 질의 마커
        • 객체 연산 마커
        • 인덱스 연산 마커
        • 잠금(locking) 마커
        • 트랜잭션 마커
        • I/O 마커
        • 기타 마커
    • cubrid 스크립트
      • unloaddb.sh 스크립트
    • 트러블슈팅
      • SQL 로그 확인
        • CAS의 SQL 로그
        • CAS 정보 출력 함수
        • 응용 프로그램 로그
        • 슬로우 쿼리
      • 서버 에러 로그
        • 오버플로우 키 또는 오버플로우 페이지 감지
        • 로그 회복 시간 감지
        • 교착 상태 감지
      • HA 상태 변경 감지
        • HA split-brain 감지
        • Fail-over, Fail-back 감지
      • HA 구동 실패
        • 대표적인 복구 불가능 장애
        • HA 구동 실패 시 대처 방법
    • DDL Audit Log
      • 개요
      • DDL Audit 로그 파일 이름 규칙
      • CAS의 DDL Audit 로그 파일 형식
      • CSQL의 DDL Audit 로그 파일 형식
      • LOADDB의 DDL Audit 로그 형식
  • CUBRID HA
    • CUBRID HA 기본 개념
      • 노드와 그룹
      • 프로세스
      • 서버
      • heartbeat 메시지
      • failover와 failback
      • 브로커 모드
    • CUBRID HA 기능
      • 서버 이중화
      • 브로커 이중화
      • 로그 다중화
    • 빠른 시작
      • 준비
      • 데이터베이스 생성 및 서버 설정
      • CUBRID HA 시작 및 확인
      • 브로커 설정, 시작 및 확인
    • 환경 설정
      • cubrid.conf
        • HA 여부
        • 로깅
        • 접속
      • cubrid_ha.conf
        • 노드
        • 접속
        • 복제
        • SQL 로깅
      • cubrid_broker.conf
        • 접속 대상
        • 접속 순서
        • 접속 제한
        • 재접속
      • databases.txt
      • JDBC 설정
      • CCI 설정
      • PHP 설정
    • 브로커와 DB 연결
      • 접속 절차
      • 파라미터 설정에 따른 동작의 예
    • 구동 및 모니터링
      • cubrid heartbeat 유틸리티
        • start
        • stop
        • copylogdb
        • applylogdb
        • reload
        • replication(또는 repl) start
        • replication(또는 repl) stop
        • status
      • cubrid service에 HA 등록
      • applyinfo
      • cubrid changemode
      • CUBRID 매니저 HA 모니터링
    • HA 구성 형태
      • HA 기본 구성
      • 다중 슬레이브 노드 구성
      • 부하 분산 구성
      • 다중 스탠바이 서버 구성
    • HA 제약 사항
    • 운영 시나리오
      • 읽기 쓰기 서비스 중 운영 시나리오
      • 읽기 서비스 중 운영 시나리오
      • 서비스 정지 후 운영 시나리오
      • 레플리카 복제 지연 설정 시나리오
    • 복제 구축
      • restoreslave
      • 복제 구축 시나리오 예제
      • 서비스 정지 후 슬레이브 추가
      • 서비스 운영 중 슬레이브 하나 더 추가
      • 서비스 운영 중 슬레이브 제거
      • 서비스 운영 중 레플리카 추가
      • 서비스 운영 중 슬레이브 재구축
    • 복제 불일치 감지
      • 복제 불일치 감지 방법
      • checksumdb
      • HA 오류 메시지
        • CAS 프로세스(cub_cas)
        • 복제 로그 복사 프로세스(copylogdb)
        • 복제 로그 반영 프로세스(applylogdb)
    • 복제 재구축 스크립트
      • ha_make_slavedb.sh 스크립트
  • CUBRID 보안
    • 패킷 암호화
      • 패킷 암호화 필요성
      • 패킷 암호화 방법
      • 패킷 암호화를 위한 서버 설정
      • 지원하는 드라이버
    • 서버 접근제어
    • 권한 관리
    • TDE (Transparent Data Encryption)
      • CUBRID TDE 개념
      • 키 관리
        • 2 계층 키 관리
        • 파일 기반의 마스터 키 관리
      • 암호화 대상
        • 영구 데이터 암호화
        • 임시 데이터 암호화
        • 로그 데이터 암호화
        • DWB 암호화
        • 백업 볼륨 암호화
      • 암호화 알고리즘
      • 암호화 테이블 확인
        • SHOW CREATE TABLE 구문 이용
        • db_class 시스템 카탈로그에 질의
        • cubrid diagdb 유틸리티를 통한 확인
      • HA 환경에서의 TDE
      • TDE 기능을 사용할 수 없을 때의 동작
      • 제약 사항
  • API 레퍼런스
    • JDBC 드라이버
      • JDBC 개요
      • JDBC 설치 및 설정
      • JDBC 프로그래밍
        • 연결 설정
        • DataSource 객체로 연결
        • SQL LOG 확인
        • 외래 키 정보 확인
        • OID와 컬렉션 사용
          • OID 사용
          • 컬렉션 사용
        • 자동 증가 특성의 칼럼 값 검색
        • BLOB/CLOB 사용
        • setBoolean
        • JDBC 에러 코드와 에러 메시지
      • JDBC 예제 프로그램
      • JDBC API
    • CCI 드라이버
      • CCI 개요
      • CCI 프로그래밍
        • CCI 응용 프로그램 작성
        • 라이브러리 적용
        • BLOB/CLOB 사용
        • CCI 에러 코드와 에러 메시지
      • CCI 예제 프로그램
      • CCI API 레퍼런스
        • cci_bind_param
        • cci_bind_param_array
        • cci_bind_param_array_size
        • cci_bind_param_ex
        • cci_blob_free
        • cci_blob_new
        • cci_blob_read
        • cci_blob_size
        • cci_blob_write
        • cci_cancel
        • cci_clob_free
        • cci_clob_new
        • cci_clob_read
        • cci_clob_size
        • cci_clob_write
        • cci_close_query_result
        • cci_close_req_handle
        • cci_col_get
        • cci_col_seq_drop
        • cci_col_seq_insert
        • cci_col_seq_put
        • cci_col_set_add
        • cci_col_set_drop
        • cci_col_size
        • cci_connect
        • cci_connect_ex
        • cci_connect_with_url
        • cci_connect_with_url_ex
        • cci_cursor
        • cci_cursor_update
        • cci_datasource_borrow
        • cci_datasource_change_property
        • cci_datasource_create
        • cci_datasource_destroy
        • cci_datasource_release
        • cci_disconnect
        • cci_end_tran
        • cci_escape_string
        • cci_execute
        • cci_execute_array
        • cci_execute_batch
        • cci_execute_result
        • cci_fetch
        • cci_fetch_buffer_clear
        • cci_fetch_sensitive
        • cci_fetch_size
        • cci_get_autocommit
        • cci_get_bind_num
        • cci_get_cas_info
        • cci_get_class_num_objs
        • CCI_GET_COLLECTION_DOMAIN
        • cci_get_cur_oid
        • cci_get_data
        • cci_get_db_parameter
        • cci_get_db_version
        • cci_get_err_msg
        • cci_get_error_msg
        • cci_get_holdability
        • cci_get_last_insert_id
        • cci_get_login_timeout
        • cci_get_query_plan
        • cci_query_info_free
        • cci_get_query_timeout
        • cci_get_result_info
        • CCI_GET_RESULT_INFO_ATTR_NAME
        • CCI_GET_RESULT_INFO_CLASS_NAME
        • CCI_GET_RESULT_INFO_IS_NON_NULL
        • CCI_GET_RESULT_INFO_NAME
        • CCI_GET_RESULT_INFO_PRECISION
        • CCI_GET_RESULT_INFO_SCALE
        • CCI_GET_RESULT_INFO_TYPE
        • CCI_IS_SET_TYPE
        • CCI_IS_MULTISET_TYPE
        • CCI_IS_SEQUENCE_TYPE
        • CCI_IS_COLLECTION_TYPE
        • cci_get_version
        • cci_init
        • cci_is_holdable
        • cci_is_updatable
        • cci_next_result
        • cci_oid
        • cci_oid_get
        • cci_oid_get_class_name
        • cci_oid_put
        • cci_oid_put2
        • cci_prepare
        • cci_prepare_and_execute
        • cci_property_create
        • cci_property_destroy
        • cci_property_get
        • cci_property_set
        • cci_query_result_free
        • CCI_QUERY_RESULT_ERR_NO
        • CCI_QUERY_RESULT_ERR_MSG
        • CCI_QUERY_RESULT_RESULT
        • CCI_QUERY_RESULT_STMT_TYPE
        • cci_register_out_param
        • cci_row_count
        • cci_savepoint
        • cci_schema_info
        • cci_set_allocators
        • cci_set_autocommit
        • cci_set_db_parameter
        • cci_set_element_type
        • cci_set_free
        • cci_set_get
        • cci_set_holdability
        • cci_set_isolation_level
        • cci_set_lock_timeout
        • cci_set_login_timeout
        • cci_set_make
        • cci_set_max_row
        • cci_set_query_timeout
        • cci_set_size
    • PHP 드라이버
      • PHP 설치 및 설정
        • Linux
        • Windows
      • PHP 드라이버 빌드
        • Linux
        • Windows
      • PHP 프로그래밍
        • 데이터베이스 연결
        • 트랜잭션과 자동 커밋
        • 질의 처리
      • PHP API
    • PDO 드라이버
      • PDO 설치 및 설정
        • Linux
        • Windows
      • PHP 드라이버 빌드
      • PDO 프로그래밍
        • 데이터 원본 이름(DSN)
        • 미리 정의된 상수
      • PDO 예제 프로그램
        • CUBRID PDO 드라이버 확인
        • CUBRID 연결
        • SELECT 실행
        • UPDATE 실행
        • prepare와 bind
        • PDO::getAttribute() 사용
        • CUBRID PDO 확장
      • PDO API
    • ODBC 드라이버
      • ODBC 설치 및 설정
      • ODBC 프로그래밍
        • 연결 문자열(connection string) 구성
      • ASP 예제 프로그램
      • ODBC API
    • OLE DB 드라이버
      • OLE DB 설치 및 설정
      • OLE DB 프로그래밍
        • 데이터 연결 속성 대화 상자 사용
        • 연결 문자열(connection string) 구성
        • .NET 환경에서의 멀티 스레드 프로그래밍
      • OLE DB API
    • ADO.NET 드라이버
      • ADO.NET 설치 및 설정
      • ADO.NET 프로그래밍
        • 단순 질의/조회
        • batch 명령어
        • 연결 문자열
        • CUBRID 컬렉션
        • BLOB/CLOB 사용
        • CUBRID 메타데이터 지원
        • DataTable 지원
        • 트랜잭션
        • 파라미터 사용
        • 오류 코드 및 메시지
      • ADO.NET API
    • Perl 드라이버
      • Perl 설치 및 설정
      • Perl API
    • Python 드라이버
      • Python 설치 및 설정
        • Linux/Unix
        • Windows
      • Python 프로그래밍
      • Python 예제 프로그램
      • Python API
    • Ruby 드라이버
      • Ruby 설치 및 설정
      • Ruby 예제 프로그램
      • Ruby API
    • Node.js 드라이버
      • Node.js 설치
      • CUBRID Node.js API
  • 릴리스 노트
    • 11.2 릴리스 노트
      • 릴리스 노트 정보
      • 릴리스 개요
        • 드라이버 호환성
      • 11.2 변경사항
      • 주의사항
        • 신규 주의 사항
        • 기존 주의 사항
    • 공통 정보
      • 개정 내역
      • 버그 리포트 및 사용자 피드백 제공 방법
      • 라이선스
      • 추가 정보
      • 드라이버 관련 주의 사항
CUBRID
  • »
  • CUBRID SQL »
  • CUBRID DBLink
  • View page source

CUBRID DBLink¶

CUBRID DBLink 소개¶

데이터베이스에서 정보를 조회하다 보면 종종 외부 데이타베이스의 정보 조회가 필요한 경우가 있다. 이렇게 외부 데이터베이스의 정보를 조회하기 위해서 CUBRID DBLink를 이용하면 타 데이터베이스의 정보를 조회할 수 있다.

CUBRID DBLink는 동일 기종인 CUBRID와 이기종인 Oracle, MySQL의 데이타베이스의 정보를 조회할 수 있도록 기능을 제공하고 있다. 외부 데이타베이스의 정보를 마치 하나의 데이터베이스에서 조회하는 것과 같은 효과를 발휘한다. 단 외부 데이타베이스를 여러 개 설정은 가능 하나, 정보를 조회할 때는 한 개의 타 데이타베이스의 정보만 조회가 가능하다.

CUBRID DBLink 구성도¶

CUBRID DBLink는 동일기종 간에 DBLink와 이기종 간의 DBLink를 지원한다.

동일기종 간의 DBLink 구성도¶

동일기종의 외부 데이터베이스의 정보를 조회하기 위한 구성도를 보면 Database Server에서 CCI를 이용하여 동일기종의 Brokers에 접속하여 외부 데이터베이스의 정보를 조회할 수 있다.

../_images/dblink_homo.png

이기종 간의 DBLink 구성도¶

이기종 데이터베이스의 정보를 조회하기 위한 구성도를 보면 GATEWAY를 통해서 이기종 데이터베이스의 정보를 조회할 수 있다. GATEWAY는 ODBC(Open DataBase Connectivity)를 이용하고 있다.

../_images/dblink_heter.png

DBLink를 위한 GATEWAY¶

게이트웨이는 외부의 데이터베이스 서버에 연결할 수 있도록 중계하는 미들웨어로 Broker와 유사하다. 게이트웨이는 CUBRID Database Server에서 외부의 서버에 즉 Oracle/MySQL에 연결하여 외부 서버의 정보를 조회하여 CUBRID Database Server에 전달하는 역할을 한다. 게이트웨이를 포함하는 큐브리드 시스템은 아래 그림과 같이 cubrid_gateway, cub_gateway, cub_cas_cgw를 포함한 다중 계층 구조를 가진다.

../_images/gateway.png

cub_cas_cgw¶

cub_cas_cgw(CAS Gateway)는 CUBRID Database Server에서 외부의 Database의 연결을 요청하는 공용 서버 역할을 한다. 또한, cub_cas_cgw는 데이터베이스 서버의 클라이언트로 동작하여 CUBRID Database Server의 요청에 의해 외부 데이터베이스 서버와 연결을 제공한다. 서비스 풀(service pool) 내에서 구동되는 cub_cas_cgw의 개수는 cubrid_gateway.conf 설정 파일에 지정할 수 있으며, cub_gateway에 의해 동적으로 조정된다.

cub_gateway¶

cub_gateway는 CUBRID Database Server와 cub_cas_cgw 사이의 연결을 중계하는 기능을 수행한다. 즉, CUBRID Database Server가 접근을 요청하면, cub_gateway는 공유 메모리(shared memory)를 통해 cub_cas_cgw의 상태를 파악하여 접근 가능한 cub_cas_cgw에게 요청을 전달하고, 해당 cub_cas_cgw로부터 전달받은 요청에 대한 처리 결과를 CUBRID Database Server에게 반환한다. 또한, cub_gateway는 서비스 풀 내의 cub_cas_cgw 개수를 조정하여 서버 부하를 관리하고, cub_cas_cgw의 구동 상태를 모니터링 및 관리한다. 만약, CUBRID Database Server의 요청을 cub_cas_cgw 1에게 전달하였는데, 비정상적인 종료로 인해 cub_cas_cgw 1과의 연결이 실패하면, cub_gateway는 CUBRID Database Server에게 연결 실패에 관한 에러 메시지를 전송하고 cub_cas_cgw 1을 재구동한다. 새롭게 구동된 cub_cas_cgw 1은 정상적인 대기 상태가 되어, 새로운 응용 클라이언트의 요청에 의해 재연결된다.

공유 메모리¶

공유 메모리에는 cub_cas_cgw의 상태 정보가 저장되며, cub_gateway는 공유 메모리에 저장된 cub_cas_cgw의 상태 정보를 참조하여 CUBRID Database Server와의 연결을 중계한다. 공유 메모리에 저장된 cub_cas_cgw의 상태 정보를 통해 시스템 관리자는 어떤 cub_cas_cgw가 현재 작업을 수행 중인지 확인할 수 있다.

GATEWAY 구동¶

GATEWAY를 구동하기 위하여 다음과 같이 입력한다.

$ cubrid gateway start

이미 GATEWAY가 구동 중이라면 다음과 같은 메시지가 출력된다.

cubrid gateway start

GATEWAY 종료¶

GATEWAY가를 종료하기 위하여 다음과 같이 입력한다.

$ cubrid gateway stop

이미 GATEWAY가 종료되었다면 다음과 같은 메시지가 출력된다.

$ cubrid gateway stop
@ cubrid gateway stop
++ cubrid gateway is not running.

GATEWAY 재시작¶

전체 GATEWAY를 재시작하기 위하여 다음과 같이 입력한다.

$ cubrid gateway restart

GATEWAY 상태 확인¶

cubrid gateway status 는 여러 옵션을 제공하여, 각 GATEWAY의 처리 완료된 작업 수, 처리 대기중인 작업 수를 포함한 GATEWAY 상태 정보를 확인할 수 있도록 한다. GATEWAY 상태는 브로커와 동일 하므로 브로커 상태 확인을 참조 한다.

cubrid gateway status [options] [expr]

CUBRID 서비스 시작시 게이트웨이 함께 시작¶

CUBRID 서비스 시작(cubrid service start) 시 게이트웨 를 같이 시작되게 하려면, cubrid.conf 파일의 service 파라메터에 gateway 를 설정한다.

# cubrid.conf

[service]

service=server,broker,gateway,manager

...

CUBRID DBLINK 설정¶

CUBRID DBLink를 사용하기 위한 설정은 동일기종 DBLink와 이기종 DBLink의 설정이 다르다.

동일기종 DBLink 설정¶

위의 동일기종 구성도를 보면 원격지 데이터베이스의 Broker에 연결을 해야 하므로 원격지 데이터베이스의 Broker 설정이 필요 하다. 이 설정은 일반적인 Broker 설정과 동일하다.

이기종 DBLink 설정¶

이기종(Oracle/MySQL)에 접속하기 위한 정보 설정이 필요 하며, 이기종 설정 값은 GATEWAY에 작성해야 한다. GATEWAY에 설정은 cubrid_gateway.conf 의 파라메터를 통해 설정할 수 있다.

GATEWAY 파라메터¶

Parameter Name

Type

Value

APPL_SERVER

string

CGW_LINK_SERVER

string

CGW_LINK_SERVER_IP

string

CGW_LINK_SERVER_PORT

int

CGW_LINK_ODBC_DRIVER_NAME

string

CGW_LINK_CONNECT_URL_PROPERTY

string

APPL_SERVER

APPL_SERVER 는 GATEWAY의 응용 서버 이름을 설정하는 부분으로 외부 서버와 연결을 하기 위해서는 CAS_CGW 로 설정해야 한다.

CGW_LINK_SERVER

CGW_LINK_SERVER 는 CAS_CGW로 연결하여 사용할 외부 DBMS의 이름을 설정해야 한다. 현재 지원하는 데이타베이스는 Oracle, MySQL이다.

CGW_LINK_SERVER_IP

CGW_LINK_SERVER_IP 는 CAS_CGW와 연결할 외부 DBMS의 IP 주소를 설정해야 한다.

CGW_LINK_SERVER_PORT

CGW_LINK_SERVER_PORT 는 CAS_CGW와 연결할 DBMS의 Port 번호를 설정해야 한다.

CGW_LINK_ODBC_DRIVER_NAME

CGW_LINK_ODBC_DRIVER_NAME 는 CAS_CGW와 연결할 때 외부 DBMS에서 제공하는 ODBC Driver 이름을 설정해야 한다.

Note

  • Windows 경우, ODBC Driver를 설치한 경우, ODBC 데이터 원본 관리자를 통해 Driver 이름을 알 수 있다.

  • Linux의 경우, odbcinit.ini에 직접 Driver 이름을 작성해야 한다.

CGW_LINK_CONNECT_URL_PROPERTY

CGW_LINK_CONNECT_URL_PROPERTY 는 CAS_CGW와 외부 DBMS 연결할 때 Connection String에 사용되는 Property를 작성한다.

Note

Property는 DBMS별로 각각 다르므로 아래의 사이트를 참조한다.

Oracle : https://docs.oracle.com/cd/B19306_01/server.102/b15658/app_odbc.htm#UNXAR418

MySQL : https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html#codbc-dsn-option-flags

cubrid_gateway.conf 파일¶

CUBRID 설치 시 생성되는 기본 게이트웨이 설정 파일인 cubrid_gataway.conf 에서 사용되는 파라미터는 브로커와 거의 동일 하며, 게이트웨이에서 반드시 변경해야 할 일부 파라미터가 기본으로 포함된다. 기본으로 포함되지 않는 파라미터의 설정값을 변경하기 원할 경우 직접 추가/편집해서 사용하면 된다. 다음은 설치 시 기본으로 제공되는 cubrid_gateway.conf 파일 내용이다.

[gateway]
MASTER_SHM_ID           =50001
ADMIN_LOG_FILE          =log/gateway/cubrid_gateway.log

[%oracle_gateway]
SERVICE                 =OFF
SSL                     =OFF
APPL_SERVER             =CAS_CGW
BROKER_PORT             =53000
MIN_NUM_APPL_SERVER     =5
MAX_NUM_APPL_SERVER     =40
APPL_SERVER_SHM_ID      =53000
LOG_DIR                 =log/gateway/sql_log
ERROR_LOG_DIR           =log/gateway/error_log
SQL_LOG                 =ON
TIME_TO_KILL            =120
SESSION_TIMEOUT         =300
KEEP_CONNECTION         =AUTO
CCI_DEFAULT_AUTOCOMMIT  =ON
APPL_SERVER_MAX_SIZE    =256
CGW_LINK_SERVER         =ORACLE
CGW_LINK_SERVER_IP      =localhost
CGW_LINK_SERVER_PORT    =1521
CGW_LINK_ODBC_DRIVER_NAME   =Oracle_ODBC_Driver
CGW_LINK_CONNECT_URL_PROPERTY       =


[%mysql_gateway]
SERVICE                 =OFF
SSL                     =OFF
APPL_SERVER             =CAS_CGW
BROKER_PORT             =56000
MIN_NUM_APPL_SERVER     =5
MAX_NUM_APPL_SERVER     =40
APPL_SERVER_SHM_ID      =56000
LOG_DIR                 =log/gateway/sql_log
ERROR_LOG_DIR           =log/gateway/error_log
SQL_LOG                 =ON
TIME_TO_KILL            =120
SESSION_TIMEOUT         =300
KEEP_CONNECTION         =AUTO
CCI_DEFAULT_AUTOCOMMIT  =ON
APPL_SERVER_MAX_SIZE    =256
CGW_LINK_SERVER         =MYSQL
CGW_LINK_SERVER_IP      =localhost
CGW_LINK_SERVER_PORT    =3306
CGW_LINK_ODBC_DRIVER_NAME   =MySQL_ODBC_Driver
CGW_LINK_CONNECT_URL_PROPERTY       ="charset=utf8;PREFETCH=100;NO_CACHE=1"
  • Oracle 에 연결을 위한 GATEWAY 설정

APPL_SERVER                     =CAS_CGW
CGW_LINK_SERVER                 =ORACLE
CGW_LINK_SERVER_IP              =localhost
CGW_LINK_SERVER_PORT            =1521
CGW_LINK_ODBC_DRIVER_NAME   =Oracle 12c ODBC driver
CGW_LINK_CONNECT_URL_PROPERTY =
  • MySQL 에 연결을 위한 GATEWAY 설정

APPL_SERVER                  =CAS_CGW
CGW_LINK_SERVER                  =MYSQL
CGW_LINK_SERVER_IP           =localhost
CGW_LINK_SERVER_PORT         =3306
CGW_LINK_ODBC_DRIVER_NAME    =MySQL ODBC 8.0 Unicode Driver
CGW_LINK_CONNECT_URL_PROPERTY ="charset=utf8;PREFETCH=100;NO_CACHE=1"

ODBC Driver 설치¶

아래의 사이트에서 Oracle/MySQL ODBC Dirver를 다운받아 설치해야 한다. Oracle ODBC Driver 다운로드 사이트:

  • https://www.oracle.com/database/technologies/instant-client/downloads.html

MySQL ODBC Driver 다운로드 사이트:

  • https://dev.mysql.com/downloads/connector/odbc/

ODBC Driver Name 확인 및 설정¶

Linux의 경우, Oracle과 MySQL ODBC Driver Name을 설정하기 위해서는 unixODBC를 설치 한후 /etc/odbcinit.ini 파일에 Driver name을 작성해야 한다.

  • unixODBC 설치

unixODBC 드라이버 관리자는 Linux 및 UNIX 운영 체제에서 ODBC 드라이버 와 함께 사용할 수 있는 오픈 소스 ODBC 드라이버 관리자이다. unixODBC 드라이버 관리자 설치 방법은 아래의 url를 참고 바란다. unixODBC 홈페이지 : http://www.unixodbc.org/

  • ondbcinst.ini 설정

    [MySQL ODBC 8.0 Unicode Driver]
    Driver=/usr/lib64/libmyodbc8w.so
    
    [Oracle 12c ODBC driver]
    Description = Oracle ODBC driver for Oracle 12c
    Driver = /usr/lib64/instantclient_12_2/libsqora.so.12.1
    

Note

참고로, ondbcinst.ini 설정에서 Driver name은 각각 MySQL ODBC 8.0 Unicode Driver와 Oracle 12c ODBC driver 이다.

Cubrid DBLink 사용 방법¶

동일기종의 Brokers와 이기종의 GATEWAY 설정을 했다면, 데이터베이스의 정보를 조회하기 위한 Query문 작성 방법에 대해서 알아본다.

데이터 조회를 위한 DBLINK Query문 작성 방법 두가지가 있다.

첫째, FROM절에 DBLINK 구문을 작성하여 타 데이터베이스의 정보를 조회하는 방법 아래의 Query문은 IP 192.168.0.1의 타 데이터베이스의 remote_t 테이블 정보를 조회하는 Query문이다.

SELECT * FROM DBLINK ('192.168.0.1:53000:demodb:user:password:','SELECT col1, col2 FROM remote_t') AS t(col1 int, col2 varchar(32));

두번째, 위의 DBLINK Query를 보면 타 데이터베이스에 접속하기 위한 정보는 가장 기본적인 정보다. 그래서 Query를 작성할 때 마다 매번 작성해야 하는 번거로움과 사용자 정보(id, password) 가 외부로 노출될 우려가 있다. 이런 번거로움과 정보 보호를 위해 CREATE SERVER문을 이용하면, Query문 보다 간단하고, 사용자 정보 보호에 도움이 된다.

CREATE SERVER remote_srv1 ( HOST='192.168.0.1', PORT=53000, DBNAME=demodb, USER=user, PASSWORD='password');
SELECT * FROM DBLINK (remote_srv1, 'SELECT col1 FROM remote_t') AS t(col1 int);

Note

자세한 DBLink SQL 문법은 SELECT 와 서버 정의문 을 참고한다.

제약사항¶

  • CUBRID Hetergeneous DBLink는 utf-8만 지원 한다.

  • 1개 컬럼의 문자열 최대 길이는 16M까지만 지원한다.

  • Mysql의 경우, 대용량 테이블인 경우 cache를 사용하는 경우 Gateway CAS의 메모리 사용량이 증가하므로 PREFETCH, NO_CACHE=1 사용을 권장한다.

  • ODBC 미지원 타입은 SQL_INTERVAL,SQL_GUID,SQL_BIT,SQL_BINARY,SQL_VARBINARY,SQL_LONGVARBINARY 이다.

Previous Next

© Copyright 2016, CUBRID Corparation. Last updated on Nov 16, 2022.

Built with Sphinx using a theme provided by Read the Docs.