[ALTIBASE]Solution Guide.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
공개SW 솔루션 설치 & 활용 가이드 시스템 SW > 데이터관리 제대로 배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치 5. 기능소개 6. 활용예제 7. FAQ 1. 개요 • ALTIBASE 는 2000년 아시아 최초 제품 출시 후 국내 In-memory DBMS 분야의 선두 주자 소개 • 2005년 세계 최초 Hybrid Database Architecture 를 개발 및 상용화 성공 • 다양한 저장 공간 제공(In-Memory Tablespace, Volatile Memory Tablespace, Disk Tablespace) • SQL Standards 지원 (SQL92, SQL99(partial)) • 네트워크를 통한 복제 기능 • 공간 데이터 처리를 위한 데이터 타입 및 함수 제공 주요기능 • 이기종 DBMS 연동 (DBLINK, JDBCAdaptor) • 다양한 개발 환경 지원 (Embedded SQL, CLI, ODBC, JDBC, .Net Provider,… ) • 보안 (접근제어, 권한 제어, 감사, 데이터 암/복호화, 암호화 통신) • 다양한 백업 기능 제공(aexport, online backup, incremental backup) 대분류 • 시스템 SW 소분류 • 데이터 관리 사전설치 솔루션 • 없음 • Server : GNU-AGPLv3 라이선스형태 • Client : GNU-LGPLv3 버전 • 7.1.0 • Hybrid RDBMS 로 고성능의 메모리 테이블과 대용량의 디스크 테이블을 하나의 엔진으로 운영 특징 • Hybrid partitioned table 지원 • 네트워크를 통한 이중화로 유연한 HA 구축 가능 개발회사/커뮤니티 • ㈜알티베이스 공식 홈페이지 • https://altibase.com - 3 - 2. 기능요약 • ALTIBASE 전체 구성도 Client & Server Applications/Tools IPC / UNIX DOMAIN Application Program • 하나의 ALTIBASE 엔진에 MMDBMS와 DRDBMS E/SQL | CLI | ODBC | JDBC 를 제공하기 때문에 별도의 QP (Query Processor), IPC | UNIX DOMAIN | TCP/IP SM (Storage Manager)가 필요한 것이 아니라 ALTIBASE Engine 하나의 QP, SM을 통해서 효율적인 데이터 관리 Query Processor 를 할 수 있습니다. Parsing/ Optimizer Executor validation Storage Manager • 하나의 QP와 SM을 통해서 데이터 처리를 할 수 Transaction Recovery Buffer 있기 때문에 쿼리, 트랜잭션, 개발, 복구, 관리 등 Manager Manager Manager 의 투명성을 제공할 수 있습니다. Process or Shared Memory Memory Tablespace Buffer • 메모리 기반의 테이블은 디스크 기반의 Buffer와 Datafiles Disk Tablespace 는 달리 Disk I/O가 발생하지 않고 인덱스 관리 방식이 다르기 때문에 고속 처리에 적합합니다. Log Anchor LogFiles - 4 - 2. 기능요약 • ALTIBASE 주요 기능 (1/2) • SQL92을 지원하며, Sub-query 및 Join에 제한이 없음 • 다양한 built-in 함수를 제공 SQL • 효율적으로 사용하기 위한 In-line View, Hint, SQL 튜닝 정보 등을 지원 • Optimizer 성능향상을 위한 실시간 테이블 통계 정보 자동 수집 기능 프로그래밍 • Embedded SQL, Stored Procedure, ODBC, JDBC, SQLCLI 지원 인터페이스 • 트랜잭션의 전체/부분 철회 지원( total and partial rollback ) 트랜잭션 기능 • Multi-Version Concurrency Control을 통한 Record Level Lock 지원 • 무정지 서비스, 부하 분산을 위한 이중화 기능 제공 • Active – Active, Active – Standby의 구성 가능 DB 이중화 • 이중화 중 장애발생 시 DB의 일치성 보장 • N-Way 이중화, IP 이중화, 이 기종간의 이중화 지원 실시간 및 대용량 • 실시간 데이터 처리를 위한 메모리 Table과 대용량 데이터 처리를 위한 지원 디스크 Table을 하나의 DBMS 엔진에서 동시에 처리 - 5 - 2. 기능요약 • ALTIBASE 주요 기능(2/2) Large Record & • 대용량의 데이터 저장을 위해 data type으로 BLOB, CLOB 지원 Internal LOB • 최대 2GB까지 저장 지원 • Transaction 기반의 Active Log를 분석하여 API 형태로 Xlog와 Meta를 로그 분석기 제공하여 이기종 DBMS 간의 데이터 연동 가능 • 트랜잭션 / 시스템 장애에 대하여 완벽한 복구 지원 • 온라인 백업을 지원하며 이를 이용한 DB 복구 지원 DB 복구 • 정기 및 비정기적으로 체크포인트 기능을 제공하고 체크포인트 수행 중에도 트랜잭션 처리 가능 • 실시간으로 Logging • 공간 데이터를 처리하기 위한 기본적인 데이터 타입을 제공 • 공간 데이터들을 저장, 분석에 필요한 함수들을 제공 공간 데이터 • ISO SQL/MM 공간 표준 규격과 GIS 국제표준단체인 Open Geospatial Consortium(OGC)의 “Simple Features Specification for SQL” 규격을 준수 - 6 - 3. 실행환경 • Linux 계열 ✓ GLIBC 2.12 ~ 2.17 호환성 보장 • 요구사항 ✓ 메모리 : 64-bit OS: 최소 1GB 이상 (권장: 2GB 이상, 최대 제한 없음) ✓ 디스크 : 데이터 저장을 위한 테이블스페이스와 트랜잭션 로그 등을 고려하여야 하고 트랜잭션 로그 및 설치를 위해서는 1GB이상이 필요하며, 원활한 운영을 위해서는 12GB 이상의 여유 공간을 확보하는 것을 권장한다. 또한 성능을 위해서는 트랜잭션 로그 저 장 영역과 데이터 저장 영역을 물리적으로 분리하는 것을 권장한다. ✓ 네트워크 : 이중화 기능 사용시 전용선 사용을 권장한다. - 7 - 4. 설치 세부 목차 4.1 패키지 다운 받기 4.2 설치 전 준비 사항 4.3 알티베이스 설치 - 8 - 4. 설치 4.1 패키지 다운 받기 • 설치 파일 URL : https://altibase.com/resources/free-download/ - 9 - 4. 설치 4.2 설치 전 준비 사항(1/7) 1. 사용자 계정의 리소스 한계 값 확인 OS 명령어인 “ulimit”으로 사용자 계정에 설정된 리소스 한계 값을 확인 또는 변경할 수 있다. • File Size 프로세스가 생성 가능한 파일의 최대 크기 • Data segment size 프로세스가 사용 가능한 논리적 메모리의 최대 크기(VSZ측면) • Max memory size 프로세스가 사용 가능한 물리적 메모리의 최대 크기(RSS측면) • Open files (descriptor) 프로세스가 동시에 접근 가능한 파일 및 소켓의 최대 개수 • Stack size • 최대 스택 사이즈 • Virtual memory 프로세스가 사용 가능한 가상 메모리의 최대 크기 사용자 계정의 리소스 한계 값들을 "unlimited"로 설정할 것을 권장한다. 이 때 core file size는 unlimited로 설정하지 않도록 한다. 만일 Altibase 서버가 비정상 종료하여 코어를 덤프 할 경우 메모리 데이터베이스를 모두 core 파일로 저장하기 때문에 unlimited로 설정하면 디스크 부족이 발생할 수 있다. Altibase 클라이언 트 제품은 Stack size가 최소 70KB 이상이어야 한다. - 10 - 4. 설치 4.2 설치 전 준비 사항(2/7) 2. 커널 설정 1) 공유 메모리 및 세마포어 설정 /proc/sys/kernel 경로에 sem, shmmax, shmmni, swapiness 등의 파일에 설정한다. 권장 값 리눅스 커널 버전이 2.5 이상이 아닐 경우 IPC접속을 사용하는 세션이 갑자기 단절되는 현상이 발생할 수 있다. 서버 부팅 시 자동으로 커널 파라미터가 설정되게 하려면, /etc/rc.d/rc.local 파일 내에 아래의 항목 을 추가한다. /etc/rc.d/rc.local 파일 내에 아래의 항목을 추가 echo 2147483648 > /proc/sys/kernel/shmmax echo 4096 > /proc/sys/kernel/shmmni echo 200 32000 512 5029 > /proc/sys/kernel/sem echo 5 > /proc/sys/vm/swappiness 2) RemoveIPC 설정 RedHat 7.2 이상의 버전에서는 RemoveIPC 설정 값을 ‘no’로 설정하는 것을 권장한다(기본 값은 ‘yes’). RemoveIPC가 ‘yes’로 설정되면 세마포어가 부족하여 비정상종료가 발생할 수 있기 때문이다. 설정 값을 변경하려면 /etc/systemd/logind.conf에서 RemoveIPC=no로 설정한 후 OS를 다시 시작해야 한다. - 11 - 4. 설치 4.2 설치 전 준비 사항(3/7) 3) THP 설정 확인 및 비활성화 방법 THP(Transparent Huge Pages)는 메모리 페이지의 크기를 증가시킴으로써, TLB(Translation Lookaside Buffer) 를 조회하는 비용을 줄이기 위한 목적으로 리눅스에서 제공하는 메모리 관리 시스템이다. 원래 의도와 달리 메모리 할당 지연 및 단편화를 유발하여 오히려 시스템 성능이 저하되는 경우가 많다. THP 설정 확인 THP에서 설정할 수 있는 옵션은 always, madvise, never 3가지이다. [ ] 로 둘러싸인 것이 현재 적용된 옵션 이다. 각각의 의미는 아래와 같다. • madvise: madvise() 함수를 통해 THP 사용을 명시적으로 요청한 프로세스에만 THP가 활성화되는 옵션 이다. • always: 모든 프로세스에 항상 THP가 적용되게 된다. • never: madvise() 함수 요청과 관계없이 모든 프로세스에서 THP가 비활성화되는 것을 의미한다. - 12 - 4. 설치 4.2 설치 전 준비 사항(4/7) THP 설정 확인 방법은 아래와 같다. ① 아래 명령을 실행한다 $ cat /sys/kernel/mm/transparent_hugepage/enabled ② 레드햇 리눅스에서는 아래 명령을 실행한다 $ cat /sys/kernel/mm/redhat_transparent_hugepage/enabled ③ 아래와 같은 결과가 화면에 출력된다. $ [always] madvise never THP 비활성화 방법 Altibase의 운영을 위해서 THP 옵션을 never로 설정할 것을 권고한다. ① root 계정으로 /etc/grub.conf의 kernel boot 끝에 transparent_hugepage=never를 아래처럼 추가한다. ..... kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=067b9803-90ca-4875-a018-ff043adde1ed rd_NO_LUKS LANG=ko_KR.UTF-8 rd_NO_MD quiet rhgb crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us rd_NO_LVM rd_NO_DM transparent_hugepage=never ...... ② 시스템을 재시작 한다. ③ THP 옵션이 never 인지 확인한다. - 13 - 4. 설치 4.2 설치 전 준비 사항(5/7) 4) CPU frequency Governor Altibase에서 권고하는 CPU frequency Governor 설정은 performance이다. 설정 값 확인 $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort -u performance # CPUfreq 드라이버가 설치되어 있지 않은 경우 아래와 같은 출력 결과를 보일 수 있다. # 이 경우 CPU frequency Governor 설정은 고려하지 않아도 된다. $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor: 그런 파일이나 디렉터리가 없습니다 설정 값 변경 방법 $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor $ echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor ...... or $ cpupower frequency-set -g performance 영구 적용 /etc/rc.d/rc.local 파일에 CPU 코어 수만큼 아래 명령어를 추가한다. echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor ...... - 14 - 4. 설치 4.2 설치 전 준비 사항(6/7) 5) swappiness swapping 발생 시 디스크 I/O로 인한 시스템 성능 저하가 Altibase 서버 성능에 영향을 미치는 것을 최소화 하기 위해 1로 변경하는 것을 권장한다. 설정 값 확인 $ cat /proc/sys/vm/swappiness or $ sysctl -a | grep swappiness 설정 값 변경 방법 $ echo 1 > /proc/sys/vm/swappiness or $ sysctl -w vm.swappiness=1 영구 적용 $ vi /etc/sysctl.conf vm.swappiness = 1 # sysctl.conf 파일에 vm.swappiness = 1 를 추가하거나 값을 변경한다. or $ vi /etc/rc.d/rc.local echo 1 > /proc/sys/vm/swappiness # rc.local 파일에 이 명령어를 추가한다. - 15 - 4. 설치 4.2 설치 전 준비 사항(7/7) 5) OS Patch glibc에서 malloc/free 등이 race condition으로 인해 deadlock이 발생할 수 있는 버그가 있어, 해당 버그가 반영된 패치 이상으로 패치 해야 한다. 따라서, glibc-2.12-1.166.el6_7.1 이상으로 glibc 패치를 권고한다. (참고: https://bugzilla.redhat.com/show_bug.cgi?id=1244002) 6) 참고 자료 Altibase 운영을 위한 Linux 설정 가이드 : https://docs.altibase.com/x/RQbN Installation Guide : https://github.com/ALTIBASE/Documents/blob/master/Manuals/Altibase_7.1/kor/Installation.md - 16 - 4. 설치 4.3 알티베이스 설치(1/9) 1) 설치 모드 제품을 설치하기 위해 Altibase 패키지 인스톨러는 다음 두 가지 모드로 시작할 수 있다. • 대화형 커맨드 라인 모드: DISPLAY 환경변수를 설정하지 않았을 때 이 모드로 실행된다. • GUI (Graphical User Interface): DISPLAY 환경변수를 설정했을 때 이 모드로 실행된다. 이 문서에서 Altibase 패키지 인스톨러는 설치 모드를 대화형 커맨드 라인 모드로 설치하는 방법에 대해 설명한다. 2) Altibase 패키지 인스톨러 시작 Altibase 패키지 인스톨러를 다운로드 한 후 chmod로 파일의 실행 권한을 변경해야 한다. $ chmod +x altibase-OE-server-7.1.0.3.5-LINUX-X86-64bit-release.run Altibase 패키지 인스톨러를 실행한다.