Background Image
조회 수 3918 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
CUBRID SELECT Query Load Balance


▶  CUBRID SELECT Query Load Balance 튜토리얼 환경 :
- VMware Work Station 11
- VM Version 10
- OS : Linux Centos 6.7 64bit
- CUBRID Version : 9.3.6.0002
- CUBRID JDBC Driver Version : 9.3.6.0002 

▶  CUBRID SELECT Query Load Balance 목적 : 
     - 조회 질의(SELECT) 분산을 통해 Broker Server와 Data Bases Server 리소스 부하를 줄일 수 있다.


jdbcload1.png
(그림 1-1. CUBRID Load Balance 미사용 다중화 구성)



jdbcload2.png
(그림 1-2. CUBRID Load Balance 사용 다중화 구성)


▶ 튜토리얼 구성 시나리오
- Broker Server_1
- Host Name : BRO_SV_1
- IP : 192.168.0.111
- Broker Port : 33000

- Broker Server_2
- Host Name : BRO_SV_1
- IP : 192.168.0.111
- Broker Port : 33000

- DataBase Server_1
- Host Name : DB_SV_1
- IP : 192.168.0.221

- DataBase Server_2
- Host Name : DB_SV_1
- IP : 192.168.0.222

- Data Bases Info
- DB Name : demodb
- DB User : demouser
- Query Type : SELECT



JDBC Setting

▶ JDBC Driver Configuration
- JDBC 사용 옵션
     - loadBalance

- Load Balance 사용을 위한 URL

"jdbc:cubrid:192.168.0.111:33000:demodb:demouser::?althosts=192.168.0.112:33000&loadBalance=true"

- 해당 URL은 앞의 192.168.0.111과 192.168.0.112을 랜덤한 순서로 연결한다.


BROKER Setting 


▶ Broker Server 1 Configuration

- Fail-Over 발생 후 Fail-Back이 되게 되면 기존의 연결 된 CAS들은 JDBC LoadBalance 와 무관하게 Active로만 연결 되게 된다. 
- 이 부분을 cubrid_broker.conf 값의 RECONNECT_TIME=10s를 통해 자신의 databases.txt의 우선 순위가 되는 DataBases로 다시 연결 하는 Broker 옵션을 사용한다.

$ cat $CUBRID/databases/databases.txt
#db-name        vol-path                db-host         log-path                lob-base-path
demodb          /home/cubrid/DB/demodb  DB_SV_1:DB_SV_2    /home/cubrid/DB/demodb  file:/home/cubrid/DB/demodb/lob

$ cat $CUBRID/conf/cubrid_broker.conf

[%BROKER1]
RECONNECT_TIME=10s

$ cat /etc/hosts
192.168.0.111     BRO_SV_1
192.168.0.112     BRO_SV_2

192.168.0.221     DB_SV_1
192.168.0.222     DB_SV_2

# cat /etc/sysconfig/iptables

-A INPUT -p tcp --dport 33000 -j ACCEPT


▶ Broker Server 2 Configuration

- Fail-Over 발생 후 Fail-Back이 되게 되면 기존의 연결 된 CAS들은 JDBC LoadBalance 와 무관하게 Active로만 연결 되게 된다. 
- 이 부분을 cubrid_broker.conf 값의 RECONNECT_TIME=1s를 통해 자신의 databases.txt의 우선 순위가 되는 DataBases로 다시 연결 하는 Broker 옵션을 사용한다.

$ cat $CUBRID/databases/databases.txt
#db-name        vol-path                db-host         log-path                lob-base-path
demodb          /home/cubrid/DB/demodb  DB_SV_2:DB_SV_1    /home/cubrid/DB/demodb  file:/home/cubrid/DB/demodb/lob

$ cat $CUBRID/conf/cubrid_broker.conf

[%BROKER1]
RECONNECT_TIME=10s

$ cat /etc/hosts
192.168.0.111     BRO_SV_1
192.168.0.112     BRO_SV_2

