본문 바로가기
DB/Oracle

Linux Oracle 설치와 활용(Ⅰ)

by Lohen 2016. 2. 4.

Linux Oracle 설치와 활용(Ⅰ) 



출처: http://www.lug.or.kr/docs/LINUX/others/7-4.htm


Linux Oracle 설치와 활용(Ⅰ)

이수준 (dislevel@newhuman.org)

 

    <p> </p>

서  론

    <p>인터넷 서버로서의 많은 가능성을 보여주고 있는 Linux는 사실상 미묘한 문제가 있었다. Apache는 웹서버로서의 더할 나위 없는 정상의 고지에 있었고, Samba는 많은 작업들을 MS WINDOWS로부터 해방시켜 주었으며 X WINDOW는 MS의 그것과 못지 않은 많은 윈도우 매니저들로 치장되었다. 문제는 좀더 신뢰성 있는 서비스들이었고 그것은 대체로 D/B 시스템과의 밀접한 관계를 가진다. 물론 Linux에서도 아주 훌륭한(그것도 공개의) D/B 들이 존재하는데 MiniSQL이나 Postgresql등이 그것이고 MySQL같은 조금 특별한(반 공개/반 상용) 것들도 있다. 하지만, 이것들이 아무리 훌륭하다고 해도 사용자의 입장에서는 누구하나 책임져주지도, 기술지원 해주지도 않는 이러한 D/B 시스템들에 자신의 귀중한, 혹은 상업적인 목적의 자료를 담아두고 맘 편해 하는 이는 별로 없을 것이다. 그러나 지금은 여러 우여 곡절 끝에 Linux는 Oracle 을 위시한 대형 D/B시스템 업체들로부터 지원을 받게 되었다. 대형 상용 D/B시스템 업체들의 지원과 엔터프라이즈급 성능을 갖춘 커널 2.2의 발표로 인터넷 서버 시장을 넘어 이제는 국내에서도 엔터프라이즈 플랫폼으로 Linux 가 강력하게 등장하고 있다.</p>

 

목  적

    <p>이 글의 목적은 간단하다. 여러 D/B벤더들의 제품중에서 유독 한국에서 초강세를 보이고 있는 Oracle (server for Linux 8.0.5)를 Linux상에서 설치하는 방법과 운용 방법, 그리고 간단한 pro-c 사용법, 그리고 한참 주가를 올리고 있는 php3와의 연동을 약 3회분에 걸쳐 살펴본다. Test에 사용된 Oracle server는 정품이 아니고 Oracle Home Page에 가면 쉽게 구할 수 있는 개발자 버전임을 알려둔다.</p><p>◎ 시스템 요구사항</p><p>메모리 : 활용의 목적이 아닐 경우 32메가도 가능</p><p>스왑영역 : 일반적으로 RAM의 3배 크기의 스왑영역이 권장. 1GB이상의 RAM을 가진 
                   시스템에서는 2배 크기의 스왑영역이 권장된다.
    </p><p>디스크 : 최소한 4개(At least four devices) : Oracle 소프트웨어 설치를 위해 하나, 나머지 
                세개는 OFA호환 데이터베이스를 생성하기 위해 사용된다.
                - 활용의 목적이 아닐 경우 한 개의 디스크라도 상관없다.
                - 활용의 목적이라면 최소 2개의 물리적 디스크 추천 (리눅스, 오라클 )
                - 다운로드 받은 파일과 압축을 풀고 설치할 용량으로 최소 1기가 이상이 필요하다.
    </p><p>Operating System : Linux 2.0.34
    - 오라클의 리눅스 팀은 실제 2.0.33 이상이라고 한다. 
    - 필자는 참고로 국내에서 유명한 알짜 리눅스 5.2를 사용하였으며 커널은 2.0.36을 
       사용하였다.
    </p><p>System Libraries : GNU C Library, version 2.0.7
    - 문서상에서는 2.0.7이상을 요구하고 있으나 오라클의 리눅스 개발 팀으로부터의 설명으로는
       실제 2.0.6이상이면 된다고 한다.
       GLIBC 2.1.x 용으로는 패치 파일이 따로 나와 있다. 아직 테스트는 해보지 못했다.
    </p><p>Window Manager : 어떤 X 윈도우 시스템도 가능
    -솔라리스에서는 X-window 상에서 관리할 수 있는 svrmgrm 이 있지만 Linux에서는 현재 
      커맨드 라인 모드에서만 작동하는svrmgrl 만이 존재한다.
    </p>

 

