Mini SQL 2.0
Database Management System

 

     

    mSQL 데이터 베이스 관리 시스템은 성능면으로 볼 때에는 일단 소규모 사양을 가지는 시스템에서 가능한 적은 오버헤드를 가지고, 엄청난 속도로 데이터베이스를 접근한다는 점이다. 비교 설명을 하면, 데이터 처리 속도는 Postgres의 20배 빠르고, Ingres보다 4배 정도의 빠른 속도를 가지는 자칭 초경량 관계형 데이터베이스 엔진이다.       

    인터넷! 우리들은 대부분을 인터넷에 젖어 살고 있다. 인터넷에서 모든 정보를 얻는 시대가 바로 지금 우리가 살고 있는 시대이다. 일상생활에서 쉽게 우리는 이러한 예를 접할 수 있다. 일례로 인기 텔레비젼 방송 프로그램에서 설문 조사를 위하여 인터넷 주소와 대형 비비에스의 이름을 우리는 쉽게 들을 수 있다. 또한 인터넷을 주제로 CF가 만들어지고 기업 이미지광고에서도 기업 인터넷 주소를 함께 광고하여 선전에 효과를 거두고 있으며, 직장인들은 자신의 인터넷 전자메일주소와 회사의 홈페이지 주소를 함께 명함에 새기는 것들을 볼 수 있을 것이다. 이제는 누구나 쉽게 인터넷에 접근할 수 있으며, 인터넷을 통하여 정보를 주고 받는 것이 편리하고, 신속하게 처리가 되기 때문에 일상생활의 일부분이 되어가고 있다.

    이렇듯 일상생활에서는 많은 종류의 정보들이 발생하게 되고 데이터들은 그 필요성에 따라서 매우 빠르게 혹은 매우 많은 양으로 이동을 하게 된다. 이러한 데이터 중에서 하나하나 그 데이터들은 그 의미가 없는 것이 대부분이다. 하지만 하나의 데이터들이 모여서 그 양이 많아지게 된다면 그 의미는 매우 달라질 수 있다. 그 정보를 어떻게 사용하고 어디에 적용할 것인지 정확하게 판단할 수 있다면, 그 데이터들은 더 이상 데이터가 아닌 값어치가 있는 정보가 될 수 있다. 하지만, 어떻게 이러한 많은 양의 데이터들을 필요에 따라서 분류하고 저장할 수 있겠는가?

    그러기 위해서 우리는 이러한 데이터들을 관리할 필요를 느끼게 되었고 점차 관리를 해줄 수 있는 프로그램들이 생겨나게 되었다. 그러면 데이터는 집합되어 중요한 정보가 되고 곧 경제적인 이익이 발생하는 것이기 때문이다. 이러한 데이터들을 관리하는 프로그램들은 아주 많이 있었지만, Internet을 기반으로 한 World Wide Web(WWW)중심으로 발달하고 있는 상황에서는 예전의 사용하던 ISAM과 같은 데이터 관리 라이브러리들은 더 이상 쓸모가 없어지고 있다. 불과 몇 년 전까지만 해도 대부분의 유명한 DBMS들은 인터넷 WWW 인터페이스 솔루션을 지원하지 않고 있었거나 솔루션을 지원하더라도 기능이 미흡한 수준이었다. 그러나 최근 1.2년 사이에 인터넷 시장이 커지자 유명 소프트웨어 회사들은 개발자들을 위하여 WWW을 중심으로 하는 데이터 베이스 인터페이스 솔루션을 개발하거나 기존의 제품을 보다 확장하여 판매하고 있다.

    유닉스 계열에서 사용할 수 있는 데이터 베이스 관리 시스템들은 대표적으로 우리가 많이 알고 있는 ORACLE이나 Imformix등과 같은 대형 DBMS들이 있다. 하지만 불행하게도 이러한 것들은 가격이 고가이고, DBMS 자체의 용량이 크며, 많은 시스템 리소스를 필요로 하고, 중소규모의 데이터를 다루는데는 적합하지 않다. 또한 무료로 공개한 것은 버전이 오래되었거나 짧은 기간에 습득하기 쉬운 DBMS가 없었다. 이러한 이유로 중소규모 기업체나 개인이 어느 하나 쉽게 선택할 수 있는 것이 없었다. 그러나 이러한 조건을 모두 만족하는 데이터 베이스 관리 시스템을 우리는 곧 맛 보게 될 것이다.

 

