1. Confidential
Last printed on 8/28/2013 9:06:00 AM
초간단 CUBRID HA 구성
Project Name: Open Source Consulting,Inc. Internal
Department: Database Team
Focus Area:
Product/Process: CUBRID 9.1
Prepared By:
Document Owner(s) Project/Organization Role
Dong-Hyun Lee Database Engineer
Project Status Report Version Control
Version Date Author Change Description
1.0 2013/08/24 Ji-Woong Choi Document created
[Version #] [mm/dd/yy] [Change owner]
[Change 1]
[Change 2]
[Change n]
2. Configuration Report
Confidential Page 2 8/28/2013
TABLE OF CONTENTS
1. 본 문서의 목적.................................................................................................................................. 3
1.1 Cubrid 설치.................................................................................................................... 3
1.1.1 Cubrid 계정 생성하기 ................................................................................................. 3
1.1.2 다운로드 받기 ............................................................................................................. 3
1.1.3 설치하기.................................................................................................................... 3
1.2 CUBRID HA 구성........................................................................................................... 4
1.2.1 HA configure 설정.................................................................................................... 4
1.2.2 마스터 서버 기동 ......................................................................................................... 7
1.2.3 슬레이브 기동 ............................................................................................................. 9
2 APPENDICES ........................................................................................................................ 11
2.1 Document Guidelines................................................................................................. 11
2.2 Project Migration Report Sections Omitted................................................................ 11
3. Configuration Report
Confidential Page 3 8/28/2013
1. 본 문서의 목적
본 문서의 목적은 초간단 CUBRID 데이터베이스의 HA 구성 방법을 설명한 문서입니다. 잘못된 부분이나
수정해야 할 사항이 있으면 support@osci.kr 로 메일을 주시면 소정의 기념품을 보내드립니다.
1.1 Cubrid 설치
1.1.1 Cubrid 계정 생성하기
리눅스 버전의 cubrid 의 경우 cubrid 를 설치 실행할 cubrid 계정이 필요합니다.
root 계정으로 설정시 설치/실행되나 원격에서 접근이 되지 않습니다.
(아직까지 정확한 이유는 모르겠습니다;;)
1.1.2 다운로드 받기
Cubrid.com 로 이동
red 화살표와 같이 다운로드 메뉴를 이용하면 다운로드 페이지로 이동하여 다운로드 받을 수
있습니다.
blue 화살표의 바로가기 메뉴를 이용하면 바로 다운로드 받을 수 있습니다.
1.1.3 설치하기
다운로드 받은 파일 CUBRID-9.1.0.0212-linux.x86_64.sh 을 cubrid 계정으로 이동합니다.
아래 명령어를 수행합니다.
prompt> sh CUBRID-9.1.0.0212-linux.x86_64.sh
4. Configuration Report
Confidential Page 4 8/28/2013
명령어를 수행하여 화면에서 요구하는 사항들을 입력해줍니다.
GPL 라이선스 설명하는 화면에서 “q”
설치 위치 지정
설치완료
설치에 성공하면 위 스크린샷처럼 성공메세지가 나오고 완료됩니다
아래 명령어를 수행하여 cubrid 환경설정을 적용합니다
prompt> . /home/cubrid/.cubrid.sh
1.2 CUBRID HA 구성
위 설치 과정을 서버 두 대에 동일하게 설치합니다.
1.2.1 HA configure 설정
마스터, 슬레이브 두대 다 동일한 설정을 합니다.
서버의 hosts 파일에 ha 구성에 사용될 서버들의 host 정보를 등록해줍니다.
테스트를 위해 임시적으로 설정하는 방법입니다.
prompt> hostname home-master
영구적 설정이 아니기 때문에 테스트시에만 사용하시기 바랍니다.
6. Configuration Report
Confidential Page 6 8/28/2013
conf directory 아래에 있는 cubrid.conf 파일을 수정합니다.
# Service parameters
[service]
service=server,broker,manager
# Common section
[common]
service=server,broker,manager
# Server parameters
server=testdb
data_buffer_size=512M
log_buffer_size=4M
sort_buffer_size=2M
max_clients=100
cubrid_port_id=1523
db_volume_size=512M
log_volume_size=512M
# HA 구성 시 추가 (Logging parameters)
log_max_archives=100
force_remove_log_archives=no
# HA 구성 시 추가 (HA 모드)
ha_mode=on
conf directory 아래에 있는 cubrid_ha.conf 파일을 수정합니다.
[common]
ha_port_id=59901
ha_node_list=cubrid@home-master:home-slave
ha_db_list=testdb
ha_copy_sync_mode=sync:sync
ha_apply_max_mem_size=500
ha_node_list 에 HA 를 구성할 서버들의 hostname 을 등록해줍니다. 위 설정에서는 두 대만 등록되어
있지만 노드들이 더 있다면 계속해서 등록해 줍니다.
HA 구성에서 사용될 데이터 베이스를 생성해 줍니다. 데이터베이스는 어느 곳에 만드셔도 상관없습니다만,
데이터베이스가 위치할 directory 에 가셔서 createdb 명령을 수행해야 합니다.
7. Configuration Report
Confidential Page 7 8/28/2013
prompt> mkdir cubrid/databases/testdb
prompt> cd cubrid/databases/testdb
prompt> cubrid created testdb
데이터베이스가 생성되었다면 해당 데이터베이스를 ha 구성에서 사용하도록 databases directory 아래
databases.txt 를 수정하여 database 정보를 업데이트 해줍니다.
prompt> cd cubrid/databases
prompt> cat databases.txt
#db-name vol-path db-host log-path lob-
base-path
testdb …/testdb localhost …/testdb/log
file:/home/…
testdb …/testdb home-master:home-slave
…/testdb/log file:/home/…
1.2.2 마스터 서버 기동
prompt> cubrid heartbeat start
Step 1
8. Configuration Report
Confidential Page 8 8/28/2013
copylogdb, applylogdb, ha processes 가 정상 기동되는지 확인합니다.
ha 구성된 서버들의 상태를 확인합니다.
데이터베이스 상태를 확인합니다.
Step 2
Step 3
Step 4
기동이 완료되면 마스터서버의 상태를 아래 명령어를 이용해 확인해 봅니다.
prompt> cubrid changemode testdb@localhost
9. Configuration Report
Confidential Page 9 8/28/2013
위 스크린샷처럼 서버의 상태가 active 상태로 확인이 되야 합니다. 네트워크 상황이나 데이터베이스가
정상적으로 생성되지 않았다면 서버가 active 상태가 되지 않습니다, step1~4 중간에 멈춰버립니다.
1.2.3 슬레이브 기동
마스터가 정상적으로 기동된 뒤 슬레이브를 기동합니다.
Step 1
슬레이브가 정상 기동되면 마스터까지 승격되지 않고 슬레이브 상태에서 멈춥니다.
슬레이브서버의 상태를 아래 명령어를 이용해 확인해봅니다
prompt> cubrid changemode testdb@localhost
스크린샷처럼 슬레이브 서버는 stanby 상태가 됩니다.
마스터와 슬레이브 서버가 모두 기동되었고 정상적으로 구성되었다면 복제 테스트를 합니다.
데이터 조작은 마스터 서버에서 실행합니다. 슬레이브 서버에서 실행하면 아래와 같이 에러를 출력합니다.
마스터 서버에서 아래 명령어를 수행해 봅니다.
csql -u dba testdb@localhost -c "CREATE TABLE auto_tb2 (id INT AUTO_INCREMENT, name
VARCHAR);"
10. Configuration Report
Confidential Page 10 8/28/2013
슬레이브 서버에서 복제되었는지 확인해 봅니다.
복제가 된 것을 확인하실 수 있습니다.
이 구성상태에서 마스터를 cubrid 를 종료 시키면 슬레이브가 마스터로 승격됩니다.
그리고 마스터를 복구하면 마스터 서버는 슬레이브로 추가됩니다.
해당 구성 테스트에 사용된 리눅스 서버 두대의 방화벽은 stop 되어 있는 상태에서 테스트하였습니다.
복제시 규약사항들이 있습니다. 아직 다 파악하지는 못하였지만 해당 규약들을 잘 숙지해야 될 것 같습니다.
이상으로 간단하게 CUBRID HA 구성을 구현해보았습니다.