가. root 로 하여야 할일

    <p>1. 다운로드 http://technet.oracle.com에서 오라클 리눅스를 다운 받는다.</p><p>2. /usr/src 에 다운로드 받은 805ship.tgz 파일을 옮긴 후 /usr/src/ora에서 압축을 푼다.
       /usr/src/ora 상에 다음과 같은 파일과 디렉토리가 생성되었을 것이다.
    </p><p>    # ls
        DST.LST          network/           plsql/
        nlsrtl/              precomp/          RELDESC.TXT
        ocommon/       rdbms/             bin/
        oemagent/       slax/                oracore/
        sqlplus/           jdbc/                orainst/
        svrmgr/           lib/                   ord/
        unix.prd          otrace/              unixdoc/
    </p><p>3. Create Mount Points
        이제 오라클을 설치할 위치를 정하는 단계이다. 여기서는 /home/oracle에 오라클을 설치
        하는 것으로 가정하겠다. 이 위치에 오라클을 설치할 하드 디스크 파티션을 마운트 시켜야
        한다. 
    - 대부분의 사용자가 하나의 파티션에 리눅스를 설치할 것이다. 그렇지만 만일 두개 이상의 
       하드디스크 파티션을 이용할 것이라면 /etc/fstab의 내용을 적합하게 고쳐야 한다.
       각 파티션의 내용을 다음에 설명하도록 하겠다.
    </p><p>4. DBA group 생성
       /etc/group 파일에 dba라는 그룹을 생성한다.
    </p><p>   # groupadd dba 
       혹은 직접 vi edit로 /etc/group을 편집할 수도 있다.
    </p><p>5. 리눅스 커널 설정
        오라클8 서버의 SGA 구조를 수용하기 위해 리눅스 커널의 Interprocess Communication
        (IPC) 파라메터들을 설정해야 한다. 시스템이 SGA를 수용하기에 충분한 shared 메모리를 
        가지지 않았다면 데이터베이스를 실행할 수 없을 것이다.
    </p><p>다음에 상응하는 커널 파라메터를 설정한다.</p><p>maximum size of a shared memory segment(SHMMAX) 
    maximum number of shared memory segments in the system(SHMMNI)
    maximum number of shared memory segments a user process can attatch(SHMSEG)
    maximum amount of shared memory that can be allocated system-wide(SHMMNS)
    SHMMAX*SHMSEG에 의해 허용되는 전체 shred 메모리 크기가 결정된다.
    </p><p>ㄱ) SHMMAX = 4294967295 : 단일 공유 메모리 세그먼트의 최대크기(바이트단위) 
    ㄴ) SHMMIN = 1 : 단일 공유메모리 세그먼트의 최소크기(바이트)
    ㄷ) SHMIMNI = 100 : 공유메모리 지시자(identifiers)의 갯수
    ㄹ) SHMSEG = 10 : 각 프로세스에 부여될 수 있는 공유메모리 세그먼드의 최대 갯수
    ㅁ) SEMMNS = 200 : 시스템 내의 세마포어 갯수
    ㅂ) SEMMNI = 70 : 세마포어 지시자(identifiers)의 갯수. SEMMNI은  동시에 생성될 수 있는
                               세마포어 갯수를 결정한다.
    ㅅ) SEMMSL = PROCESSES 초기화 파라메터의 값과 같거나 크도록, 하나의 세마포어 안에 
                                            존재할 수 있는 세마포어들의 최대 갯수. 
                                            오라클 프로세스들의 최대 갯수와 같아야 한다.
    </p><p>솔라리스의 경우에는 다음의 값들을 /etc/system 파일에서 설정해 주어야 하지만, 설정을 하지 않아 문제가 발생한적은 없었다. 기본 커널 상태로 놓고 인스톨하여도 무방하다. (레드헷의 디폴트 커널이든 다시 컴파일한 커널이든)</p><p>6. 오라클 관리자 계정 생성
        adduser 혹은 useradd 로 dba그룹에 속하는 유저 oracle을 생성한다.
    </p>
      <p>ㄱ) adduser 명령으로 oracle user를 생성한다.
           # adduser oracle
      ㄴ) vi /etc/passwd 명령을 사용하여 oracle user 의 설정 값을 위에서 
          설명한 것대로 바꾼다. - dba gid와 같아야 한다.
      </p>
    <p>7. oratab 파일 생성
       오라클 인스턴스에 대한 정보는 oracle 소유의 oratab 파일에 저장된다.
       하지만 이 스크립트를 root로 실행해서 /etc 디렉토리에 oratab 파일이 생성되도록 한다.
    </p><p>   실제 인스톨과정에서 oratab.sh을 실행하면 ORACLE_OWNER환경변수가 설정되어 있는지
       묻고 있다. 따라서 ORACLE_OWNER을 다음과 같이 설정한다.
    </p>
      <p>#export ORACLE_OWNER=oracle</p>

 