192.168.0.221     DB_SV_1
192.168.0.222     DB_SV_2

# cat /etc/sysconfig/iptables

-A INPUT -p tcp --dport 33000 -j ACCEPT



DB Setting

▶ Data Base Server 1 Configuration

DB_SV_1 Master 모드

$ cat /etc/hosts
192.168.0.111     BRO_SV_1
192.168.0.112     BRO_SV_2

192.168.0.221     DB_SV_1
192.168.0.222     DB_SV_2

# cat /etc/sysconfig/iptables

-A INPUT -p tcp --dport 1523 -j ACCEPT
-A INPUT -p udp --dport 59901 -j ACCEPT


▶ Data Base Server 2 Configuration

DB_SV_2 Slave 모드

$ cat /etc/hosts
192.168.0.111     BRO_SV_1
192.168.0.112     BRO_SV_2

192.168.0.221     DB_SV_1
192.168.0.222     DB_SV_2

# cat /etc/sysconfig/iptables

-A INPUT -p tcp --dport 1523 -j ACCEPT
-A INPUT -p udp --dport 59901 -j ACCEPT




마치며

▶ CUBRID 다중화 구성

- CUBRID는 Broker와 Database Server 같은 시스템(OS)에 둘 수도 있으며, 별도의 시스템(OS)으로 분리도 가능하다.
- 이러한 점에서 CUBRID로 연결되는 Driver와  CUBRID의 Broker, Database의 연결 관계를 이해하면 다양한 다중화 구성이 가능하다.

▶ CUBRID 참고 문헌
     - CUBRID 시스템 구조
  (http://www.cubrid.org/manual/ko/9.3.0/intro.html#id1)

     -JDBC 연결 설정
          (http://www.cubrid.org/manual/ko/9.3.0/api/jdbc.html#jdbc-connection-conf)

     - Broker 접속 관련 파라미터
  (http://www.cubrid.org/manual/ko/9.3.0/admin/config.html#cubrid-broker-conf)



감사합니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
77 기타 [10.2 path] - 생성된 view구문을 'show create view' 수행 시 정상적으로 출력되지 않던 이슈 patch 큐브리드_김주현 2020.11.09 856
76 기타 ERwin을 이용한 CUBRID 포워드 엔지니어링 file 민순 2020.07.14 2269
75 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3413
74 기타 큐브리드10.1 에서 윤초 지원 옵션 사용하기 최광일 2017.09.13 1391
73 기타 따라하면 쉬운 compactdb 사용법 file 허서진 2017.07.01 2499
72 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8131
71 기타 CSQL 인터프리터 사용방법 정만영 2016.03.03 16516
70 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12688
69 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9495
68 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12018
67 기타 CUBRID Migration방법(by unloaddb & loaddb) 주현 2015.07.01 21834
66 기타 콘솔에서 마이그레이션 하기. file 권호일 2015.06.19 13428
65 기타 CUBRID isolation level & Dirty Read 정만영 2015.05.29 11311
64 기타 HA 환경 구성 시 데이터 복제 지연이 발생하는 경우 ECHO(7) port를 확인하자. 손승일 2012.11.29 26440
63 기타 select .. for update 처리를 위한 Stored Procudure 등록 및 사용법 남재우 2011.12.10 24870
62 기타 자주 발생하는 큐브리드(cubrid) 에러 메시지 정리 admin 2011.07.14 81365
61 기타 [주의사항] CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점 admin 2011.07.14 52555
60 기타 CUBRID 매니저 R3.1에서 웹호스팅 서버의 CUBRID R2.1 접속하는 방법 (큐브리드 매니저에서 다른 버전의 큐브리드 서버 접속 방법) file admin 2011.07.14 31507
59 기타 동시 접속자에 따른 파라미터 설정 admin 2011.07.14 25680
58 기타 CUBRID 2008 R4.0 GA 버전의 주요 기능만 요약한 PPT 문서 file admin 2011.07.14 15460
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales