[오픈소스컨설팅]초간단 Cubrid HA구성

11
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]

description

운영용도가 아닌 테스트 용도의 초간단 큐브리드 데이터베이스 HA 구성 방법에 대한 가이드 문서입니다.

Transcript of [오픈소스컨설팅]초간단 Cubrid HA구성

Page 1: [오픈소스컨설팅]초간단 Cubrid HA구성

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]

Page 2: [오픈소스컨설팅]초간단 Cubrid HA구성

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

Page 3: [오픈소스컨설팅]초간단 Cubrid HA구성

Configuration Report

Confidential Page 3 8/28/2013

1. 본 문서의 목적

본 문서의 목적은 초간단 CUBRID 데이터베이스의 HA 구성 방법을 설명한 문서입니다. 잘못된 부분이나

수정해야 할 사항이 있으면 [email protected]로 메일을 주시면 소정의 기념품을 보내드립니다.

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

Page 4: [오픈소스컨설팅]초간단 Cubrid HA구성

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

영구적 설정이 아니기 때문에 테스트시에만 사용하시기 바랍니다.

Page 5: [오픈소스컨설팅]초간단 Cubrid HA구성

Configuration Report

Confidential Page 5 8/28/2013

prompt> cd cubrid user home directory / cubrid / conf directory 로 이동합니다.

Page 6: [오픈소스컨설팅]초간단 Cubrid HA구성

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 명령을 수행해야 합니다.

Page 7: [오픈소스컨설팅]초간단 Cubrid HA구성

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

Page 8: [오픈소스컨설팅]초간단 Cubrid HA구성

Configuration Report

Confidential Page 8 8/28/2013

copylogdb, applylogdb, ha processes 가 정상 기동되는지 확인합니다.

ha 구성된 서버들의 상태를 확인합니다.

데이터베이스 상태를 확인합니다.

Step 2

Step 3

Step 4

기동이 완료되면 마스터서버의 상태를 아래 명령어를 이용해 확인해 봅니다.

prompt> cubrid changemode testdb@localhost

Page 9: [오픈소스컨설팅]초간단 Cubrid HA구성

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);"

Page 10: [오픈소스컨설팅]초간단 Cubrid HA구성

Configuration Report

Confidential Page 10 8/28/2013

슬레이브 서버에서 복제되었는지 확인해 봅니다.

복제가 된 것을 확인하실 수 있습니다.

이 구성상태에서 마스터를 cubrid 를 종료 시키면 슬레이브가 마스터로 승격됩니다.

그리고 마스터를 복구하면 마스터 서버는 슬레이브로 추가됩니다.

해당 구성 테스트에 사용된 리눅스 서버 두대의 방화벽은 stop 되어 있는 상태에서 테스트하였습니다.

복제시 규약사항들이 있습니다. 아직 다 파악하지는 못하였지만 해당 규약들을 잘 숙지해야 될 것 같습니다.

이상으로 간단하게 CUBRID HA구성을 구현해보았습니다.

Page 11: [오픈소스컨설팅]초간단 Cubrid HA구성

Configuration Report

Confidential Page 11 8/28/2013

2 APPENDICES

2.1 Document Guidelines

CUBRID HA 제약사항 http://www.cubrid.com/manual/91/ha.html#id26

2.2 Project Migration Report Sections Omitted

N/A