Background Image
조회 수 3955 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
126 Java CUBRID에서 log4sql을 사용하자 정병주 2009.06.12 44305
125 기타 Oracle의 SYS_CONNECT_BY_PATH 함수 흉내내기 CUBRID_DEV 2009.06.15 26530
124 PHP cubrid_fetch_all 함수 추가하기 2 남재우 2009.06.16 20828
123 PHP CUBRID_기술문서_CUBRID PHP 함수 unisql_ 계열 cubrid_로 변환하기 file 남재우 2009.06.23 22355
122 CCI/DB API CCI-API 사용 예제 file 남재우 2009.07.01 25103
121 CCI/DB API CCI-API 에서 OID 사용 예제 file 남재우 2009.07.01 24861
120 ODBC/OLEDB ODBC드라이버를 이용한 2개 이상의 Statement 사용방법. file seongjoon 2009.07.02 23645
119 Java log4jdbc를 사용한 JDBC 로그 분석 시난 2009.07.02 36395
118 PHP MySQL,PHP 기반에서 CUBRID,PHP 기반으로 포팅하기 시난 2009.07.02 32190
117 기타 에러 메시지(error) 설명 및 조치 가이드 file CUBRID_DEV 2009.07.11 24462
116 Install CUBRID 설치 및 매니저 구동하기(CUBRID 2008 R1.x) CUBRID_DEV 2009.07.18 31533
115 Java JavaSP SampleCode(Pivot기능) cubebridge 2009.07.28 27555
114 Windows eclipse에서 python 및 CUBRID broker_log_top 사용하기 cubebridge 2009.07.28 27273
113 기타 CUBRID2008 실행계획 분석하기 file cubebridge 2009.07.28 15339
112 기타 CUBRID2008데이터타입, 함수와 힌트사용법 및 예약어 cubebridge 2009.07.28 18845
111 기타 CUBRID주요 사용 함수 및 연산자 비교 cubebridge 2009.07.28 23460
110 기타 CUBRID2008 쿼리 작성예제 cubebridge 2009.07.28 24906
109 Install CUBRID 2008 + Textyle 설치 가이드 3 1 Prototype 2009.07.29 18288
108 Java CUBRID GLO 사용하기 - JDBC 손승일 2009.08.15 23493
107 기타 CUBRID 스캔 이해하기 손승일 2009.08.15 15116
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

Contact Cubrid

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