Oracle8 on Linux Enterprise Edition 설치와 Network 설정 작성 : 김성박 ( urstory@nownuri.net http://sunny.sarang.net ) 목적 : Linux 에 Oracle 8 on Linux Enterprise Edition 을 설치하고 SQL*Net 과 Windows 에서 Odbc 를 설정한다. +-----------------------------------------------------------------------------+ 참고한곳 http://technet.oracle.co.kr http://database.sarang.net http://technet.oracle.com 참고한글 : 오라클 메뉴얼 +-----------------------------------------------------------------------------+ 시스템 요구사항 메모리 : 최소 48MB RAM - 활용의 목적이 아닐 경우 32메가도 가능 스왑영역 : 일반적으로 RAM의 3배 크기의 스왑영역이 권장. 1GB이상의 RAM을 가진 시스템에서는 2배 크기의 스왑영역이 권장된다. 디스크 : 최소한 4개(At least four devices) : Oracle 소프트웨어 설치를 위해 하나, 나머지 세개는 OFA호환 데이터베이스를 생성하기 위해 사용된다. - 활용의 목적이 아닐 경우 한 개의 디스크라도 상관없다. - 활용의 목적이라면 최소 2개의 물리적 디스크 추천 (리눅스, 오라클 ) - 다운로드받은파일과 압축을 풀고 설치할 용량으로 최소 1기가 이상이 필요하다. Operating System : Linux 2.0.34 - 오라클의 리눅스 팀은 실제 2.0.33 이상이라고 한다. - 필자는 참고로 국내에서 유명한 알짜 리눅스 5.2를 사용하였으며 커널은 2.0.36을 사용하였다. System Libraries : GNU C Library, version 2.0.7 - 문서상에서는 2.0.7이상을 요구하고 있으나 오라클의 리눅스 개발팀으로 부터의 설명으로는 실제 2.0.6이상이면 된다고한다. Window Manager : 어떤 X 윈도우 시스템도 가능 - 솔라리스에서는 X-window 상에서 관리할수 있는 svrmgrm 이 있지만 Linux 에서는 현재 커맨드라인모드에서만 작동하는svrmgrl 만이 존재한다. root 로 하여야 할일 1. 다운로드 http://technet.oracle.com에서 반드시 엔터프라이즈 버젼의 오라클 리눅스를 다운 받는다. - 필자의 경험상으로 오라클은 0.0.01 의 버전차이도 상당한 차이(안정성 ,설치)가 있다. 실제로 엔터프라이즈 버전에서는 기존 install 상의 문제점 이대다수 해결이 되었다. 2. ora 라는 임시디렉토리를 만든다 # mkdir ora 3. /usr/src 에 다운로드 받은 Oracle8051EE_Inter.tgz 파일을 옮긴다. # cp mv /home/urstory/Oracle8051EE_Intel.tgz /usr/src/ora 3. Oracle8051EE_Intel.tgz을 /usr/src/ora에서 압축을 푼다. tar xvfz Oracle8051EE_Intel.tgz /usr/src/ora 상에 다음과 같은 파일과 디렉토리가 생성되었을 것이다. +------------------------------------------------------------------------------+ |[root@julia ora]# ls | |DST.LST network/ plsql/ | |Oracle8051EE_Intel.tgz nlsrtl/ precomp/ | |RELDESC.TXT ocommon/ rdbms/ | |bin/ oemagent/ slax/ | |ctx/ oracore/ sqlplus/ | |jdbc/ orainst/ svrmgr/ | |lib/ ord/ unix.prd | |mlx/ otrace/ unixdoc/ | +------------------------------------------------------------------------------+ 4. Create Mount Points 이제 오라클을 설치할 위치를 정하는 단계이다. 여기서는 /home/oracle에 오라클을 설치하는 것으로 가정하겠다. 이 위치에 오라클을 설치할 하드디스크 파티션을 마운트 시켜야한다. - 대부분의 사용자가 하나의 파티션에 리눅스를 설치할 것이다. 그렇지만 만일 두개 이상의 하드디스크 파티션을 이용할 것이라면 /etc/fstab의 내용을 적합하게 고쳐야 한다.각 파티션의 내용을 다음에 설명하도록 하겠다. 5. DBA group 생성 /etc/group 파일에 dba라는 그룹을 생성한다. 1) linux 유틸리티를 이용한 그룹생성 - 유틸리티를 이용하여서 생성하였다 하더래 도 dba 의 gid 는 vi나 cat 명령등으로 확인하여야 한다. # groupadd dba 2) 혹은 직접 vi edit 로 /etc/group을 편집할수도 있다. +----------------------------------------------------------------------------+ dba:x:502: <== 다음과 같은식으로 gid 가 중복이 안되도록 하여 삽입한다. gid +----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ 여기서 잠깐 *** - 리눅스 커널 설정 : 솔라리스의 경우에는 다음의 값들을 /etc/system 파일에서 설정해 주어야 하지만, 설정을 하지 않아 문제가 발생한적은 없었다. 기본 커널 상태로 놓고 인스톨하여도 무방하다. (레드헷의 디폴트 커널이든 다시 컴파일한 커널이든) -오라클8 서버의 SGA 구조를 수용하기위해 리눅스 커널의 Interprocess Communication (IPC) 파라메터들을 설정해야한다. 시스템이 SGA를 수용하기에 충분한 shared 메모리를 가지지 않았다면 데이터베이스를 실행할 수 없을 것이다. 1. 시스템의 현재 shared 메모리dhk 세마포어(semaphore) 세그먼트 상황을 알기 위해서 ipcs 명령을 사용한다. 2. 다음에 상응하는 커널 파라메터를 설정한다. 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 메모리 크기가 결정된다. 3. 아래에 설명된 세마포어와 shared 메모리 제어를 위한 파라메터들의 권장값들은 하나의 인스턴스에 최적화 되어 있으며 디폴트 initsid.ora 파일에 기반을 두고 있다. 만일 하나이상의 인스턴스를 설치하려거나 initsid.ora 파일을 수정하려면 여기있는 파라메터들의 값들을 높여 주어야 한다. Oracle사는 가능한한 이 값들을 높게 지정할 것을 권장하지만 너무 높은 값은 오히려 컴퓨터가 부팅하지 못하는 사태를 일으키기도 한다. 4. 공유 메모리와 세마포어 파라메터 1) SHMMAX = 4294967295 : 단일 공유메모리 세그먼트의 최대크기(바이트단위) 2) SHMMIN = 1 : 단일 공유메모리 세그먼트의 최소크기(바이트) 3) SHMIMNI = 100 : 공유메모리 지시자(identifiers)의 갯수 4) SHMSEG = 10 : 각 프로세스에 부여될 수 있는 공유메모리 세그먼드의 최대 갯수 5) SEMMNS = 200 : 시스템 내의 세마포어 갯수 6) SEMMNI = 70 : 세마포어 지시자(identifiers)의 갯수. SEMMNI은 동시에 생성될 수 있는 세마포어 갯수를 결정한다. 7) SEMMSL = PROCESSES 초기화 파라메터의 값과 같거나 크도록 : 하나의 세마포어 안에 존재할 수 있는 세마포어들의 최대 갯수. 오라클 프로세스들의 최대 갯수와 같아야 한다. +-----------------------------------------------------------------------------+ 6. 오라클 관리자 계정 생성 adduser 혹은 useradd 로 dba그룹에 속하는 유저 oracle을 생성한다. Login Name : oracle GID : dba의 gid를 참조한다. HOME : ORACLE_HOME과과 같으며 /home/oralce로 하겠다. Shell : /bin/sh, /bin/csh/, or /bin/ksh 가능. 이 문서는 /bin/bash로 가정한다. 1) adduser 명령으로 oracle user를 생성한다. # adduser oracle 2) vi /etc/passwd 명령을 사용하여 oracle user 의 설정값을 위에서 설명한것대 로 바꾼다. - 항목 5에서 설명한것처럼 dba gid 와 같아야 한다. +-----------------------------------------------------------------------------+ oracle:hkfPW0UVl2zHo:501:502::/home/oracle:/bin/bash Login Name:password:uid :gid : home : shell +-----------------------------------------------------------------------------+ 7. oratab 파일 생성 오라클 인스턴스에 대한 정보는 oracle 소유의 oratab 파일에 저장된다. 하지만 이 스크립트를 root로 실행해서 /var/opt/oracle 디렉토리에 oratab 파일이 생성되도록 한다. 위의 내용중의 /var/opt/oracle 디렉토리는 솔라리스용 오라클에 해당되는 말이다. 물론 리눅스용 오라클 설치 가이드를 보면 /var/opt/oracle디렉토리라고 되어있어서 그대로 번역하였지만, 실제 레드헷에서 인스톨해보면 /etc/oratab이 생성되는 것을 확인할 수 있다. 1) 실제 인스톨과정에서 oratab.sh을 실행하면 ORACLE_OWNER환경변수가 설정되어있 는지 묻고 있다. 따라서 ORACLE_OWNER을 다음과 같이 설정한다. #export ORACLE_OWNER=oracle +-----------------------------------------------------------------------------+ - ORACLE_OWNER을 설정하지 않았을 경우 나오는 메시지 [root@julia orainst]# /usr/src/ora/orainst/oratab.sh ************************************************************************* Following conditions should be met to run this script successfully. 1. Needs root permission to run this script. 2. Need to set ORACLE_OWNER enviornment variable to the user who installs oracle product. 3. This ORACLE_OWNER should be part of group "dba". If any of these conditions are not met, please re-run after satisfying these conditions. ************************************************************************* Is it OK to continue (Y/N)? [Y]: y ORACLE_OWNER is not set. Set and export ORACLE_OWNER, then restart oratab.sh execution. +-----------------------------------------------------------------------------+ 2) 7-1) 과 같이 설정을 하였다면 /usr/src/ora/orainst/oratab.sh를 실행한다. 위와 같이 실행해야 /etc/oratab 파일이 생성된다. +-----------------------------------------------------------------------------+ - 아래와 같이 oratab file 이 /etc 아래에 oracle.dba 권한으로 설정되어 있음을 알수가 있다. [root@julia orainst]# ls -la /etc/oratab -rw-rw-r-- 1 oracle dba 667 Apr 24 21:26 /etc/oratab +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ - ORACLE_OWNER을 설정한후 oratab.sh을 실행한다. [root@julia orainst]# /usr/src/ora/orainst/oratab.sh ************************************************************************* Following conditions should be met to run this script successfully. 1. Needs root permission to run this script. 2. Need to set ORACLE_OWNER enviornment variable to the user who installs oracle product. 3. This ORACLE_OWNER should be part of group "dba". If any of these conditions are not met, please re-run after satisfying these conditions. ************************************************************************* Is it OK to continue (Y/N)? [Y]: y The ORACLE_OWNER is set as: oracle Are these settings correct (Y/N)? [Y]: y Checking for "oracle" user id... Creating /etc/oratab file... +-----------------------------------------------------------------------------+ oracle user 로 할 일. 8. ~/.bash_profile의 수정 ( sh을 사용할 경우 .profile을 수정한다. redhat 리눅스를 기준으로 설명한다. ) +-----------------------------------------------------------------------------+ oracle 로 접속하여 다음과 같이 .profile을 만든다. RedHat에서는 .bash_profile 이다. 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 위의 경우는 "root 작업 4"의 "Create Mount Points"에서 이야기한 오라클을 설치할 경로로 /home/oracle인 경우이다. +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ 각 설정에 대한 설명 ORACLE_HOME : 오라클을 /home/oracle에 설치하기로 하였으므로 /home/oracle/app/oracle/product/8.0.5 로 지정된다. LD_LIBRARY_PATH : 오라클의 동적/정적 라이브러리의 경로를 나타내는 환경변수로 Pro*C나 PHP등을 사용할때 중요하게 적용된다. ORACLE_SID : 오라클 인스턴스의 이름이다. 영문자로 3-4글자로 정해준다.필자는 인스턴트의 이름을 linux 라고 지었다. 그 외의 환경변수는 예제에 나와 있는 데로 하면 된다. 지역언어설정 환경변수 NLS_LANG은 모든 인스톨이 끝나고 설명하도록 하겠다. 환경변수 갱신 위와 같이 .profile내용을 변경하였다면 # . .bash_profile 혹은 # source .bash_profile 하여 환경변수 내용을 업데이트한다. 또는 oracle계정으로 다시 로그인한다. +-----------------------------------------------------------------------------+ 9. 요약 Oracle8 서버를 설치하기위해 필요한 환경설정 사항을 Oracle Installation Guide의 내용 그대로 요약한 것이다. +-----------------------------------------------------------------------------+ 환경설정요소 요구사항 Linux Kernel Parameters +-----------------------------------------------------------------------------+ SHMMAX 4294967295 Note: 이 설정은 얼마나 많은 shared 메모리가 오라클이나 시스템에 의해 사용/요구되는지에 영향을 주는 것은 아니며 단지 최대한 허용되는 크기를 나타낼때 사용될 뿐이다. 이 설정은 시스템 커널 리소스에 영향을 주지 않는다. SHMMIN 1 SHMMNI 100 SHMSEG 10 SEMMNS 200 SEMMNI 70 SEMMSL PROCESSES 초기화 파라메터와 같거나 큰값. Mount Points (Storage Devices) 디렉토리 구조상 동일 레벨의 최소한 4개의 마운트 포인트(mount points). 소프트웨어를 위해 1개, OFA 호환 데이터 베이스를 위해 3개. ( 설명에서는 /home/oracle 로 하였다. ) 그룹 OSDBA role을 위해 LINUX에 group을 생성하여야 하며 보통 dba라 명해진다. OSOPER role은 OSDBA와 동일한 그룹에 속하게 되거나 다른 그룹으로 만들 수 도 있다. 계정 Oracle system을 설치하고 업그레이드하기위한 계정. 이 계정은 반드시 OSDBA 그룹에 속해야 한다. (보통 oracle이란 계정을 만들어 사용한다.) /usr/local/bin Oracle 사용자들이 오라클을 사용하기 위한 디렉토리로 디폴트는 /usr/local/bin이다. oratab 파일 Oracle instances에 대한 정보를 담고 있다. 파일 생성 권한 umask를 022로 설정 DISPLAY 서버에 연결할 컴퓨터의 이름과 모니터를 설정 (X에서의 설정) LD_LIBRARY_PATH Oracle 제품들이 사용할 shared libraries에 대한 경로로 반드시 $ORACLE_HOME/lib 를 포함해야한다. ORACLE_BAE 필수는 아니며, OFA호환 설치를 위해 권장사항이다. ORACLE_HOME Oracle이 설치될 디렉토리를 설정한다. ORACLE_SID 인스턴스 이름과 Oracle서버의 sid를 지정한다. 동일 기계에서 운영되는 Oracle 인스턴스끼리는 유일해야한다. 영문 4자 이하를 권장 ORACLE_TERM 문자 모드와 Motif 모드의 오라클 제품을 위해 필요 ORA_NLS33 US7ASCII이 아닌 문자셋으로 데이터베이스를 생성하기위해 필요 PATH 반드시 다음을 포함해야한다.: $ORACLE_HOME/bin, /bin, /usr/bin, /usr/local/bin SRCHOME installer를 실행하기 전에 이 환경변수가 설정되어 있지 않음을 확인할 것. 만일 SRCHOME이 설정되면 Installer는 설치할 소프트웨어를 설정된 디렉토리에서 찾는다. TWO_TASK Oracle8 Server를 설치하기 전에 정의되지 않았음을 확인할 것 TMPDIR 20MB이상의 여유공간이 있고 oracle 계정이 쓰기 권한이 있는 디렉토리. 디폴트는 /usr/tmp 이다. 실제적인 Oracle 의 설치 1. 인스톨러 실행 1) oracle 로 로그인 한다. - 절대 root 로 인스톨로를 실행하면 안된다. 2) oracle 설치 디렉토리로 이동 # cd /usr/src/ora/orainst 3) orainst를 실행한다. # ./orainst 를 실행한다. - 화면에서 [TAB]키, 화살표키, 스페이스바를 이용하여 항목을 선택할 수 있다. 2. 검은 배경의 설치화면이 나오면 Custom Install을 선택한다. 3. 아래와 같은 오라클에 간략한 readme를 읽고 다음으로 넘어갑니다. 4. 처음 설치하는 것이므로, (o) Install, Upgrade, or De-Install Software을 선택한다. 5. 새롭게 인스톨할것이므로 Install New Product - Create DB Objects을 선택한다. 5. Mount Point를 설정한다. root user 로 할 일 5. 번에서 설정한것처럼 mount point를 /home/oracle 로 설정한다. 6. .bash_profile에서 설정한것처럼 $ORACLE_HOME 디렉토리를 설정한다. 7. ORACLE_BASE 와 ORACLE_HOME을 설정한다. 8. log 파일이 남을 위치를 설정한다. 9. Install from CD-ROM을 선택하여야 한다. 10. ORACLE_SID를 .bash_profile에서 설정한것과 같이 linux 로 선택한다. 11. NLS 의 설정 - 여기에서는 일단 ALL language를 선택한다. 12. install 이 끝이 난후 root.sh을 실행하라는 메시지가 출력된다. 반드시 install 후에는 root.sh을 실행하여야 한다. 13. Software Asset Manager에서 설치한 부분을 선택합니다. 여기에서는 모든 부분을 설치한다고 가정을 합니다. Pro*C 와 같은 Precompiler 는 자신이 필요없다고 생각하면 선택을 하지 않으셔도 됩니다. 14. 13)에서 처럼 Install을 선택한후 몇가지 사항에 대하여 OK를 한후 OSOPER group (dba)를 설정한다. 15. 생성할 DB Object를 선택한다. - Filesystem-Based Database을 선택한다. 16. Database Mount Points를 정한다. - 설치도중에 3개의 mount points를 기입하라고 하는데 물리적으로 분리된 하드가 3개 존재하면 가장 좋지만 실제 PC에서는 힘든일이다. 이렇게 3곳으로 데이터를 분리하는 이유는 데이터베이스가 하드 디스크로의 읽기/쓰기를 하는 과정에서 경합을 줄이고 에러 및 문제의 발생시 자연스런 복구를 위한 것이다. 하지만 오라클 프로그램과 동일한 하드디스에 밖에 인스톨할 공간이 없다면 여기에 모두 동일한 경로를 적어주면 된다. 필자도 오라클을 설치할 때 /home/oracle에 오라클 프로그램을 설치하고 데이터 파일을 위한 3개의 마운트 포인트도 /home/oracle로 설정하였다. 17. Character Set 설정 - US7ASCII 로 설정하였지만, 나중에 Character 은 바꿀수 있다.보통은 KO16KSC5601 로 설정한다. 18. National Character Set 설정 19. System password 의 설정 (보통 manager 라고 password를 입력한다. ) 20. sys password 의 설정 ( manager 로 password를 설정. ) 21. dba password 의 설정 ( no 라고 설정한다. ) 22. TNS Listener Password 의 설정 23. Configure MTS and start SQL*Net listener 설정은 no 로 한다. 24. Control files 의 위치 확인. 25. 기본적인 데이터베이스 관련 파일의 위치와 용량의 확인 26. JDBC 셋의 선택 (default 로 선택을한다. ) 27. Default tablespace for Oracle ConText Cartridge users and data dictionary 의 선택 28. CTX Temporary Tablespace을 선택한다. 29. CTX demo table을 설치할 것을 선택한후에, Oracle Document를 설치할것에 대하여 셋팅한다. 디렉토리를 설정한후 pdf ,html , both 어떤 형식으로 설치할것인지 묻는데 그때에는 자신이 원하는 항목중에서 한가지를 선택하면 된다. 30. 이제 인스톨이 시작되기 시작하고 그래프가 올라가기 시작한다. 하염없이 기다리자 -_-; 31. 설치완료 화면. 32. 설치 검증 설치가 모두 끝났다면 $ORACLE_HOME/orainst 디렉토리에 생성된 root.sh을 root 계정으로 실행 시킨다. 1) root로 로그인한다. 2) cd $ORACLE_HOME/orainst 3) ./root.sh +-----------------------------------------------------------------------------+ [root@julia orainst]# ./root.sh Running Oracle8 root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /home/oracle/app/oracle/product/8.0.5 ORACLE_SID= linux Are these settings correct (Y/N)? [Y]: y Enter the full pathname of the local bin directory [/usr/lbin]: /usr/local/bin Checking for "oracle" user id... ORACLE_HOME does not match the home directory for oracle. Okay to continue? [N]: y Replacing existing entry for SID in /etc/oratab... The previous entry is now in a comment. Leaving common section of Oracle8 root.sh. +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ - /etc/oratab 아래에 다음과 같은 내용이 추가되었다. *:/home/oracle//app/oracle/product/8.0.5:N linux:/home/oracle/app/oracle/product/8.0.5:N +-----------------------------------------------------------------------------+ Oracle Database 의 구동 1. oracle user 로 login. 2. svrmgrl을 실행시킨후 database를 가동한다. +-----------------------------------------------------------------------------+ [oracle@julia oracle]$ svrmgrl - svrmgrl 의 실행 Oracle Server Manager Release 3.0.5.0.0 - Production (c) Copyright 1997, Oracle Corporation. All Rights Reserved. Oracle8 Enterprise Edition Release 8.0.5.1.0 - Production With the Partitioning and Objects options PL/SQL Release 8.0.5.1.0 - Production SVRMGR> connect internal - internal 접속 Connected. 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 ORA-01102: cannot mount database in EXCLUSIVE mode SVRMGR> exit - svrmgrl 의 종료 Server Manager complete. +-----------------------------------------------------------------------------+ 3. lsnrctl 명령을 이용하여 Oracle listener을 가동시킨다. - lsnrctl start : Oracle listener 의 가동 - lsnrctl stop : Oracle listener 의 멈춤 +-----------------------------------------------------------------------------+ [oracle@julia bin]$ lsnrctl start 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. Starting /home/oracle/app/oracle/product/8.0.5/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 8.0.5.0.0 - Production System parameter file 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)) 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 +-----------------------------------------------------------------------------+ - 오라클 리스너가 제대로 실행이 되지 않을 경우 listener.ora, tnsnames.ora을 알맞게 편집한다. ( /home/oracle/app/oracle/product/8.0.5/network/admin 위치하여 있다. ) 다음은 tcp/ip 프로토콜을 기준으로 하여서 listener.ora를 알맞게 편집한것이다. +-----------------------------------------------------------------------------+ # # 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) (PROGRAM = extproc) ) ) STARTUP_WAIT_TIME_LISTENER = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = OFF +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ # # 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 ) 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') ) ) +-----------------------------------------------------------------------------+ 4. 이제 다시 lsnrctl start 명령으로 실행하여 Oracle listener을 실행한다. 이제 sqlplus을 실행하여 접속이 되나 확인을 하자. test 용으로 id : scott password : tiger 가 죄공됨을 알수 있다. 이미 설치중에 system 과 sys 의 password 는 직접 입력하였으므로, system 혹은 sys로 접속이 가능한지 확인할수 있다. 5. sqlplus 로 접속이 확인 되었으면 이제 listener을 종료한후 database를 종료시켜 보자. +-----------------------------------------------------------------------------+ - listener 의 종료 [oracle@julia admin]$ lsnrctl stop LSNRCTL for Linux: Version 8.0.5.0.0 - Production on 26-APR-99 22:18:35 (c) Copyright 1997 Oracle Corporation. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=linux)) The command completed successfully +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ - oracle database 의 shutdown [oracle@julia admin]$ svrmgrl Oracle Server Manager Release 3.0.5.0.0 - Production (c) Copyright 1997, Oracle Corporation. All Rights Reserved. Oracle8 Enterprise Edition Release 8.0.5.1.0 - Production With the Partitioning and Objects options PL/SQL Release 8.0.5.1.0 - Production SVRMGR> connect internal Connected. SVRMGR> shutdown Database closed. Database dismounted. ORACLE instance shut down. SVRMGR> exit Server Manager complete. [oracle@julia admin]$ +-----------------------------------------------------------------------------+ Oracle SQL*Net 설정. 1. Oracle Net8 Assistant을 실행하여 Oracle 8 SQL*Net을 설정한다. + 버튼을 눌러 linux Oracle 에 접속가능하도록 새로운 Service Name을 추가한다. 2. Oracle Net8 에 새롭게 추가할 Service Name을 추가한다. 3. TCP/IP를 선택한다. 4. 데이터베이스가 설치된 서버의 ip(혹은 도메인)을 알맞게 적은후 Next 버튼을 누른다. 5. Oracle SID를 설정한다. Oracle Database를 설치할 때 설정한 sid를 적어준다. 6. 이제 SQL*Net 이 잘 설정이 되어있는지 Test Service 버튼을 누른후, test( demo ) 용으로 기본제공되어지는 Scott/tiger 로 접속test를 하여본다. - 아래와 같이 successful 이 나온다면 SQL*Net 은 바르게 설치된 것이다. 이제 Done 버튼을 빠져나가보면 SQL*Net 에 linux.World 라는 이름이 하나 추가된 것을 볼수 있을 것이다. 7. C:\orant\NET80\ADMIN\tnsnames.ora을 직접 edit 로 수정하여 SQL*Net을 설정할수 있다. ( sid 가 linux, imap 두가지인 이유는 2개의 데이터 베이스가 설치되어있기 때문이다. ) +-----------------------------------------------------------------------------+ # C:\ORANT\NET80\ADMIN\TNSNAMES.ORA Configuration File:C:\orant\net80\admin\ tnsnames.ora # Generated by Oracle Net8 Assistant LINUX.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) (CONNECT_DATA = (SID = linux)) ) IMAP.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(Port = 1521)) (CONNECT_DATA = (SID = imap)) ) ODB.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) (CONNECT_DATA = (SID = linux)) ) BEQ-LOCAL.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = BEQ)(PROGRAM = oracle80)(ARGV0 = oracle80imap)(ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')) (CONNECT_DATA = (SID = imap)) ) +-----------------------------------------------------------------------------+ Oracle ODBC 설치 1. Oracle ODBC를 설치하기 위하여는 기본적으로 Oracle Installer 가 설치되어 있어야 하며, SQL*Net 이 설정되어 있어야한다. Oracle ODBC 드라이버는 SQL*Net을 기초로 작동하기 때문이다. ( Oracle Installer 는 설치되어있는 것으로 가정한다. ) 2. http://www.oracle.com에서 Oracle ODBC 드라이버를 다운로드 받는다. - Oracle ODBC 8.0.5.3을 예제로 한다. 3. 다운로드받은 ora8053.exe를 실행한다. - 자동으로 압축풀릴 디렉토리를 지정한다. 기본은 c:\temp 이다. - 압축이 풀리면, C:\TEMP\orainst\win32\install\ C:\TEMP\orainst\win32\odbc32\ 와 같은 디렉토리가 생긴다. 4. Oracle Installer를 실행한후, From... 버튼을 누른후 C:\TEMP\orainst\win32\ install\ 에 있는 Nt.prd를 선택한후 열기 버튼을 누른다. 5. Oracle ODBC Driver 8.0.5.3.0을 선택한후 Install 버튼을 누른다. 잠시후 인스톨이 끝이나면 exit 하여 나온다. 6. 제어판에서 ODBC 아이콘을 더블클릭한다. 7. Add 버튼을 누른후, Oracle ODBC Driver 8.00.0500을 선택한후 마침버튼을 누른다. 8. ODBC 설정후 OK 버튼을 누른다. 이제 linux 에 설치한 Oracle 에 접속할수 있는 Odbc 가 설치되었다.