1. mSQL 소개

    처음에 필자는 검색엔진을 통하여 귀여운 관계형 데이터 베이스 엔진을 구하고 있는 중에 우연히 mSQL 이라는 어느 초라한 웹페이지를 발견하게 되었다. 그때가 아마 1.0.6 버전인 것으로 기억한다. mSQL 은 오스트리아의 Bond 대학에서 David.J.Hughes라는 사람이 만들었다. mSQL 데이터 베이스 관리 시스템은 성능면에서 볼 때에는 일단 소규모사양을 가지는 시스템에서 가능한 적은 오버헤드를 가지고, 엄청난 속도로 데이터베이스를 접근한다는 점이다. 비교 설명을 하면, 데이터 처리 속도는  Postagres의 20 배 빠르고, Ingres 보다 4배 정도의 빠른 속도를 가지는 자칭 초 경량 관계형 데이터 베이스엔진(RDBMS:Relational Database Management System) 이다.

    메모리는 같은 기능을 수행하는데 있어서 Postgres는 하나의 Backend가 각각 1.5MB의 메모리를 사용하여 mSQL 보다 많은 시스템의 리소스를 필요로 한다. 물론 Postgres의 확장된 SQL 은 mSQL에서는 찾아볼 수 없는 특징이다 .예를 들어 class를 상속한다든가 하는 것은 mSQL에서는 할 수 없는 기능이지만 mSQL 시스템 유틸리티 중에 일부를 사용하여 편리하게 유사한 데이터 베이스를 정의할 수 있을 것이다.

    mSQL에 접근하는 방법

    mSQL은 두 가지 방법으로 접근하여 사용할 수 있다. 한가지는 mSQL은 데이터 베이스 관리서버와  mSQL API를 이용하여 작성된 프로그램을 컴파일하여 생성된 clint application 프로그램을 실행하여 접근할 수 있고, 또 한가지 방법은 직접 사용자가 mSQL이 제공하는 시스템 프로그램을 사용하여 SQL문을 사용하여 접근할 수 있다. SQL은 ANIS standard SQL을 지원하지만, 관계형 DBMS에서 지원하는 View와 nested query는 아직 지원하지 못하고 있다.

    ② mSQL 라이선스

    mSQL에는 두 가지의 라이센스 종류가 있다. 하나는 상업적인 목적으로 mSQL을 사용할 경우에 적용되는 라이센스와 연구 및 학습을 목적으로 mSQL을 사용하는 경우에 적용되는 라이센스가 있다. 물론 이것은 GNU소프트웨어의 GPL과 같은 라이센스가 아니기 때문에 수정해서 사용해서는 안된다.

    상업적 목적으로 사용할 경우에는 반드시 등록버전을 사용해야 하는데 mSQL 은 완전한 공개 소프트웨어가 아니기 때문이다. mSQL은 14일 동안 사용해 본 후에 등록을 하도록 요구하고는 있다. 등록버전에 대하여서는 다음의 주소로 접속해서 라이센스를 얻어야 한다.

    http://Hughes.com.au/

    아마도 여러분들은 아주 적당한 가격으로 mSQL 데이터 베이스를 구입할 수 있을 것이다. mSQL홈페이지에 접속을 한 후에  LIcense아이콘을 클릭하면 등록에 관한 모든 사항을 알 수 있을 것이다. US달라를 요구하는 것을 보면 그 동안 많은 수익을 얻었고, 여러 나라에서 주문이 되었다는 것을 알 수 있다. 국내 환율을 알아보려면 라이센스 페이지에서 맨 밑의 여러 나라 환율을 전문적으로 계산해 주는 페이지가 있다. 그리고 우리는 가장 흥미있는 mSQL의 또 다른 라이선스를 볼 수 있다. 무료로 사용할 수 있는 라이선스로 대학에서 개인적인일을 하기 위하여 사용하거나 연구 또는 관계형 데이터 베이스를 학습하기 위하여 사용한다면, Free License의 범위에 속하는 것이 되므로 무료로 사용할 수 있다.

    ③ mSQL을 제공하는 언어들

    mSQL이 지원하는 언더는 C를 위한 API를 지원하고 있기 때문에, C를 사용하는 개발자는 API 사용방법을 익히기만 하면 곧 DBMS을 이용하여 휼륭한 프로그램을 작성할 수 있고, 스크립트 언어를 다룰 줄 안다면, mSQL에서 지원하는 "Lite"라는 스크립트 언어로 프로그램을 작성할 수 있다. Unix 환경만 지원한다. Perl에 자신이 있다면 MsqlPerl로 프로그램을 작성할 수 있다. Java 언어도 지원하고 있는데 인터넷에 메일링리스트가 운영중에 있다. Java언어의 경우에는 MsqlJava-1.1.1이나 mSQL JDBC로 mSQL에 접근하여 Web Application을 만들 수 있다. TCL/TK를 잘 한다면, tcl_msql을 사용할 수 있다. 마지막으로 Phyton 인데 Phyton을 할 수 있는 사람은 별로 없으리라 생각되지만, PymSQL이라는 패키지를 얻어서 사용하면 된다. Lite 스크립트 언어 제외하고는 대부분 초기에 몇몇 사람이 독자적으로 개발한 것들이다. 언급한 몇몇 지원 패키지들이 mSQL 2.0용으로 버전업되지 않았을지도 모르니 지원 버전을 반드시 확인해야 한다.

     