나. oracle user 로 할 일

    <p>1. ~/.bash_profile의 수정
       ( sh을 사용할 경우 .profile을 수정한다. redhat 리눅스를 기준으로 설명한다.) 
       oracle로 접속하여 다음과 같이 .profile을 만든다. RedHat에서는 .bash profile 이다.
    </p>
      <p>export 
      ORACLE_HOME=/home/oracle/app/oracle/product/8.0.5
      export 
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib
      export ORACLE_SID=linux
      export ORACLE_TERM=386
      export 
      ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
      export PATH=$PATH:$ORACLE_HOME/bin
      export TMPDIR=/tmp
      export 
      CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
      umask 022 
      (위에서 export 다음의 줄을 export 뒤에 나와야 한다.)
      </p>
    <p>위의 경우는 “root 작업 4”의 “Create Mount Points”에서 이야기한 오라클을 설치할 경로로 /home/oracle인 경우이다.</p>

각 설정에 대한 설명

    <p>ORACLE_HOME : 
    오라클을 /home/oracle에 설치하기로 하였으므로 /home/oracle/app/oracle/product/8.0.5로 지정된다.
    </p><p>LD_LIBRARY_PATH :
    오라클의 동적/정적  라이브러리의 경로를 나타내는 환경변수로 Pro*C나 PHP등을 사용할 때 중요하게 적용된다.
    </p><p>ORACLE_SID :
    오라클 인스턴스의 이름이다. 영문자로 3-4글자로 정해준다. 필자는 인스턴트의 이름을 linux 라고 지었다.
    </p><p>그 외의 환경변수는 예제에 나와 있는 데로 하면 된다.</p><p>지역언어설정 환경변수 NLS_LANG은 모든 인스톨이 끝나고 설명하도록 하겠다.</p>

환경변수 갱신

    <p>위와 같이 .profile내용을 변경하였다면</p>
      <p># . .bash_profile 혹은
      # source .bash_profile 하여 환경변수 내용을 업데이트한다. 또는 oracle계정으로 다시 로그인한다.
      </p>

 

