Oralce 8i install Guide
이 문서의 저작권은 서진우 님에게 있습니다. 무단 복사나 배포는 허용하지 않습니다.
....2000 년 11 월 8 일
리눅스에 Oralce 8i 를 설치 하기 위해서 그전 몇가지 준비 사항과 알아두어야 할 사항이 있다.
오라클 설치에는 기본적으로 다음과 같은 하드웨어 사양이 필요합니다.
메모리 : 적어도 128 M 이상은 필요합니다. 256 M 를 권장 합니다.
SWAP : 기본적으로 메모리의 3배를 권하고 있습니다.
CD-ROM : 일반 리눅스에서 지원하는 CD-ROM 이면 됩니다.
설치시 충분한 디스크 용량이 확보 되어 있어야 합니다. 오라클 설치시 사용되는 용량은 대략 다음과 같습니다.
Oracle 8i Enterprise Edition
Minimal : 660 M
Typical : 811 M
Custom : 811 M 이상
오라클 프로그램에 필요한 용량과 어느정도 크기의 DB file 이 생성 될것인지 예상하여 디스크 여유량을 충분히 확보하고 있어야 합니다. DB file의 생성 디렉토리는 설치 전 부터 잘 생각하셔서 정하셔야 합니다. 디스크 용량이 충분하면 물리적으로 파티션을 나 누어 오라클 프로그램과는 다른 파티션에 설치 하시는 것이 나중에 DB의 집중적인 I/O 경합을 피할수 있습니다. 이는 디스크 튜닝 부분에 관련된 문서를 살펴 보시길 바랍니다.
오라클 설치전에 다음 사항이 준비 되어 있어야 합니다.
Linux 6.x : kernel2.2.x glib2.1 이상인 리눅스 (Redhat 계열 권장) jre116_v5.x : Oracle_install_GUI 를 띄우기 위해서 필요합니다.
(이 사이트에서 쨓re 를 구할수 있습니다. http://www.blackdown.org) X_window : oralce 설치를 하기 위해서는 반드시 Xserver 가 설치되어 있어야 합니다.
메모리가 부족한 상황에서 SWAP 마저 충분하지 못할때 설치 도중에 에러가 발생한다.
이때는 커널 소스를 수정하여 자신의 시스템에 맞게 적절한 값으로 셋팅을 해야 합니다.
/usr/src/linux/include/asm/shmparam.h
_SHM_IDX_BITS
SHMMAX (maximum size of shared memory segment)
한개의 공유 메모리 세크먼트의 최대 크기로 바이트 단위이다. 메모리와 SWAP 의
합보다 조금 작게 잡아준다.
SHMMNI (minimum size of shared memory segment)
한개의 공유 메모리 세그먼트의 최소 크기이다. 기본값은 1
SHMSEG (maximum nunber of memory segments a user process can attach)
한개의 프로세서에 연결될 수 있는 공유 메모리 세그먼트의 최대값 기본값 10 /usr/src/linux/include/linux/sem.h
SEMMNI (maximum number of semaphore identifiers in the system)
SEMMSL (maximum number of semaphores in a set)
SEMMNS (maximum number of semaphores in the system)
다음 파일을 열어서 커널을 수정 하여 보자
/usr/src/linux/include/asm/shmparam.h
여기서 "#define SHMMAX 0x2000000." 부분이 보일것이다. 이는 리눅스의 기본 공유 세그 먼트로 32 M 를 의미한다. 자신의 시스템에 마추어 바꿀수 있도록 하자.
64 M : 0x40000000
96 M : 0x60000000
128 M : 0x80000000
위와 같이 시스템의 공유 메모리와 세머포어를 잘 고려하여 커널을 다시 생성한다.
참고로 허용 가능한 전체 공유 메모리는 SHMMAX * SHMSEG 로 정해 진다.
기본적으로 설치전에 이러한 사항을 알아두시길 바랍니다.
이제 본격적인 설치 부분에 들어 가겠습니다.
먼저 http://www.blackdown.org 에서 jre_1.1.6-v5-glibc-x86.tar.gz 을 다운 받습니다.
다른 version 을 설치 할시에는 다소 에러가 생길 확률이 높으니 처음부터 이 version 을 설치 하도록 합니다.
기본적으로 oracle 은 jre 가 /usr/local/jre 에 설치 되었다고 인식하기 때문에 이 위치
에 소스를 풉고 디렉토리를 jre 로 링크를 시킵니다.
[root@zzang911 /]# cd /usr/local
[root@zzang911 local]# tar xzvf jre_1.1.6-v5-glibc-x86.tar.gz
[root@zzang911 local]# ln -s /usr/local/jre116_v5 /usr/local/jre
root 권한으로 dba 그룹과 oracle 계정을 생성 시킵니다.
[root@zzang911 /]# groupadd -g 5000 dba
[root@zzang911 /]# adduser -g dba oracle
oracle install CD 를 넣고 마운트 시킵니다.
[root@zzang911 /]# mount /mnt/cdrom
oracle 계정으로 접속후 환경변수를 지정합니다.
[root@zzang911 /]# su - oracle
[oracle@zzang911 oracle]$ vi .bash_profile
--------------------------------------------------------------------------
ORACLE_HOME=/home/oracle/product/8.1.5
ORACLE_BASE=/home/oracle
export ORACLE_BASE ORACLE_HOME
ORACLE_SID=ORCL
export ORACLE_SID
NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
ORACLE_TERM=vt100
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/jdbc/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG ORA_NLS33 PATH LD_LIBRARY_PATH
export JAVA_HOME=/usr/local/jre
export PATH=$JAVA_HOME/bin:$PATH
DISPLAY 를 지정합니다.
[oracle@zzang911 oracle]$ export DISPLAY=system ip address:0.0
다시 root 권한에서 Xserver 접속을 허용할수 있도록 합니다.
[root@zzang911 /]# xhost +
oracle 계정으로 돌아가서 oracle install GUI 를 실행 시킵니다.
[oracle@zzang911 oracle]$ cd /mnt/cdrom/install/linux
[oracle@zzang911 linux]$ ./runIns.sh
그럼 무사히 인스톨러가 화면에 띄워집니다.
[설치화면 1]
환영 메세지 입니다. 다음을 누르세요.
[설치화면 2]
오라클 환경변수설정과 같은지를 확인하고 다음을 누릅니다.
[설치화면 3]
오라클 사용 그룹 지정 부분이다. 앞에 생성한 dba 를 지정한다.
[설치화면 4]
터미널을 띄워서 root 권한으로 login 후 /tmp/orainstall/orainstRoot.sh 를 실행 하고 재시도.
[root@zzang911 /root]# /tmp/orainstall/orainstRoot.sh 오라클 인벤토리 포인터 생성중 (/etc/oraInst.loc) 그룹명 변경중 /home/oracle/oraInventory to dba
위 메세지가 뜨면 재시도를 누르고 다음으로 넘어간다.
[설치화면 5]
Oracle8i Enterprise Edition 8.1.5.0.0 을 선택하고 다음.
[설치화면 6]
Custom 을 선택하고 다음.
[설치화면 7]
“언어 선택” 을 click 합니다.
[설치화면 8]
한국어를 선택합니다.
[설치화면 9]
프로그램이 설치가 됩니다.
[설치화면 10]
DB 생성 화면 입니다. 일단 여기서는 NO 를 선택합니다.
DB 생성 전에 몇가지 patch 를 해야 합니다.
[설치화면11]
아무것도 없다고 겁먹지 마시고 그냥 다음으로 넘어 갑니다.
[설치화면 12]
설치될 프로그램의 정보가 요약 되어 출력된 화면 입니다. 그냥 확인하시면 됩니다.
가끔 다음 화면에서 설치공간 부족이라는 메세지가 띄는 경우가 있는데 용량이 충분한 경우에는그냥 무시하고 다음으로 넘어갑니다.
[설치화면 13]
오라클 프로그램이 설치 됩니다.
[설치화면 14]
설치단계가 중간쯤 가면 위의 메세지 창이 뜨면 터미널에서 root 권한으로 root.sh 를 실행한다.
[root@zzang911 /root]# chmod 755 /home/oracle/product/8.1.5/root.sh
[root@zzang911 /root]# /home/oracle/product/8.1.5/root.sh
------------------------------------------------------------------------------
Running Oracle8 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= 502
ORACLE_HOME= /home/oracle/product/8.1.5
ORACLE_SID= ORCL
Enter the full pathname of the local bin directory: [/usr/bin]:/usr/local/bin
Creating /etc/oratab file...
Entry will be added to the /etc/oratab file by Database Configuration Assistant when a database is created Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
-----------------------------------------------------------------------------
시스템의 local bin 디렉토리를 지정하고 위 메세지가 나오면 확인을 누릅니다.
[설치화면 15]
프로그램의 설치가 완료 되었습니다. ok 를 누르고 다음으로 ..
[설치화면 16]
DB 생성 단계입니다. patch 작업을 위해 취소를 누릅니다.
패치 작업에 들어가겠습니다. 아래 단계는 patch 작업을 위해 몇개의 file 의 퍼미션을변경하는 작업입니다.
[root@zzang911 /root]# cd ORACLE_HOME/install/utl
[root@zzang911 utl]# ./linux.sh
마지막 메세지가 이 출력 되면 된다.
oracle patch 는 http://technet.oracle.co.kr 에서 구할수 있다.
[root@zzang911 /tmp]# tar xvzf linux_815patches.tgz
[root@zzang911 /tmp]# cd linux_815patches
패치 작업은 oracle 권한으로 실행한다.
[root@zzang911 linux_815patches]# su - oracle
[oracle@zzang911 linux_815patches]$ ./lnux_815patches.sh
이로써 oracle patch 작업이 끝난다.
이제 DB 를 설치 해 보도록 하자.
DB 생성은 ORACLE_HOME/bin 에 위치한 dbassist 을 실행함으로써 생성할수가 있다.
물런 oracle 권한으로 작업을 해야 한다.
[oracle@zzang911 bin]$ ./dbassist
아래와 같은 메세지가 나오면 그냥 OK 를 누르고 다음으로 넘어간다.
만약 아래와 같은 메세지가 나오면 display 설정을 다시 해준다.
-------------------------------------------------------------------------
DISPLAY not set.
Set DISPLAY environment variable, then re-run
-------------------------------------------------------------------------
[oracle@zzang911 bin]$ export DISPLAY= system ip address:0.0
[root@zzang911 root]# xhost +system ip address (root 권한으로 실행)
[oracle@zzang911 bin]$ ./dbassist
[설치화면 17]
Create a database 를 체크하고 다음.
[설치화면 18]
Custom 을 체크하고 다음. 환경 설정등을 사용자가 직접 정의할수 있다.
[설치화면 19]
Hybrid 를 선택한다.
[설치화면 20]
database 에 동시에 접속 가능한 사용자 수를 정의 한다. 라이센스에 따라 설정함.
[설치화면 21]
클라이언트에서 서버로의 접속 시 사용할 접속 모드를 결정한다. 일반적으로 동시 사용자 수가 중대형급 규모인 경우에는 Shared Service Mode 즉 Multi-Threaded Server 모드로 사용하는 것이 리소스 절약 측면에서 유리하며 소규모 환경인 경우 에는 Dedicated Server 모드를 사용하는 것이 무난하다. 셋팅시는 그냥 Dedicated Server Mode 로 설치 한다. 사용후 DB 접속량을 체크한후 변경하는것이 안정적이다.
[설치화면 22]
원하는 데이터 베이스 옵션을 선택한다.
[설치화면 23]
Global Database Name 에 원하는 DB 이름을 적는다. 보통 host_name 이나 SID 를 적는다.
[설치화면 24]
정상적인 한글 사용을 위해서 위와 같이 설정해 준다.
[설치화면 25]
콘트롤 파일에서 사용될 데이터 베이스 파일, 로그 파일, 로그파일 멤버의 최대 개수 를 설정한다. 잘 모르면 디폴트 값을 그대로 이용. 설치후에 변경 가능하다.
[설치화면 26]
각 테이블 스페이스 별로 크기 및 각종 공간 관련 파라미터를 수정한다. 잘모를 경우 디폴트 설정. 설치후 변경 가능.
[설치화면 27]
Redo Log 파일 관련 정보를 수정한다. 데이터 베이스를 기본 보다 크게 사용할 예정 이면 충분한 크기를 저정한다. 잘 모를 경우 디폴트 설정.
[설치화면 28]
특정 시간에 오라클 백그라운드 프로세스는 메모리에 있는 수정된 데이터 베이스 버 퍼를 실제 데이터 파일에 기록하는 데 이를 체크 포인트라고 하낟. 여기에서는 이 체크 포인트의 주기와 타임 아웃 시간을 설정한다.
리눅스용 Oracle8i 일 경우 Enable Archive log 부분은 체크하지 않도록 한다.
만약 체크할경우 DB 생성시 예상치 못한 에러가 생길 가능성이 있다.
역시 나중에 변경이 가능하다.
[설치화면 29]
SGA를 구성하기 위해 필요한 초기 파라미터 들을 설정한다. 일반적으로 SGA는 전체 가용한 메모리의 1/2 를 넘지 않도록 한다. 이전 화면의 Redo Log 파일을 변경했을 경우 Log Buffer Size 도 같은 비율로 변경하시길 바랍니다.
[설치화면 30]
시스템 문제 해결과 디버깅을 위한 Trace 파일이 저장되는 장소를 지정한다.
[설치화면 31]
계속해서 Database 를 작성할것인지 아니면 관련 파일들을 저장한 다음 다른 창에서 실행할 것인지를 결정한다. 특별한 경우가 아니라면 다음을 눌러 계속 진행하도록 한다.
숙련된 사용자라면 설정한 내용을 저장한 다음 해당 파일의 내용을 원하는 환경에 맞도 록 보다 세밀하게 수정한 다음 실행하는 것도 가능하다.
[설치화면 32]
YES 를 눌러 계속 진행
[설치화면 33]
데이터 베이스가 생성된다. 시스템에 따라 다르지만 대략 3시간 이상의 시간이 걸린다.
여기서 메모리가 부족하거나 앞의 설정치가 시스템 환경 제한치를 초과할경우 DB는 생 성 되지 않는다. 이때는 다시 DB를 생성해야 하는데 이르기 위해서는 몇가지 삭제해 주어야 할 파일이 있다 앞에 설정부분에서 생성시킨 디렉토리를 디렉토리를 찾아서 삭 제해 주어야 한다. 그렇지 않으면 종전에 생성된 DB 명과 다른 DB를 생성해야 할것이다.
조심스래 삭제하길 바란다. 삭제 부분은 다음과 같다.
[설치화면 34]
이로써 Oracle 설치가 끝났다. Ok 를 누르고 빠져 나오길 바란다.
설치후 ORACLE_HOME/dbs/init.ora 파일을 수정해야 한다.
다음 부분을 찾아서 주석을 제거하면 된다.
[oracle@zzang911 bin]$ cd ORACLE_HOME/dbs
[oracle@zzang911 dbs]$ vi initORCL.ora
-----------------------------------------------------------------------------
rollback_segments = (r01, r02, r03, r04)
-----------------------------------------------------------------------------
그런뒤 oracle 홈 디렉토리의 퍼미션이 755 인지 확인. 아니면 755 로 변경하라.
마지막으로 오라클을 시동 시켜 보도록 하자.
[oracle@zzang911 oracle]$ svrmgrl
-----------------------------------------------------------------------------
Oracle Server Manager Release 3.1.5.0.0 - Production
(c) Copyright 1997, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.5.0.2 - Production With the Partitioning and Java options PL/SQL Release 8.1.5.0.0 - Production
SVRMGR> connect internal
Connected.
SVRMGR> startup
ORACLE instance started.
Total System Global Area 71998864 bytes
Fixed Size 64912 bytes
Variable Size 54984704 bytes
Database Buffers 16777216 bytes
Redo Buffers 172032 bytes
Database mounted.
Database opened.
SVRMGR>
----------------------------------------------------------------------------
이와같이 아무 에러 메세지가 없이 Database opended 가 되면 성공적으로 오라클이 실행되어진것이다.
Net8 설정
원격에서의 모든 oracle 접속을 위해 TNS Listener 이 필요하다.
Listener 을 실행하기 위해서 ORACLE_HOME/network/admin/samples 안에 있는 listener.ora 와 tnsnames.ora 파일을 ORACLE_HOME/network/admin 에다 복사 한후 시스템 환경에 맞추어서 설정을 해야 한다.
먼저 listener.ora 파일은 oracle server에 필요한 파일이다.
listener.ora 설정
[oracle@zzang911 admin]# vi listener.ora
----------------------------------------------------------------------------
LISTENER =
(ADDRESS_LIST =
(ADDRESS= (PROTOCOL= IPC)(KEY= ORCL))
(ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY))
(ADDRESS= (PROTOCOL= TCP)(Host=210.220.69.135)(Port= 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= auction)
(ORACLE_HOME= /home/oracle/product/8.1.5)
(SID_NAME = ORCL)
)
(SID_DESC =
(SID_NAME = extproc)
(ORACLE_HOME = /home/oracle/product/8.1.5)
(PROGRAM = extproc)
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 30
TRACE_LEVEL_LISTENER = OFF
---------------------------------------------------------------------------
Host= 현 설치중인 시스템의 IP ADDRESS
GLOBAL_DBNAME= 앞 설치시 지정했던 global_dbname
ORACLE_HOME= 환경설정파일(.bash_profile)에 정해놓은 ORACLE_HOME SID_NAME = 환경설정파일(.bash_profile)에 정해놓은SID
tnsnames.ora 설정
tnsnames.ora 파일은 sqlplus 나 osa 등을 이용하여 원격에 있는 Oracle 서버에 접속할때 클라이언트 시스템에 설정이 되어 있어야 한다.
[oracle@zzang911 admin]# vi tnsnames.ora
---------------------------------------------------------------------------
connection_data =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = ORCL))
(CONNECT_DATA = (SID = extproc))
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host=210.220.69.135)(Port= 1521))
(CONNECT_DATA = (SID = ORCL))
)
ORCL_BEQ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = BEQ)(PROGRAM = /home/oracle/product/8.1.5)
(argv0 = oracleORCL)
(args = '(DESCRIPTION = (LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
(envs = 'ORACLE_HOME=/home/oracle/product/8.1.5,ORACLE_SID=ORCL')
)
위에 예문에서 변경 부분은 가운데 부분인
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host=210.220.69.135)(Port= 1521))
(CONNECT_DATA = (SID = ORCL))
)
이다..
ORCL: 원격 DB 서버의 Network Alias 명이다.
Host= 원격 Oracle 서버의 IP ADDRESS
SID = 원격 Oracle 서버의 SID
리스너를 기동하는 방법은 다음과 같다.
[oracle@zzang911 oracle]# lsnrctl start
-----------------------------------------------------------------------------
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 09-NOV-00 19:55:54
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /home/oracle/product/8.1.5/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 8.1.5.0.0 - Production System parameter file is /home/oracle/product/8.1.5/network/admin/listener.ora
Log messages written to /home/oracle/product/8.1.5/network/log/listener.log
Listening on: (ADDRESS=(PROTOCOL=IPC)(KEY=ORCL))
Listening on: (ADDRESS=(PROTOCOL=IPC)(KEY=PNPKEY))
Listening on: (ADDRESS=(PROTOCOL=TCP)(Host=210.220.69.135)(Port=1521))
Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=ORCL))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production
Start Date 09-NOV-00 19:55:54
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /home/oracle/product/8.1.5/network/admin/listener.ora
Listener Log File /home/oracle/product/8.1.5/network/log/listener.log
Services Summary...
ORCL has 1 service handler(s)
extproc has 1 service handler(s)
The command completed successfully
------------------------------------------------------------------------------
이와 같이 성공 메세지가 띄면 재대로 실행이 된것이다.
|