태그 미디어로그 위치로그
[How to 알티베이스_2]알티베이스 Architecture
알티베이스™ 라이프

안녕하세요. Jun~입니다.

어제는 서울에 첫눈이 내렸습니다.
여러분은 첫눈을 보면서 어떤 생각을 하셨나요?
첫사랑? 부모님? 사랑하는 가족들…?

정말 여러 기억들이 수많은 눈송이처럼 떠오르시나요.

전 눈이 내리면 가장 먼저 행여 지나던 학생들이 미끄러질까 이른 꼭두새벽
부터 허옇게 탄연탄가루를 뿌리던 나이 지긋하신 동네 할머니가 생각납니다.
아무도 알아주지 않지만 뒤에서 묵묵히 지나던 사람들의 안전을 지켜주시던
그 할머니를 보면서 추운겨울 훈훈한 정을 느낄 수 있었답니다.

여러분도 마음 따스한 겨울을 보내시길 바라며 “How to 알티베이스 2″를
시작하겠습니다.
———————————————————————-
“How to 알티베이스 2″에서는 알티베이스 동작방법과 디렉토리 구조에 대해서
알아보겠습니다.
———————————————————————-
* 각 그림을 클릭하시면 크게 보실 수 있습니다.

시작하기 앞서 세계 최초로 알티베이스에서 개발한 Hybrid DBMS의 
기본 컨셉과 왜 Hybrid DBMS인가에 대해서 생각해 볼까요?

Hybrid DBMS는 단일 DBMS내에서 MMDBMS와 디스크 DBMS를 제공, 
하나의 데이터베이스를 여러 개의 저장매체(stored media)에 나누어 저장하여
관리할 수 있도록 설계되어 있었습니다. 이로써 데이터의 성능 가중치에 따라
자주 그리고 빠르게 접근하는 데이터는 메모리에, 그렇지 않은 데이터는 디스크
에 저장하여 관리할 수 있어 10배 이상 빠른 트랜잭션 속도를 제공하는 MMDBMS
의 장점과 대용량 데이터 처리를 지원하는 디스크 DBMS의 장점을 동시에 이용할
수 있다는 장점을 제공합니다.


고성능 정보처리와 대용량 정보처리를 하나의 DBMS에서 통합해서 처리하는 구조
이기 때문에, MMDBMS와 DRDBMS를 각각의 인스턴스로 쓰는 혼용구조에서 나타
나는 동기화의 문제, 장애처리 시 복잡한 문제,응용프로그램이 복잡해지는 문제를 
해결할 수 있습니다.


또한 고객의 환경이나 필요에 따라 MMDBMS 전용 혹은 DRDBMS 전용, Hybrid MM
DBMS 형태로 다양한 구성이 가능합니다.

사용자 삽입 이미지

사실 인간의 기본적인 욕구는 끝이 없다고 합니다. 그 대상이 무엇이든지
좀 더 좋고 이쁘며 성능까지 만족하기를 갈망하죠. IT 분야에서 한 예로
CPU 속도는 계속 증가되고 내일 어떤 기능이 추가되어 나올지 누구도
예상치 못하게 되었죠. 거기에 발맞춰 사람들의 기대심리는 점점 증가하고
어제 나왔던 CPU는 구 모델로 전락해 버리기 일쑤입니다.

이러한 성능 변화의 배경에는 사용자의 욕구에 있다고 생각하는데요.
물론 DBMS 분야도 예외가 아니어서 더 빠른 DBMS 더 안정된 DBMS
가용성과 확장성이 추가된 DBMS를 요구했고 그 요구에 맞춰 알티베이스는
Hybrid DBMS를 개발하게 되었습니다.

Hybrid DBMS는 MMDBMS와 DRDBMS를 혼용하는 구조로 각각의 장점을
수용한 고객의 입맛에 맞춘 DBMS라고 생각합니다.

그럼 알티베이스 동작 방법을 크게 3단계로 나눠서 생각해 볼께요.

1. 구동시

   “Start up”으로 알티베이스가 시작되면 DBS에 있는
    Backup DB를 메모리로 로딩하기 시작하는데요. 만약 비정상 종료를
    했을경우 Log파일 이용하여 비정상 종료 전까지 완벽하게 복구를
    할 수 있습니다.

    여기서 잠깐! Log파일은??
    - 로그파일은 알티베이스 뿐만 아니라 모든 DBMS에서 매우 중요한
      파일로 데이타 볼륨이 손상되었을 경우 백업 볼륨과 함께 데이타
      베이스를 복구하는데 사용됩니다.

2. 운영시
    사용자 명령(Insert, Update, Delete)시 디스크 Log 파일에 기록을
    하는데요. 주기적으로 CheckPoint를 발생해서 Log 파일에 양이 많아져
    하드디스크의 공간 낭비되는 현상을 막아줍니다.