다. 실제적인 Oracle 의 설치

    <p>1. 인스톨러 실행
    </p>
      <p>ㄱ) oracle로 로그인 한다. - 절대 root로 인스톨로를 실행하면 안된다.
      ㄴ) oracle 설치 디렉토리로 이동
           # cd /usr/src/ora/orainst 
      ㄷ) orainst를 실행한다.
           # ./orainst 를 실행한다.
      </p>
    <p>화면에서 [TAB]키, 화살표키, 스페이스 바를 이용하여 항목을 선택할 수 있다.</p><p>2. 검은 배경의 설치화면이 나오면 Custom Install을 선택한다.</p><p>3. 처음 설치하는 것이므로, (o) Install, Upgrade, or De-Install Software을 선택한다.</p><p>4. 새롭게 인스톨 할 것이므로  Install New Product - Create DB Objects을 선택한다.</p><p>5. Mount Point를 설정한다. root user로 할 일 5. 번에서 설정한 것처럼 mount point를
        /home/oracle로 설정한다.
    </p><p>6. .bash_profile에서 설정한 것처럼 $ORACLE_HOME 디렉토리를 설정한다.</p><p>7. ORACLE_BASE 와 ORACLE_HOME을 설정한다.</p><p>8. log 파일이 남을 위치를 설정한다.</p><p>9. Install from CD-ROM을 선택하여야 한다.</p><p>10. ORACLE_SID를 .bash_profile에서 설정한 것과 같이 linux로 선택한다.</p><p>11. NLS 의 설정 - 여기에서는 일단 ALL language를 선택한다.</p><p>12. install 이 끝이 난 후 root.sh을 실행하라는 메시지가 출력된다. 반드시 install 후에는
         root.sh을 실행하여야 한다.
    </p><p>13. Software Asset Manager에서 설치한 부분을 선택한다.여기에서는 모든 부분을 설치
         한다고 가정을 한다.
    </p><p>14. 13)에서처럼 Install을 선택한 후 몇 가지 사항에 대하여 OK를 한 후 OSOPER group (dba)
          를 설정한다.
    </p><p>15. 생성할 DB Object를 선택한다. - Filesystem-Based Database을 선택한다.
    </p><p>16. Database Mount Points를 정한다. 설치도중에 3개의 mount points를 기입하라고 하는데
         물리적으로 분리된 하드가 3개 존재하면 가장 좋지만 실제 PC에서는 힘든 일이다. 
         이렇게 3곳으로 데이터를 분리하는 이유는 데이터베이스가 하드 디스크로의 읽기/쓰기를
         하는 과정에서 경합을 줄이고 에러 및 문제의 발생시 자연스런 복구를 위한 것이다. 
         하지만 오라클 프로그램과 동일한 하드디스에 밖에 인스톨 할 공간이 없다면 여기에 모두
         동일한 경로를 적어주면 된다.
    </p><p>     필자도 오라클을 설치할 때  /home/oracle에 오라클 프로그램을 설치하고 데이터 파일을
         위한 3개의 마운트 포인트도 /home/oracle로 설정하였다.
    </p><p>17. Character Set 설정 - 한글을 쓰기 위해서KO16KSC5601로 설정한다.</p><p>18. National Character Set 설정</p><p>19. System password 의 설정 (보통 manager라고 password를 입력한다. )</p><p>20. sys password 의 설정 ( manager로 password를 설정. )</p><p>21. dba password 의 설정 ( no라고 설정한다. )</p><p>22. TNS Listener Password 의 설정</p><p>23. Configure MTS and start SQL*Net listener 설정은 no로 한다.</p><p>24. Control files 의 위치 확인.</p><p>25. 기본적인 데이터베이스 관련 파일의 위치와 용량의 확인</p><p>26.  JDBC 셋의 선택 (default로 선택을한다.)</p><p>27. CTX Temporary Tablespace을 선택한다.</p><p>28. CTX demo table을 설치할 것을 선택한 후에, Oracle Document를 설치할 것에 대하여 
         셋팅한다. 디렉토리를 설정한 후 pdf, html, both 어떤 형식으로 설치할 것인지 묻는데 
         그때에는 자신이 원하는 항목 중에서 한가지를 선택하면 된다.
    </p><p>29. 이제 인스톨이 시작되기 시작하고 그래프가 올라가기 시작한다. 하염없이 기다리자 -_-;</p><p>30. 설치완료 화면.
    </p><p>31. 설치 검증 
         설치가 모두 끝났다면 $ORACLE_HOME/orainst 디렉토리에 생성된 root.sh을 root 계정
         으로 실행 시킨다. 
    </p><p>   ㄱ) root로 로그인한다. 
       ㄴ) cd $ORACLE_HOME/orainst 
       ㄷ) ./root.sh
    </p>
      <p># ./root.sh
      - /etc/oratab 아래에 다음과 같은 내용이 추가되었다.
      </p><p>*:/home/oracle//app/oracle/product/8.0.5:N
      linux:/home/oracle/app/oracle/product/8.0.5:N
      </p>

 