2. Mini SQL 2,0 설치

    ① mSQL 홈페이지에 접속하기

    Mini SQL 2.0은 1997년 7월 7일에 릴리즈가 되었다. 우선 mSQL홈페이지에 접속하여 보자. 접속한 후에 mSQL 2.0 Release를 선택하여 다운 받는다. Hughes Technology 홈페이지 주소는 다음과 같다.

    http://www.Hughes.com.au

    홈페이지에 접속을 하고 나면 예전보다. 아주 편리하고 예쁜 홈페이지를 볼 수 있다. 중간에 보면 mSQL 2.0.1을 선전하는 것을 볼 수 있다. mSQL 2.0.1은 2.0 버전의 버그를 수정하여 다시 릴리즈 되고 있다.

    mSQL은 대부분의 Unix기계에서 설치가 가능하다. mSQL 2.0을 받았다면, 받은 파일명이 "msql-2.0-rel.tar.gz"인지 확인한다. mSQL은 GNU 소프트 웨어인 tar와 gzip의 압축이 된 상태에서만 배포가 되고 있다. 그러므로 시스템이 혹시 tar나 gzip또는 gunzip가 없다면, 가까운 GNU 소프트웨어가 Mirror된 FTP찾아서 이들 패키지들을 받은 후에 설치해야 압축을 풀 수 있다. 홈페이지에서 나가기 전에 잠시 둘러보는 것도 좋을 것 같다. mSQL이 지원하는 라이브러리들을 한번 둘러보는 것도 좋을 것 같다.

    여기에서는 각각의 디렉토리에 접근하면, 라이브러리 또는 프로그램이 있고 , 친절한 문서까지  함께 있어서 이 디렉토리에 있는 것이 무엇에 사용하는지를 쉽게 알 수 있도록 되어 있어서, 언제든지 자신이 필요로 하는 라이브러리를 얻을 수 있다.

    ② mSQL 컴파일하기

    다운 받은 mSQL을 적당한 장소에 복사한 후에 압축을 해제하는 것이 좋다. 대부분 임시 디렉토리를 생성해서 그곳에서 하겠지만 우리는 조금 다르게 local 디렉토리에서 작업을 하는 것이 좋겠다.

    다음명령들을 command 라인 상에서 수행한다. X에서 작업하고 있다면 hanterm이나 X-term을 실행하고 하기 바란다.

      cp msql-2.0-rel.tar.gz/usr/local
      cd/usr/local
      tar -zxvf msql-2.0-rel.tar.gz

      또는

      gzip -d msql-2.0-rel.tar.gz
      tar -xvf msql-2.0-rel.tar

    이 명령을 입력하면 다음과 같은 디렉토리가 생성된다.

     

    bash# ls -al 

    total 22

    drwxr-xr-x  7 10003  20   1024    Aug   10  21:36

    drwxr-xr-x 21 root    root  2048   Aug   10  21:50

    -rwxr-xr-x  1 10003  20    3882   Jul     8   15:22  install

    -rw-r--r-- 1 10003  bin   551     Jul     8   00:08 MSQL_BOOK

    -rwxr-xr-x  1 10003  20    1108   Jan    6  1997 Makefile

    -rwxr-xr-x  1 10003  20    2930   Jul     8  15:19 README

    -rw-r-xr--  1 10003  20   1806   Apr    29  07:46 README.sco

    -rw-r-xr--  1 10003  20   1117   Jul     8  15:24  RELEASE_NOTES

    drwxr-xr-x   3 10003  20   1024   Feb    1  1997   demos

    drwxr-xr-x   2 10003  20   1024   Jul     8  15:36  doc

    drwxr-xr-x   3 10003  20   1024   Jul     8  15:01  misc

    drwxr-xr-x   2 10003  20   1024   Feb    1  1997   scripts

    drwxr-xr-x   2 10003  20   1024   Apr    10  19:12  src

    bash#

     

    리눅스에서 작업을 할 경우에는 tar 옵션에 -z를 함께 하면 편리하게 작업할 수 있다. mSQL은 make 명령에 여러 가지기계를 자동으로 알아내어 적절한 소스를 생성하는 방식으로 만들어졌다. 따라서 여러분들은 다음과 같은 명령으로 적당하게 기계의 성능에 맞는 소스를 생성할 수 있다.

     

    bash# make target 

    Making target directory for Linux-2.0.0-i586

    Building directory tree 

    Addingcommon

    Adding conf

    Adding lang-common

    Adding lite

    Adding makedepend

    Adding makegen

    Adding msql

    Adding reqexp

    Adding tests

    Adding tests/rtest.src

    Adding w3-msql

    Adding w3-msql/tests

    Adding sym-links

 

    이것은 mSQL 은 기계의 종류에 따라서 적절히 target호스트에 맞는 디렉토리를 생성하고 이것을 이용하여 mSQL2.0이 컴파일 시작하게 될 것이다. 아마도 여러분이 정확하게 실행을 했다면, 현제 디렉토리에서 targets이라는 디렉토리를 쉽게 찾을 수 있다. 우리는 이 디렉토리를 이용할 것이다. 다음과 같은 명령을 입력하여 디렉토리를 전환하고 그 디렉토리에서 다음과 같이 ./setup을 실행한다.

      ./setup

    이 명령어는 현재 시스템에서 mSQL를 컴파일하는데 필요한 라이브러리와 시스템 콜등을 체크하여 적절한 설정파일을 생성한다.

     

    -rwxr-xr-x 1  10003  20     3882  Jul  8   15:22  INSTALL

    -rwxr--r-- 1 10003  bin     551   Jul  8   00:08  MSQL_BOOk

    -rwxr-xr-x 1  10003  20     1108  Jan 6   1997   Makefile

    -rwxr-xr-x 1  10003  20     2930  Jul  8   15:19   README

    -rwxr-xr-- 1  10003  20     1806  Apr 29  07:46  README.sco

    -rwxr-xr-- 1  10003  20     1117  Jul  8   15:24   RELESE_NOTES

    drwxr-xr-x 3  10003  20     1024  Feb 1   1997   demons

    drwxr-xr-x 2  10003  20     1024  Jul  8   15:36   doc

    drwxr-xr-x 3  10003  20     1024  Jul  8   15:01   misc

    drwxr-xr-x 2  10003  20     1024  Feb 1   19971  scripts

    drwxr-xr-x 12 10003  20    1024  Apr  6   19:12   src

    drwxr-xr-x 3   root     root  1024  Aug 10  21:00  targets

    bash# cd targets/

    bash# ls -al

    total

    drwxr-xr-x 3   root     root  1024  Aug 10 21:10

    drwxr-xr-x 8  10003   20    1024  Aug 10 21:10

    drwxr-xr-x 13 root     root   1024  Aug 10 21:10 Linux-2.0.0-i586

    bash# cd Linux-2.0.0-i586/

    bash# ./setup

     

    starting configuration of mSQL2.

     

    checkfor gcc

    checkfor return type of signal handlers

 

    만약 체크 도중에 문제가 발생하게 되면 해당시스템에 GCC 라이브러리를 다시 설치하거나, 관리자에게 문의하기 바란다. 모든 관계되는 사항이 성공적으로 체크가 되고 나면, mSQL을 설치할 디렉토리를 설정해야 한다. 여러분이 화면에 영문으로 site.mm이라는 파일을 편집해도 된다는 메시지가 보일 것이다. mSQL은 데이터 베이스를 제공하거나 서버에서 사용하지 않는다면, 이 디렉토리를 변경하는 것이 좋다.

     

    # Generated automatically from site.mm.in.by configure

    #

    # Site specific configuration

    #

     

    CC= gcc 

    INST_DIR=/usr/local/Hughes

    HAVE_DYNAMIC=-DHAVE_DYNAMic

     

    #

    # Things below here shouldn't need to be changed

    #

    LINUX= $(CC)

    CPP=gcc-E

    RANLIB= ranlib

     

    YACC= bison -y

     

    SIGLIST= 

    DIRNT= -DHAVE_DIRENET_H-DHAE_DIRENT

    MMAP=-DHAVE_MMAP

    U_INT=-DHAVE_U_INT

    SSIZE_T= -DHAVE_SSIZE_T

 

    홈페이지나 그밖에 개인적인 용도로 사용하려면 site.mm 문서에서 INST_DIR 부분을 자신의 홈 디렉토리내에 "....Hughes"로 설정하면 되고 패스는 절대 주소로 사용해야 한다. 워크스테이션이나 대형 유닉스기계에서 개인적인 용도로 설치를 한다면, 반드시 pwd명령으로 자신의 디렉토리를 확인하여 설정하기 바란다.

     

    You may wish to check 'site.mm' although the defaults should be

    find. When you're ready .type'make all' to build the software

     

    bash# vi site.mm

    bash# make all

     

    Regenrating Makefile

    make[1]:Entering directory'/usr/local/msql-2.0-rel/targets/Linux-2.0.0-i5866'

     

    Starting make for mSQL-2

    --> [command]directory

    make[2]:Entering directory '/usr/local/msql-2.0.rel/targets/Linux-2.0.0-i586/common'

     

    Regenrating Makefile.

    .............

     

    다음으로 우리는 mSQL을 실제적으로 컴파일하는 작업을 해야 한다. 다음의 명령을 입력하면 위에서 보는 것과 같이 Makefile을 생성한 후에 이진파일을 생성하게 된다.

      Make all

    컴파일이 성공적으로 완료되면 지정된 디렉토리에 컴파일된 모든 파일을 복사해야 한다. 다음 명령을 실행하여 설치를 한다.

      Make install

    설치가 완성되면 "/usr/loacl/Hughes" 디렉토리에는 아래와 같은 파일들이 보일 것이다. 만약에 다른 디렉토리를 지정했다면 해당 디렉토리에 설치가 되어 있을 것이다.

 

    bash# pwd

    /usr/local/Hughes

    bash# ls -al

    total 23

    drwxr-xr-x 11 mspl    imiss    1024  Aug  10  21:13

    drwxr-xr-x 21 root     root      2048  Aug  10  20:50

    -rwxr-xr-x 1   mspl    users    2930  Aug  10  21:13 README

    -rwxr-xr-x 1   mspl    users    1806  Aug  10  21:13

    README.sco

    drwxr-xr-x 2  mspl    users    1024  Aug  10  21:13 bin

    drwxr-xr-x 2  mspl    users    1024  Aug  10  21:13 doc

    drwxr-xr-x 2  mspl    users    1024  Aug  10  21:13 include

    drwxr-xr-x 2  mspl    users    1024  Aug  10  21:13 lib

    drwxr-xr-x 2  mspl    users    1024  Jul    14  18:41 makegen

    drwxr-xr-x 2  mspl    users    1024  Jul    14  18:41 misc

    drwxr-xr-x 2  mspl    users    1024  Jul    14  18:40 modules

    -rw-r--r-- 1 mspl    users    496   Jul     27  23:19 msql.acl

    -rw------- 1 root    root     195   Aug    10  21:13

    msql.acl.sample

    -rw-------  1 msql   user    195   Jul     14  18:41

    msql.acl.sample

    -rw-r--r-- 1  root     root     1008  Aug   10   21:13  msql.conf

    -rw-r--r-- 1 msql    users    1008  Jul     14   18:41  msql.conf.old

    srwxr-xr--x 1 root     root      0       Aug   10   20:35  msql2.sock

    -rw-r--r--- 1 msql   users    2      Aug   10   20:35  msql2d.pid

    drwx------ 8  msql   users   1024  Aug    2   09:26  msqldb

    drwxr-xr--x 4  msql   users    1024  Jul    14   18:41  www

    bash#

 

    여기서 간단히 mSQL이 설치된 디렉토리 구조는 알아보자
     

    디렉토리

    설             명

    bin/

     mSQL DBMS의 이진파일, 모니터 및 기타 유틸리티

    doc/

     mSQL DBMS 설명서파일 (rtf문서 ps 문서 2가지 )

    lib/

     mSQL C API 및 W3-msql 라이브러리

    misc/

     mSQL 설정을 할 수 있는 스크립트

    msqldb

     mSQL이 관리할 데이터 베이스 관련 파일들 저장

    www

     W3-msql에 대한 예제 - bookmarks 데이터 베이스

     

    이 디렉토리들 중에서 가장 흥미를 유발시키는 것은 www/ 디렉토리일 것이다. 이것은 mSQL이 아주 쉽게 Web과 함께 DBMS를 연동할 수 있다는 것을 보여주는 것으로 mSQL배포판에 항상 포함되어 있다.

     

    bash# pwd

    /usr/local/Hughes/bin

    bash# ls -al

    total 639

    drwxr-xr-x 2 msp   usersl    1024  Aug  10  21:18 .

    drwxr-xr-x 11 msql  imiss    1024  Aug  10  21:18 ..

    -rwxr-xr-x 1 root    root   104955  Aug  10  21:13 lite

    -rwxr-xr-x 1 root    root    25826   Aug  10  21:18 msql

    -rwxr-xr-- 1 root    root   135801  Aug  10  21:18 msql2d

    -rwxr-xr-- 1 root    root    28510   Aug  10  21:18 msqladmin

    -rwxr-xr-x 1 root    root    24612   Aug  10  21:18 mdqldump

    -rwxr-xr-- 1 root    root    23141   Aug  10  21:18 msqlexport

    -rwxr-xr-- 1 root    root    29790   Aug  10  21:18 msqlimport

    -rwxr-xr-x 1 root    root    25288   Aug  2  08:10 mdqltool

    -rwxr-xr-x 1 root    root    25137   Aug  2   08:18 mdqlview

    -rwxr-xr-x 1 root    root    24754   Aug  10  21:18 relshow

    -rwxr-xr-x 1 root    root    72740   Aug  10  21:18 w3-auth

    -rwxr-xr-x 1 root    root    112487  Aug  10  21:18 w2-msql

     

    mSQL DBMS는 9개의 어플리케이션 프로그램으로 구성되어 있고, 1개의 데몬이 존재한다. 여기서 msqlview와 msqltool은 제외하고 보아주기 바란다. 이 프로그램들은 필자가 불편한 것을 조금 수정하여 만든 프로그램이므로 신경쓸 필요가 없다. w3-auth 와 w3-msql는 Web 과 mSQL인터페이스로  이 파일들은 httpd 데몬 디렉토리에 /cig-bin 디렉토리에 복사하여 www/ 디렉토리내의 예제 프로그램을 테스트할 수 있다.

 

