Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE Quick Install & Start for UNIX ALTIBASE 5 2010. 03 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved.
Document Control Change Record Date Author Change Reference 2010-03-19 lim272 Created Reviews Date Name (Position) Distribution Name Location ALTIBASE Quick Install & Start for UNIX 2 page of 18
목차 개요... 4 설치... 5 사전절차... 5 패키지압축해제... 5 라이센스설치... 6 프로퍼티설정... 7 32 비트제품의설치... 8 DB 생성및구동... 9 DB 생성... 9 ALTIBASE 구동... 11 ALTIBASE 종료... 13 간단한사용예... 14 Altibase Technical Center... 14 isql... 14 DB 사용자의생성및삭제... 15 테이블스페이스의생성및삭제... 16 테이블의생성및삭제... 16 ALTIBASE Quick Install & Start for UNIX 3 page of 18
개요 본문서는 ALTIBASE 제품을설치하고구동 / 종료하는방법에대해기본적인내용을설명한다. 기본적인설치이후성능개선을위한프로퍼티의변경및개선은별도의문서로제공되니해당문서를참고하도록한다. 참고할문서 1. 디스크IO 병목을고려한볼륨구성가이드 2. ALTIBASE 용량산정가이드 3. 효율적인이중화구성가이드 4. 각운영체제별사전환경설정과관련된가이드문서 5. ALTIBASE 설정파일가이드 ALTIBASE Quick Install & Start for UNIX 4 page of 18
설치 사전절차 1. 시스템내에 ALTIBASE 설치를위한사용자계정이있어야한다. 2. 해당사용자계정에최소한다음의환경변수를설정해야한다. ALTIBASE_HOME=/home/altibase // 이경로는임의의예시임. PATH=$ALTIBASE_HOME/bin:$PATH LD_LIBRARY_PATH=$ALTIBASE_HOME/lib:$LD_LIBRARY_PATH 위환경변수는사용자계정의쉘의종류에따라다를수있음으로환경에맞게적절하게설정하도록한다. 위환경변수를제대로설정하였다면프롬프트상다음의결과들이보여야한다. Shell> echo $ALTIBASE_HOME /home/altibase // 사용자가지정한경로가보여야함. Shell> echo $PATH /home3/lim272/pkgs/jdk1.6.0_10/bin:/home/altibase/bin:/usr/java/bin Shell> echo LD_LIBRARY_PATH /home/altibase/lib:/home3/lim272/unixodbc/lib: 패키지압축해제 사용자는 ATC(http://atc.altibase.com) 또는 ALTIBASE 로부터다음과같은형태의패키지를받을수있다. 해당패키지에는운영체제의정보및컴파일비트, 제품의버전정보등이직관적으로기술되어있음으로적합한제품패키지를요청하거나다운받도록한다. ATC 에는최신패키지만존재하기때문에만일사용자가얻고자하는특정버전또는특정운영체제의패키지가없을경우아래로연락을취하면된다. (02) 2082-1114 또는 support@altibase.com 정확한제품패키지의제공을위해사용자는운영체제, CPU, Memory Size, 컴파일러및진행프로젝트에대한정보를제공해야한다. 제품패키지의파일명의예 altibase-xeon_linux_redhat_enterprise_as4-64bit-5.3.3.2-release-gcc3.4.6.tgz ALTIBASE Quick Install & Start for UNIX 5 page of 18
압축해제방법 Shell> gzip dc altibase-xxx.tgz tar xvf README admin/ admin/adminview.sql admin/showtables.sql admin/showreplications.sql admin/showprocbody.sql admin/tracelog.sql 생략.. ALTIBASE 를설치할적절한디렉토리에위의패키지파일을위치시킨후위와같이 gzip 및 tar 명령을통해압축을해제하는것만으로 ALTIBASE 설치는완료된다. 본문서는기본설치및구동에대한부분임으로설치후사용자가확인할주요디렉토리들만설명한다. ( 상세한것은매뉴얼을참고하도록한다.) 디렉토리 admin bin include install lib sample trc conf 설명성능뷰를쉽게볼수있는예제 SQL 및 View 생성파일 ALTIBASE 실행파일및유틸리티응용프로그램개발을위해제공되는헤더파일응용프로그램개발을위한 makefile prefix 예응용프로그램개발을위해제공되는라이브러리응용프로그램의예제프로그램소스 ALTIBASE 상태정보가기록되는 Trace 로그파일위치 ALTIBASE 설정파일의위치및예제파일, 라이센스파일의위치 logs 트랜잭션로그파일의기본경로 ( 압축해제시빈디렉토리 ) dbs 데이터파일의기본경로 ( 압축해제시빈디렉토리 ) 라이센스설치 압축해제후 DB 생성및제품의구동을위해서는반드시라이센스를필요로한다. 라이센스의요청은다음과같이할수있다. 1. http://atc.altibase.com 에서신청하여받는방법 2. support@altibase.com 으로라이센스요청 ALTIBASE Quick Install & Start for UNIX 6 page of 18
라이센스발급을위해서는사용자의시스템정보및설치할 ALTIBASE 의버전정보를반드시제공해야한다. Shell> ulimit a Shell> altibase v 기타 CPU 종류및 Clock, 메모리의크기정보를제공해야함. 위와같은방법을통해받은라이센스파일은확장자없이 license 라는파일이름으로 $ALTIBASE_HOME/conf/ 디렉토리밑에복사하면된다. 프로퍼티설정 ALTIBASE 설정파일은 $ALTIBASE_HOME/conf/altibase.properties 라는파일로저장한다. 패키지를압축해제하면 $ALTIBASE_HOME/conf/altibase.properties.sample 이라는파일이존재하는데해당파일을 altibase.properties 라는이름으로동일디렉토리에복사하면된다. 확인사항 Shell> ls $ALTIBASE_HOME/conf altibase.properties.sample altibase.properties license DB 생성전에먼저 altibase.properties 파일에수정할사항이몇가지존재하는데본문서에서는 PORT_NO 만수정하고나머지항목은별도의문서로제공하기때문에해당문서를참고하도록한다. ( ALTIBASE 설정파일가이드 ) 다음의항목을 vi 와같은편집기를통해수정하고저장하면된다. Shell> vi. PORT_NO = 20300 $ALTIBASE_HOME/conf/altibase.properties PORT_NO 를시스템내에중복되지않는번호로적절하게설정한다. ( 변경하지않아도되며이후에라도사용자가변경가능하다.) 위와같은작업까지마무리하면모든설치작업은완료된다. 작업요약 1. 사용자계정생성및최소환경변수설정 2. 설치파일준비및 ALTIBASE 사용자계정의 $ALTIBASE_HOME 디렉토리에압축해제 3. 라이센스파일준비후 $ALTIBASE_HOME/conf/ 에복사 4. $ALTIBASE_HOME/conf/altibase.properties 파일생성 ALTIBASE Quick Install & Start for UNIX 7 page of 18
32 비트제품의설치 ALTIBASE 는공식적으로 32 비트 DBMS 제품을제공하지않는다. 단, 클라이언트제품에대해개발을위한패키지를제공한다. 클라이언트의제품은패키지이름앞에 altibase-client 라는이름으로시작한다. 제품패키지에는컴파일러정보가포함되기때문에 gcc/g++ 을사용할경우해당컴파일러의버전을사전에확인하도록한다. 클라이언트제품역시위에서설명한것과같이 gzip/tar 를통해압축을해제하는것으로설치가완료된다. ALTIBASE Quick Install & Start for UNIX 8 page of 18
DB 생성및구동 본장에서는 DB 를생성하고 ALTIBASE 를구동 / 종료하는방법을설명한다. 문서내에 $ALTIBASE_HOME/bin 이라고표기된부분은환경변수인 $ALTIBASE_HOME 이설정되어있고 PATH 에잡혀있는경우생략이가능하다. DB 생성 설치작업까지완료되었다면 DB 를생성하도록한다. 본문서는사용자가이해하기쉬운형태로설명한다. ( 여기서는 ALTIBASE 5.3 기준으로설명한다.) Shell> $ALTIBASE_HOME/bin/server create MS949 UTF8 Shell> $ALTIBASE_HOME/bin/server create US7ASCII UTF8 ALTIBASE 는사용자가쉽게 DB 를생성할수있도록 server 라는쉘스크립트를제공하고있다. 해당스크립트는생성시에 2 개의인자를입력받도록되어있다. 첫번째는 DB 전체의문자셋을의미하며두번째는 NVARCHAR 의유니코드문자셋을지정한다. 일반적으로한글을사용할경우라면 MS949/KO16KSC5601 을첫번째인자로사용하고유니코드사용이필요하다면 UTF8 을사용한다. 두번째인자값은 UTF8/UTF16 중에하나를선택한다. 만일, 사용자가 $ALTIBASE_HOME/conf/altibase.properties 안에 DB_NAME 을바꾼경우라면해당스크립트는동작하지않는다. 이경우에는 $ALTIBASE_HOME/bin/server 스크립트를 vi 와같은편집기를통해 mydb 라고된부분을설정파일에서바꾼 DB_NAME 의값으로동일하게변경한후사용하면된다. 정상적으로 DB 생성작업이수행되면다음의리두로그파일및데이터파일들이생성되어야한다. 경로 파일명 $ALTIBASE_HOME/logs loganchor0 loganchor1 loganchor2 logfile0 logfile1 logfile2 logfile3 logfile4 logfile5 $ALTIBASE_HOME/dbs SYS_TBS_MEM_DIC-0-0 SYS_TBS_MEM_DIC-0-1 SYS_TBS_MEM_DATA-0-0 SYS_TBS_MEM_DATA-0-0 System001.dbf undo001.dbf temp001.dbf dwfile0.dwf dwfile1.dwf 정식적인 DB 생성방법은 ALTIBASE DB 생성가이드문서 를참고하여도된다. 정상적으로생성되는경우는다음과같이화면에나타난다. Shell> server create MS949 UTF8 Altibase Client Query utility. Release Version 5.3.3.5 ALTIBASE Quick Install & Start for UNIX 9 page of 18
Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 27584 [ERR-910FB : Connected to idle instance] // 이에러는무시하도록한다. Connecting to the DB server... Connected. TRANSITION TO PHASE : PROCESS Command execute success. DB Info (Page Size = 32768) (Page Count = 257) (Total DB Size = 8421376) (DB File Size = 1073741824) Creating MMDB FILES [SUCCESS] Creating Catalog Tables [SUCCESS] Creating DRDB FILES [SUCCESS] [SM] Rebuilding Indices [Total Count:0] [SUCCESS] DB Writing Completed. All Done. Create success. Shell> _ 만일, 라이센스가정상적으로생성하지않은경우 DB 생성및구동단계에서다음과같은오류가발생한다. Shell> server create MS949 UTF8 Altibase Client Query utility. Release Version 5.3.3.5 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 27584 [ERR-910FB : Connected to idle instance] Connecting to the DB server... Connected. TRANSITION TO PHASE : PROCESS License File(/home3/lim272/work/altibase_home/conf/license) does not exist HostID->007f0100 [FAILURE] License File does not exist. Startup Failed... [ERR-91015 : Communication failure.] Shell> _ ALTIBASE Quick Install & Start for UNIX 10 page of 18
이미다른이유로기존에 DB 가생성된경우는다음과같은오류가발생함으로이때에는기존데이터파일들을삭제하거나별도의경로를지정하여 DB 를생성하여야한다. ( 기존사용중인파일을삭제할경우는신중하게결정하도록한다.) [ERR-11136: The LogAnchor file already exists (File Name: /home3/lim272/work/altibase_home/logs/loganchor0).] // 로그앵커파일중복 또는, [ERR-11025: The data file already exists (File Name: /home3/lim272/work/altibase_home/dbs/sys_tbs_mem_dic-0-0).] // 데이터파일중복오류 앞에서설명한프로퍼티파일을설정하지않을경우접속에서다음과같이 PORT_NO=0 으로표기되면서접속시도조차하지못하게된다. 이경우에는본문서의 프로퍼티설정 부분을참고하도록한다. Shell> server create MS949 UTF8 Altibase Client Query utility. Release Version 5.3.3.5 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. Write PortNo (default:20300) : ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1,PORT_NO = 0 [ERR-910FB : Connected to idle instance] ALTIBASE 구동 위와같이 DB 생성이완료되어야정상적인 ALTIBASE 구동이가능하다. 구동방법은다음과같다. ALTIBASE Shell> $ALTIBASE_HOME/bin/server start 만일, 앞의과정들을모두수행했음에도구동이되지않는경우 $ALTIBASE_HOME/trc/altibase_boot.log 를열어어떤오류가발생하였는지확인할수있다. 일반적으로라이센스파일의오류나 DB 생성에문제가있는경우구동이되지않을수있음으로이를먼저점검하고문제가없다면 support@altibase.com 으로 altibase_boot.log 를첨부하여이메일을통해문의하면된다. 서버를구동하는방법은위의쉘명령외에다음방법으로도가능하다. Shell> isql sysdba // DBA 권한의 DB user ID/Password 를입력해야함. isql> startup service; 정상적인구동시다음과같이진행과정이나타난다. Shell> server start Altibase Client Query utility. Release Version 5.3.3.5 Copyright 2000, ALTIBASE Corporation or its subsidiaries. ALTIBASE Quick Install & Start for UNIX 11 page of 18
All Rights Reserved. ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 27584 [ERR-910FB : Connected to idle instance] Connecting to the DB server... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL TRANSITION TO PHASE : META [SM] Recovery Phase - 1 : Preparing Database : Dynamic Memory Version => Parallel Loading [SM] Recovery Phase - 2 : Loading Database.... 중간생략.. TRANSITION TO PHASE : SERVICE [CM] Listener started : TCP on port 27584 [CM] Listener started : UNIX [RP] Initialization : [PASS] --- STARTUP Process SUCCESS --- Command execute success. Shell> _ 만일, 앞서설명한환경변수이제대로설정되어있지않으면다음과같이오류가발생한다. Shell> server start /bin/sql: No such file or directory 라이센스가없는경우는위에 DB 생성 과유사한오류가발생한다. DB 생성을하지않은경우는다음과같은오류가발생한다. Shell> server start ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 27584 [ERR-910FB : Connected to idle instance] Connecting to the DB server... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL [FAILURE] The log anchor file does not exist or it is not valid. Startup Failed... [ERR-91015 : Communication failure.] ALTIBASE Quick Install & Start for UNIX 12 page of 18
ALTIBASE 종료 ALTIBASE 의종료는다음과같이수행한다. Shell> server stop 서버를종료하는방법은위의쉘명령외에정식적으로 3 가지방법을제공하고있다. Shell> isql sysdba // DBA 권한의 DB user ID/Password를입력해야함. isql> shutdown abort; isql> shutdown immediate; isql> shutdown normal; 옵션 설명 abort 현재접속된모든세션을강제종료시키고즉시구동을중지한다. 프로세스를중지하기때문에정상적인 shutdown 과정없이즉시종료한다. ( 이후데이터복구에는아무런문제가없음.) immediate normal 현재접속된모든세션을강제종료시키고정상적인 shutdown 과정을거쳐중지한다. 현재접속된모든세션이정상종료하기를대기한이후에정상적인 shutdown 과정을거쳐중지한다. normal 옵션을사용하는경우세션이종료하기를기다려야하기때문에이런이유를인지하지못한채서버를중지하면 shutdown 과정이진행되지않는것처럼착각할수있음으로사용에주의를필요로한다. 정상적인종료시다음과같이진행과정이나타난다. Shell> server stop Altibase Client Query utility. Release Version 5.3.3.5 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 27584 Ok..Shutdown Proceeding... TRANSITION TO PHASE : Shutdown Altibase [RP] Finalization : PASS shutdown immediate success. Shell> _ 서버종료단계에서는메모리 DB 의이미지를디스크로내리는과정등이포함되어있기때문에디스크 I/O 성능이느리거나직전트랜잭션이대량의변경작업을수행한경우에는트랜잭션롤백 (Rollback) 작업등을수행해야하기때문에느리게진행될수있음을감안해야한다. ALTIBASE Quick Install & Start for UNIX 13 page of 18
간단한사용예 본장에서는 DB 사용자의생성및테이블스페이스의생성이나테이블의생성정도만을간단하게예로설명한다. ALTIBASE 는 SQL92 표준을준수하기때문에다른 DBMS 와구문상의큰차이는없다. 자세한 SQL 문의사용과같은사용법에대해서는 ALTIBASE 가제공하는매뉴얼을참조하도록한다. Altibase Technical Center ALTIBASE 테크니컬웹사이트인 http://atc.altibase.com 에서매뉴얼을확인할수있으며사용중궁금한사항에대한답변및기술적인자료를확인할수있다. isql ALTIBASE 는사용자가 SQL 문을터미널에서사용할수있도록제공하는유틸리티프로그램이다. DB 를생성한시점에는 sys 라는 DBA 권한의사용자만존재하기때문에 $ALTIBASE_HOME/bin/is 만실행해도가능하다. ( is 는 isql 을쉽게사용하도록만든쉘스크립트이다.) Shell> $ALTIBASE_HOME/bin/is Shell> isql u sys p manager s 127.0.0.1 port 20300 각입력옵션은다음과같다. 입력옵션 설명 -u DB 사용자의계정이름 -p DB 사용자의계정비밀번호 -s 접속대상 DB 가위치하는네트웍 IP 주소 -port 접속대상 DB 에설정한 PORT_NO 만일, DB 문자셋을 US7ASCII 로설정하지않은경우에는 DB 를생성할때지정하였던문자셋을환경변수로잡아야한다. 다음과같이하면된다. DB 생성시점에아래와같이 MS949 를문자셋으로하였다면 Shell> server create MS949 UTF8 Shell> export ALTIBASE_NLS_USE=MS949 라고명시적으로문자셋을환경변수에지정하여야만한글을입 / 출력하는데있어올바르게처리가된다. 만일, 위환경변수를설정했음에도한글이깨진글자체로보일경우가발생하는데그런경우는사용하는터미널의환경을한글사용이가능하도록설정하여야한다. ALTIBASE Quick Install & Start for UNIX 14 page of 18
접속후의간단한 SQL 실행결과 Shell> isql -u sys -p manager -s 127.0.0.1 -port 27584 Altibase Client Query utility. Release Version 5.3.3.5 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 27584 isql> select sysdate from dual; SYSDATE --------------- 19-MAR-2010 1 row selected. isql> _ DB 사용자의생성및삭제 ALTIBASE 는기본적으로 sys 계정이라는 DBA 권한을가진사용자가생성되어있다. 이계정으로접속하여새로운사용자를만들수있다. isql> CREATE USER new_user IDENTIFIED BY new_user DEFAULT TABLESPACE sys_tbs_disk_data ACCESS sys_tbs_mem_data ON; 사용한각입력부분은다음과같다. 입력항목 설명 CREATE USER 이후새롭게만들사용자의이름을기술한다. IDENTIFIED BY 이후사용자의비밀번호를기술한다. DEFAULT TABLESPACE 이후 ACCESS ~ ON 이부분부터는기술하지않아도사용자는생성가능하다. 다만, 접근가능한테이블스페이스를명시해주는절이며 ALTER USER 구문을통해변경이가능하다. ACCESS ~ ON 사이에기술된테이블스페이스에접근가능하도록권한을부여한다. 사용자의삭제는다음과같이한다. isql> DROP USER new_user CASCADE; ALTIBASE Quick Install & Start for UNIX 15 page of 18
테이블스페이스의생성및삭제 디스크테이블스페이스의생성예로설명한다. isql> CREATE TABLESPACE test_tbs1 DATAFILE test001.dbf SIZE 10M AUTOEXTENT ON MAXSIZE 100M; 정상적으로위구문과같은예로수행하면 $ALTIBASE_HOME/dbs/test001.dbf 라는데이터파일이생성되며해당테이블스페이스는초기 10M 부터시작하여 100M 까지자동확장되어사용가능한공간으로설정된다. 디스크테이블스페이스의삭제는다음과같이한다. isql> DROP TABLESPACE test_tbs1 INCLUDING CONTENTS AND DATAFILES; 해당구문은해당테이블스페이스뿐아니라포함된객체및데이터파일까지삭제한다. 만일, 정상적으로삭제되지않는다면해당테이블스페이스접근중인 DB 세션이존재하는경우임으로해당세션을찾아정리한후삭제구문을재수행하면된다. 테이블의생성및삭제 테이블의생성은다음과같이한다. isql> CREATE TABLE test1 ( c1 INTEGER, c2 CHAR(10), PRIMARY KEY (c1) ) TABLESPACE test_tbs1; 테이블의삭제는다음과같이한다. isql> DROP TABLE test1; 테이블을생성한후정상적인테이블의존재여부를확인하려면다음과같이한다. isql> DESC test1; [ TABLESPACE : SYS_TBS_MEM_DATA ] [ ATTRIBUTE ] ------------- NAME TYPE IS NULL ------------- A INTEGER FIXED NOT NULL B INTEGER FIXED [ INDEX ] ------------- NAME TYPE IS UNIQUE COLUMN ------------- ALTIBASE Quick Install & Start for UNIX 16 page of 18
SYS_IDX_ID_162 BTREE UNIQUE A ASC [ PRIMARY KEY ] ------------- isql>_ ALTIBASE Quick Install & Start for UNIX 17 page of 18
알티베이스 서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 1008 호 02-2082-1000 http://www.altibase.com 대전사무소대전광역시서구둔산동 921 주은리더스텔 901 호 042-489-0330 기술지원본부서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 908 호 02-2082-1000 솔루션센터 02-2082-1114 http://support.altibase.com Copyright c 2000~2013 ALTIBASE Corporation. All Rights Reserved. 이문서는정보제공을목적으로제공되며, 사전에예고없이변경될수있습니다. 이문서는오류가있을수있으며, 상업적또는특정목적에부합하는명시적, 묵시적인책임이일체없습니다. 이문서에포함된 ALTIBASE 제품의특징이나기능의개발, 발표등의시기는 ALTIBASE 재량입니다. ALTIBASE는이문서에대하여관련된특허권, 상표권, 저작권또는기타지적재산권을보유할수있습니다. ALTIBASE Quick Install & Start for UNIX 18 page of 18