라. Oracle Database 의 구동

    <p>1. oracle user로 login.</p><p>2. svrmgrl을 실행시킨 후 database를 가동한다.</p><p>  $ svrmgrl   - svrmgrl 의 실행</p><p>  SVRMGR> connect internal - internal 접속
      Connected.
      Oracle Server Manager Release 3.0.5.0.0 - Production
    </p><p>  (c) Copyright 1997, Oracle Corporation. All Rights  
           Reserved.
    </p><p>  Oracle8 Release 8.0.5.0.0 - Production
      PL/SQL Release 8.0.5.1.0 - Production
    </p><p>  SVRMGR> connect internal - internal 접속
      Connected.
    </p><p>  SVRMGR> startup;
      ORACLE instance started.
      Total System Global Area    4754704 bytes
      Fixed Size                         48400 bytes
      Variable Size                     4222976 bytes
      Database Buffers               409600 bytes
      Redo Buffers                     73728 bytes
      Database mounted.
      Database opened.
    </p><p>  SVRMGR> exit - svrmgrl 의 종료
      Server Manager complete.
    </p><p>3. lsnrctl 명령을 이용하여 Oracle listener을 가동시킨다.
        - lsnrctl start : Oracle listener 의 가동
        - lsnrctl stop  : Oracle listener 의 멈춤
       $ lsnrctl start
    </p><p>LSNRCTL for Linux: Version 8.0.5.0.0 - Production on 26-APR-99 21:56:51
    (c) Copyright 1997 Oracle Corporation.  All rights reserved.
    </p><p>Starting /home/oracle/app/oracle/product/8.0.5/bin/tnslsnr: please wait...</p><p>TNSLSNR for Linux: Version 8.0.5.0.0 - Production
    System paramete rfile is 
    /home/oracle/app/oracle/product/8.0.5/network/admin/
    listener.ora
    Log messages written to 
    /home/oracle/app/oracle/product/8.0.5/network/log/
    listener.log
    Listening on: 
    (ADDRESS=(PROTOCOL=ipc)(DEV=6)(KEY=linux))
    Listening on: 
    (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=PNPKEY))
    Listening on: 
    (ADDRESS=(PROTOCOL=tcp)(DEV=11)(HOST=192.168.1.1)(PORT=1521))
    </p><p>Connecting to 
    (ADDRESS=(PROTOCOL=IPC)(KEY=linux))
    STATUS of the LISTENER
    ------------------------
    Alias                       LISTENER
    Version                   TNSLSNR for Linux: Version 8.0.5.0.0 - Production
    Start Date                26-APR-99 21:56:56
    Uptime                    0 days 0 hr. 0 min. 1 sec
    Trace Level              off
    Security                   OFF
    SNMP                      OFF
    Listener Parameter File   
    /home/oracle/app/oracle/product/8.0.5/network/admin/
    listener.ora
    Listener Log File         
    /home/oracle/app/oracle/product/8.0.5/network/log/
    listener.log
    Services Summary...
    extproc               has 1 service handler(s)
    linux         has 1 service handler(s)
    The command completed successfully
    </p><p>- 오라클 리스너가 제대로 실행이 되지 않을 경우 listener.ora, tnsnames.ora을 알맞게 
       편집한다. 
     (/home/oracle/app/oracle/product/8.0.5/network/admin 위치하여 있다.)
    </p><p>다음은 tcp/ip 프로토콜을 기준으로 하여서 listener.ora를 알맞게 편집한 것이다.</p><p>#
    # Installation Generated Net8 Configuration
    # Version Date: Jun-17-97
    # Filename: Listener.ora

    LISTENER =
    (ADDRESS_LIST =
    (ADDRESS= (PROTOCOL= IPC)(KEY= linux))
    (ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY))
    (ADDRESS= (PROTOCOL= TCP)(Host= 192.168.1.1)
    (Port= 1521))
    - database 가 설치되어 있는 ip를 적어준다.
    )
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME= 192.168.1.1.)
    - database 가 설치되어 있는 ip를 적어준다.
    (ORACLE_HOME= 
    /home/oracle/app/oracle/product/8.0.5)
    (SID_NAME = linux)
    - linux sid , 설치도중 적어준 sid를 적어준다.
    )
    (SID_DESC = 
    (SID_NAME = extproc) 
    (ORACLE_HOME =
    /home/oracle/app/oracle/product/8.0.5)
    </p><p>
    (PROGRAM = extproc) 

    )
    STARTUP_WAIT_TIME_LISTENER = 0
    CONNECT_TIMEOUT_LISTENER = 10
    TRACE_LEVEL_LISTENER = OFF
    </p><p>
    # Installation Generated Net8 Configuration 
    # Version Date: Oct-27-97 
    # Filename: Tnsnames.ora 
    #  
    extproc_connection_data = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = linux)) 
    (CONNECT_DATA = (SID = extproc)) 

    linux =
    - oracle alias
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL= TCP)(Host= 192.168.1.1)
    (Port= 1521))
    - database 가 설치되어있는 database 의 ip
      (CONNECT_DATA = (SID = linux))
    - oracle sid 
    )
    </p><p>linux_BEQ =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = BEQ)(PROGRAM = 
    /home/oracle/app/oracle/product/8.0.5)
    (argv0 = oraclelinux)
    (args = ‘(DESCRIPTION = 
    (LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))’)
    (envs = 
    ‘ORACLE_HOME=/home/oracle/app/oracle/product/8.0.5,ORACLE_SID=linux’)
    )
    )
    </p><p>4. 이제 다시 lsnrctl start 명령으로 실행하여 Oracle listener을 실행한다. 
        이제 sqlplus을 실행하여 접속이 되나 확인을 하자. test 용으로 id : scott password : tiger
        가 제공됨을 알 수 있다. 이미 설치 중에 system과 sys의 password는 직접 입력하였으므
        로, system 혹은 sys로 접속이 가능한지 확인할 수 있다.
    </p><p>5. sqlplus로 접속이 확인되었으면 이제 listener을 종료한 후 database를 종료시켜 보자.</p><p>- listener 의 종료
    $ lsnrctl stop
    </p><p>LSNRCTL for Linux: Version 8.0.5.0.0 - Production on 26-APR-99 22:18:35</p><p>(c) Copyright 1997 Oracle Corporation.  All rights reserved.</p><p>Connecting to 
    (ADDRESS=(PROTOCOL=IPC)(KEY=linux))
    The command completed successfully
    </p><p>- oracle database 의 shutdown 
    $ svrmgrl
    Oracle Server Manager Release 3.0.5.0.0 - Production
    </p><p>(c) Copyright 1997, Oracle Corporation.  All Rights Reserved.</p><p>Oracle8 Release 8.0.5.0.0 - Production
    PL/SQL Release 8.0.5.0.0 - Production
    </p><p>SVRMGR> connect internal
    Connected.
    SVRMGR> shutdown
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SVRMGR> exit
    Server Manager complete.
    </p><p>$</p>

 