3. 종료시
    정상적으로 종료했을 경우 메모리의 DB를 하드디스크 Backup DB에
    반영하고 CheckPoint를 발생시킵니다. 반면 비정상 종료 시 메인메모리
    내의 DB를 하드디스크에 저장하지 않고 다음 알티베이스 구동 시
    log 파일을 이용하여 비정상 종료 전까지 복구를 할 수 있습니다.

그럼 다음으로 $HOME/altibase_home/에 있는 디렉토리 Structure에 대해서
알아볼까요?

사용자 삽입 이미지

알티베이스 디렉토리
알티베이스를 설치 하면 다음의 디렉토리가 생성되네요.
알티베이스 홈 디렉토리는 환경 변수 ALTIBASE_HOME에 지정됩니다.
이 홈 디렉토리가 포함하는 내용은 bin, conf, lib, include, msg, dbs, logs, 
sample, install, audit, trc, admin, 그리고 arch_logs 디렉토리를 포함하고 
있습니다.


admin 디렉토리
기존 install 디렉토리 밑에 있던 sql 파일들과 fixed table 관련 view 생성 스크
립트 파일이 있네요.


arch_logs 디렉토리
Sync가 끝난 로그 파일이 존재하는 디렉토리 입니다. 
이 디렉토리의 위치 및 디렉토리 명은 프로퍼티 파일에 명시되어 있습니다.


audit 디렉토리
이중화 동작 시 발생한 불일치를 해결하는 알티베이스 유틸리티인 audit의
예제 스크립트 파일이 들어있는 디렉토리 입니다.


bin 디렉토리
알티베이스를 포함한 알티베이스 관리도구와 알티베이스를 사용하는데 필
요한 지원도구들의 실행 파일이 존재하는 디렉토리입니다. bin 디렉토리 하위
에는 다음과 같은 파일이 존재합니다.
『aexport, altibase, altidump, altierr, altimon, audit, checkipc, checklogfiles,
checkServer, dumpdf, dumpla, dumplf, iloader, isql, killCheckServer, relink,
server, sesc, shmutil』

conf 디렉토리
알티베이스 라이센스와, 알티베이스가 취할 수 있는 다양한 옵션을 수록한 
프로 퍼티 파일(altibase.properties)이 존재하는 디렉토입니다. 알티베이스가
실행될 때 라이센스를 확인하고 프로퍼티 파일을 참조하여 서버 상태를 초기화
합니다.


dbs 디렉토리
데이터베이스 파일들이 존재하는 디렉토리입니다. 이 디렉토리의 위치 및 
디렉토리 명은 프로퍼티 파일에 명시되어 있구요.
mydb 파일에는 메모리 테이블들을, system 파일에는 디스크 테이블들을, 
temp 파일에는 쿼리 수행 시 중간 결과들이 저장됩니다. undo 파일에는 
MVCC에서 사용되는 이전 이미지 정보 레코드들이 저장됩니다.


include 디렉토리
응용 프로그램을 작성할 때 필요한 헤더 파일을 수록한 디렉토리입니다.


install 디렉토리
알티베이스 응용프로그램 작성에 필요한 makefile을 위한 매크로 설정 등이
포함된 altibase_env.mk 파일과 README 파일이 있습니다.


lib 디렉토리
응용 프로그램 작성에 필요한 라이브러리와 relink를 위한 파일을 수록한
디렉토리입니다.


logs 디렉토리
로그 파일 정보를 수록한 1개 이상의 로그앵커 파일들과 로그 파일들이 존재
하는 디렉토리입니다. 이 디렉토리의 위치 및 디렉토리 명은 프로퍼티 파일에 명시
되어 있네요. 로그앵커 파일명과 로그 파일명은 알티베이스 시스템에서 자동으로
결정됩니다. 그러나, 로그 앵커를 가진 파일 시스템의 오류에 대비하기 위해서는
프로퍼티를 변경하여 여러 개의 로그 앵커 파일들을 각각 서로 다른 파일 시스템
에 두어 관리하는 것이 좋습니다.


msg 디렉토리
오류 메시지를 수록한 파일들을 포함하는 디렉토리입니다.

sample 디렉토리
알티베이스의 응용 프로그램을 샘플로 제공한 디렉토리입니다. 
JDBC, ODBC, C/C++ Precompiler 라이브러리를 이용하여 작성된 프로그램과
Makefile이 수록되어 있습니다.


trc 디렉토리
알티베이스 운영 상태를 기록한 파일들이 존재합니다.

———————————————————————-
오늘은 알티베이스 동작 방법과 디렉토리 구조에 대해서 공부했는데요.
무척 지루하시죠? 하지만 어떤 DBMS를 사용하든지 그 동작 방법과 구조는
기본적으로 알고 있어야 된다고 생각해요.

다음 “How to 알티베이스 3″은 본격적으로 알티베이스에 데이터베이스를 
생성하고 구동 및 종료하는 방법을 실행해 볼께요.