3. mSQL 환경설정

    mSQL설치를 모두 성공적으로 마쳤다면 mSQL을 사용할 수 있도록 환경을 설정해야 한다. 지금의 상태로는 mSQL을 사용할 수 없다. 환경을 설정하기 위하여 다음 명령을 실행한다.

      cd/usr/local/Hughes/

      vi msql.conf

    msql.conf 파일은 mSQL 데몬에 대한 동작을 사용자가 지정할 수 있다. 이전버전에는 이러한 것이 지원하지 않았으나 2.x 버전에서부터 지원하기 시작했다. msql.conf은 [Genaral] 섹션과 [w3-msql] 섹션 그리고 [system] 섹션으로 총3가지의 섹션으로 구성되어 있다. 그중에서 General 섹션에서 서술된 파라메터들을 알아보자.

    ·General 섹션
     

    파라미터

    기본값

    정               의

    Inst_Dir

    /usr/local/Hughes

    mSQL DBMS가 설치된 디렉토리 Full Path

    mSQL_User

    msql

    mSQL 서버를 실행할 아이디

    Admin_User

    root

    Server Shutdown 이나 Database 생성들의 명령등의 권한을 부여받은 사용자아이디

    Pid_File

    %I/msql2.pid

    mSQL 서버의 pid가 저장될 파일

    TCP_PORT

    1114

    mSQL 서버가 TCP/IP 네트워크로 C/S간의 접속이 이루어질 때 받아들일 TCP 포트

    UNIX-Port

    %I/msql2.sock

    UNIX Domain socket의 Full path

 

    general 섹션에서 %I 라는 것이 있는데 이것은 mSQL을 설치한 디렉토리를 말하는 것으로 파라메터 Inst_Dir 과 같은 값을 가지게 된다. mSQL을 개인이 설치하는 것이라면 mSQL_User 와 Admin_User 의 아이디가 같아야 한다. 그 다음에 chown명령으로 mSQL 디렉토리 모두를 해당 아이디로 바꾸어준다. 그렇지 않은 경우에는 기본값을 유지하는 것이 좋고 슈퍼유저는 반드시 msql이라는 사용자를 adduser 프로그램으로 생성해야 한다.

    다음은 msql.conf를 설정한 예제이다.

     

    #

    # msql.conf- Configuration file for Mino SQL Version 2

    # --------------------------------------------------------

    # NOTE : The install directory and all files/directories below it_must_

    #               be owned by the user specifed in the mSQL_User parameter

    (the

    #               user msql by default). If you change the mSQL_User value than

    #               you must'chown -R' the install directory.

    #

     

    [general]

     

    Inst_Dir = /usr/local/Hughes

    mSQl_User = msql

    Admin_User = root

    Pid_File = %I/msql2d.pid

    TCP_Port = 1114

    UNIX_Port = %I/msql2.sock

     

    [system]

     

    Msync_Timer = 30

    Host_Lookup = True

    Read_Only = False

     

    [w3-msql]

     

    Auth_Host = NULL

    Footer = False

    Force_Private = False

     

    다음으로 mSQL 데이터 베이스 서버에 대하여 디버그 메시지를 볼 수 있게 해보겠다. 아래에 보면 profile에 api와 query. malloc 와 그 밖의 여러 가지 상황에 대한 디버그 메시지를 출력하도록 설정되어 있다 다음의 표는 MSQL_DEBUG 환경변수에 옵션으로 들어갈 수 있는 디버그 모듈들이다. 자신이 필요한 디버그 모듈을 선택하여 설정하기만 하면 된다.

     

    eval 'dircolors -b'

    fi

    # Motify user of incoming mail. This cab be overridden in the user's

    # local startup file(~/.bash.login or whatever, depeiding on the shell)

    if [-x biff]; then

       biff y

    fi

    #한엑스 셋팅

    export HANX_INPUT_DISABLE=1

    export HANX_OUTPUT_DISABLE=0

    export HANX_FONT='-kaist-iyayi-bold-*-*-*-*-*-*-*-*-*-*-*-*-*-

    # 데이테 베이스 셋팅

    export MSQL_DEBUG =api:quert:general:malloc

    export MSQL_TCP_PORT= 114

     

    mSQL에서 제공하는 디버그 옵션
     

    디버그 모듈

    설                  명

    cache

    데이블 캐쉬 작업들을 표시한다.

    query

    실행하기 전에 각각의 실행될 SQL를 표시한다.

    error

    에러메세지를 출력한다.

    key

    키에 대하여 데이터의 상세 사항을 보여준다.

    malloc

    메모리의 할당에 대항 상세사항을 보여준다.

    trace

    프로그램 실행에 따른 함수의 호출 순서를 출력

    mmap

    메모리 영역의 상세 사항을 출력한다.

    general

    위의 분류 이외의 에러에 대하여 출력한다.

 

    설정이 모두 끝났으면 이제 데이터 베이스 서버를 실행시켜야 된다. mSQL의 2.0 버전부터는 "msql2d"로 이름이 바뀌었다. 다음 명령을 실행하여 mSQL 2.0 DBMS Server를 띄워보자

      /usr/local/Hughes/bin/msql2d &

    실행이 되면서 메시지가 출력될 것이다. 하지만 매번 이렇게 귀찮게 명령을 내리고 싶지 않다면 "/etc/rc.d/rc.local" 파일을 다음과 같이 편집하는 것이 편리하다. 리눅스가 알짜 웨어라면 "/etc/rc.d/rc.alzza"파일 편집한다.  이것은 시스템이 켜질 때마다  mSQL DBMS 서버 데몬을 실행하게 된다.

     

    #

    # mSQL 2.0 rel DBMS Server

    #

    Echo "Running mSQL 2.0 DBMS Server..."

    /usr/local /Hughes/msql2d &

     

    물론 시스템이 Shutdown 될 때는 mSQL Server도 Shutdown이 되므로 일부러 mSQL Server를 매번 Shutdown 할 필요는 없다.

    이렇게 해서 최근에 인기를 몰고 있는 UNIX용  RDBMS인 mSQL 2.0를 리눅스에 설치해보았다. 많이 미흡한점이 있으나 그나마 mSQL설치하고 사용하는데 있어서 도움이 되었으면 좋겠다.




▲ top

home으로...