마. Oracle Database 의 사용자 등록

    <p>system/manager라는 Oracle 사용자 계정은 UNIX시스템에서의 root를 사용하는 것과 유사하기 때문에 우리는 문제를 발생시키는 것을 최소화하기 위해 되도록 적은 권한을 갖는 사용자를 생성할 필요가 있다.</p><p>SQL*PLUS에 연결하고 사용자를 생성한다.</p><p>$ sqlplus system/manager</p><p>SQL*Plus: Release 8.0.5.1.0 - Production</p><p>Copyright (c) Oracle Corporation 1997.  All rights reserved.</p><p>Connected to:
    Oracle8 Server Release 8.0.5.0.0 - Production Release
    PL/SQL Release 8.0.5.0.0 - Production
    </p><p>SQL> create user <user> identified by <psw>
    2  default tablespace users
    3  temporary tablespace temp;
    </p><p>User created.
    SQL> grant connect, resource to <user>
    </p><p>Grant succeeded.</p><p>SQL> exit</p><p>Disconnected from Oracle8 Server Release 8.0.5.0.0 - 
    Production Release
    PL/SQL Release 8.0.5.0.0 - Production
    </p><p>시스템에 새로운 사용자계정을 생성하였기 때문에 새로운 계정을 가지고 시스템에 로그인 할수 있다. Oracle 데이터베이스에 로그인 하기 위해서는 다음과 같다.</p><p>$ sqlplus <user>/<password></p><p>이 부분이 에러 메시지 없이 수행된다면, 성공적으로 Oracle 데이터베이스를 설치한 것이다.</p>

 

바. Oracle 데이터 베이스의 자동 실행

    <p>Oracle 데이터베이스의 자동 시작과 중지는 Oracle에서 제공하는 파일인 dbstart와 dbstop를 이용하여 설정할 수 있다. 이러한 파일들은 etc/oratab 파일의 존재여부에 의존한다.</p><p>/etc/oratab 파일의 형식은 다음과 같다.</p><p>SID:ORACLE_HOME:AUTO</p>

설정  예

    <p>#
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by the Oracle8 and SQL*Net install procedures.
    #
    # A colon, ‘:’, is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, ‘#’, are comments.
    #
    # Entries are of the form:
    # $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should, “Y”, or should not,
    # “N”, be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    linux:/oracle8/app/oracle/product/8.0.5:Y
    </p><p>init.d & rc.d</p><p>리눅스 시스템의 시작과정이나 종료과정을 변형하여 데이타베이스를 시작시키고 종료 시킬 수 있다. 이것은 매우 쉽지만, 어떠한 Linux(slackware, debian, redhat, etc)시스템을 사용하느냐에 따라  변경될 수 있다는 것을 필자는 지적한다. 이 문서에서는 Redhat Linux 5.2 에서 동작하는 예를 보여줄 것이다. 자신의 Linux 시스템에 따라 수정하기 위해서는 자신의 Linux 시스템 문서 자료를 참고한다. 우선, 우리는 /etc/rc.d/init.d 디렉토리에 있는 dbshut와 dbstart를 실행할 스크립트를 생성할 필요가 있다.</p><p>#!/bin/sh
    #
    # /etc/rc.d/init.d/oracle
    # Description: Starts and stops the Oracle database and listeners
    # See how we were called.
    </p><p>case “$1” in
    start)
     echo -n “Starting Oracle Databases: “
     echo “----------------------------------------” >> /var/log/oracle
     date +”! %T %a %D : Starting Oracle Databases as part of system up.”  >> /var/log/oracle
     echo “--------------------------------------------” >> /var/log/oracle
     su - oracle -c dbstart >> /var/log/oracle
     echo “Done.”
     echo -n “Starting Oracle Listeners: “
     su - oracle -c “lsnrctl start” >> /var/log/oracle
     echo “Done.”
     echo “”
     echo “--------------------------------------------” >> /var/log/oracle
     date +”! %T %a %D : Finished.” >> /var/log/oracle
     echo “--------------------------------------------” >> /var/log/oracle
     touch /var/lock/subsys/oracle
     ;;
    stop)
     echo -n “Shutting Down Oracle Listeners: “
     echo “-----------
    </p><p>---------------------------------” >> /var/log/oracle
     date +”! %T %a %D : ShutDown Oracle Databases as part of system down.” >> /var/log/oracle
     echo “--------------------------------------------” >> /var/log/oracle
     echo “Done.”
     rm -f /var/lock/subsys/oracle
     echo -n “Shutting Down Oracle Databases: “
     su - oracle -c dbshut >> /var/log/oracle
     echo “Done.”
     echo “”
     echo “--------------------------------------------” >> /var/log/oracle
     date +”! %T %a %D : Finished.” >> /var/log/oracle
     echo “-------------------------------------------” >> /var/log/oracle
     ;;
    </p><p>restart)
     echo -n “Restarting Oracle Databases: “
     echo “-------------------------------------------” >> /var/log/oracle
     date +”! %T %a %D : Restarting Oracle Databases as part of system up.” >> /var/log/oracle
     echo “-------------------------------------------” >> /var/log/oracle
     su - oracle -c dbstop >> /var/log/oracle
     su - oracle -c dbstart >> /var/log/oracle
     echo “Done.”
     echo -n “Restarting Oracle Listeners: “
     su - oracle -c “lsnrctl stop” >> /var/log/oracle
     su - oracle -c “lsnrctl start” >> /var/log/oracle
     echo “Done.”
     echo “”
     echo “--------------------------------------------” >> /var/log/oracle
     date +”! %T %a %D : Finished.” >> /var/log/oracle
     echo “-------------------------------------------” >> /var/log/oracle
     touch /var/lock/subsys/oracle
     ;;
    </p><p>*)</p><p>echo “Usage: oracle {start|stop|restart}”
    exit 1
    esac
    </p><p>이 파일이 실제적으로 정확히 당신의 시스템에서  데이터베이스를 중지하고 실행시키는지를 확인해야 한다. 에러메세지를 위한 /var/log/oracle인 log 파일을 확인하라.
    다음 명령들은 실행수준 2,3,4에 해당하는 데이테베이스를 실행시는 것을 확인 시켜줄 것이다.
    </p><p>$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
    $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
    $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
    </p><p>시스템을 재 부팅하거나, 재 실행 시킬 때에 데이터베이스를 중지시키기 위해서 우리는 다음과 같은 연결(link)이 필요한다.</p><p>$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # Halting
    $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # Rebooting
    </p>

 

마치는 글

    <p>이상으로 간략하게나마 Linux 상에서의 Oracle 데이터베이스 설치와 구동법에 대해서 알아보았다. 
    그림과 함께 좀 더 명확한 설치법을 소개해 줄 수도 있었지만, 이제 간단한 설치법 정도는 기타 책이나 오라클사 세미나에 가면 쉽게 구할 수 있으므로 기본 설치법에 사용자 등록, 자동 시작/종료를 추가해 첫 글을 마친다. 다음에는 간단한 sqlplus 사용법, Oracle SQL, pro-c 에대해서 알아보고 마지막으로 PHP3와 연동하는 것으로 이 글을 마칠까 한다.
    </p>


반응형