세이박스

Installing Oracle 9i Release2 on Red Hat 리눅스 9

데이타베이스
 
Installing Oracle 9i Release2 on Red Hat 리눅스 9
안녕하세요 훠니입니당...(이전 올해안에는 닉네임에서 제이름 닉넴으로 바뀠음당...^^)
본 문서는 Red Hat 9 에서 Oracle 9i (Release 2)를 설치하는 문서입니다.
배포판마다 설치하는데 차이가 있으므로 우리나라 배포판(와우, 한컴)으로 설치하신다면 그 쪽의 참고 문서를
보시기 바랍니다.
본 문서는 Roko Roic의 문서를 한글로 번역하여 작성한 문서입니다.
(물론 제 나름대로의 허접한 의역도 들어있습니다...^^)

이 문서대로만 설치하신다면 무난히 오라클 9i를 설치하실 수 있을 것입니다.
단, Oracle 9i Release 1은 RedHat 9에서 확인되지 않을 오류들이 많습니다.
반드시 Oracle 9i Release 2버전을 설치하시기 바랍니다.
 

오라클 설치를 위한 용량 선정
기본적으로 오라클을 설치할 때는 약 2G정도의 용량이 필요합니다.(Enterprise기준)
하지만 넉넉하게 2.5G정도의 용량을 설정해 주는 것이 좋을 듯 합니다.
DB를 생성하는데 필요한 용량은 약 1.5G정도면 될 듯합니다.
오라클 디렉토리와 오라클의 DB를 저장하는 파티션은 따로 구성하는 것이 좋습니다.
(성능과 직결되는 문제이겠지만 여기서는 큰 시스템이 아니라면 오라클 파티션과 DB 파티션의 2개 정도만으로
나누는 것도 좋을 듯 합니다.)
이 문서에서는 /opt 밑에 오라클이 설치가 되어 있습니다만 그렇다면 /opt 파티션의 용량이 당연히 커야겠죠?
적당하게 파티션의 용량을 잡아주시기 바랍니다.
(리눅스의 파티션을 잡는 것은 따로 설명하지는 않겠습니다...리눅스 문서를 참고하시면 되겠죠? ^^)
참고로 저는 /oracle (오라클 홈디렉토리) , /oradata (오라클 DB) 파티션을 생성해서 각각 4G씩 주었습니다.
(여기 문서와는 약간 설정이 다릅니다.)
오라클 그룹과 유저의 생성
오라클을 인스톨 할 때 필요한 그룹과 유저를 생성합니다.
root의 권한으로 다음의 명령어를 실행합니다.
[root@miniroko]# groupadd dba
[root@miniroko]# groupadd oinstall
[root@miniroko]# useradd -g oinstall -G dba oracle
[root@miniroko]# passwd oracle
위 명령어들을 실행하고 oracle의 패스워드 설정까지 마치면 그룹과 유저의 설정이 끝납니다.

디렉토리 생성
다음과 같은 명령을 실행하여 디렉토리를 생성하고
오라클 유저에게 /opt/ora9에 인스톨 할 수 있는 권한 및 퍼미션을 줍니다.
[root@miniroko]# mkdir -p /opt/ora9/product/9.2
[root@miniroko]# mkdir /var/opt/oracle
[root@miniroko]# chown oracle.dba /var/opt/oracle
[root@miniroko]# chown -R oracle.dba /opt/ora9
[root@miniroko]# chmod 755 /var/opt/oracle
오라클 설치시 필요한 TOOL과 library들
인스톨 시에 필요한 소프트웨어들에 대한 리스트입니다.
설치가 되어 있는 것도 있으니 확인을 하시고 없는 것들은 설치해 주시면 됩니다.
모든 rpm은 레드햇 리눅스 9i CD 1~3번의 RPMS 폴더에 있습니다.
찾아서 패키지를 설치하시기 바랍니다.
gcc-3.2.2-5
cpp-3.2.2-5
glibc-devel-2.3.2-11.9
binutils-2.13.90.0.18-9
compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm
RPM설치 명령어 : rpm -Uvh

$ rpm -UVh package_name
커널 파라미터 설정
레드햇 리눅스의 커널 파라미터는 대략적으로 설정되어 있습니다.
따라서 오라클을 인스톨하기 위해서는 커널 파라미터의 수정이 필요합니다.
/etc/sysctl.conf 파일을 열어서 맨 마지막 부분에 다음의 내용을 추가해 주십시요

kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem    = 250 32000 100 128
fs.file-max   = 65536
 
net.ipv4.ip_local_port_range = 1024 65000
 

다음의 내용을 /etc/security/limits.conf 파일을 열어서
맨 마지막 부분에 다음의 내용을 추가해 주십시요

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
수정된 커널 파라미터가 설정되도록 Reboot합니다.

만약 현재 리눅스를 reboot 할 수 없는 상황이라면 다음과 같이 임시로 커널 파라미터를 수정하여 오라클을
인스톨 할 수 있습니다.
[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem
[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax
[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni
[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall
[root@miniroko]# echo 65536 > /proc/sys/fs/file-max
[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
 
오라클 유저의 환경변수 설정
Log in as the oracle user:
$ su - oracle
기본적으로 bash 쉘을 권장합니다.
oracle 유저 홈디렉토리의 .bashrc 파일에 다음의 환경변수를 추가해 주시기 바랍니다.
# oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=xterm
 
# Use old Linuxthreads with floating stacks instead of
# the new Native POSIX Thread Library (NPTL)
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
 
# Edit paths
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
 
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
export NLS_LANG=AMERICAN
Red Hat 9에서는 커널이 기존의 커널과는 다르게 Native POSIX Thread Library를 사용합니다.
이 상태에서 오라클을 설치하면 시스템이 Hang이 걸리는 현상이 발생하므로 기존의 커널과의 호환을
위해서 LD_ASSUME_KERNEL 환경변수를 설정하면 됩니다.
 
Installer 실행
오라클을 인스톨 하기 위해서는 적어도 512M의 물리 메모리가 필요하며
최소한 400M의 swap이 필요하다고 되어 있습니다만...실제로는 256M의 메모리에도 설치는 가능하며
128M도 가능한 걸로 알고 있습니다.(단지 128M에서는 고려를 좀 해 보심이...^^...상당히 느리죠...)
256M 또는 128M에서 설치할 시 out of memory현상이 나타나는데
이때는 startup force를 사용하여 오라클을 재기동시키면 됩니다.

혹시 swap이 모자라는 경우에는 다음과 같이 temporary Linux swap area를 생성해 주면 됩니다.
(저는 물리 메모리 384M, swap은 512로 잡았습니다. CPU는 800Mhz이구요)
$ dd if=/dev/zero of=tmp_swap bs=1k count=900000
$ chmod 600 tmp_swap
$ mkswap tmp_swap
$ swapon tmp_swap
 
오라클 인스톨 후에는 다음과 같이 임시 공간을 해제해 주십시요
$ swapoff tmp_swap
$ rm tmp_swap
 
로컬에서 X윈도우에서 오라클 인스톨러를 기동하기 위해서 다음과 같이 xhost명령어를 사용합니다.
$ xhost +127.0.0.1
 
 
[주의 사항]
유닉스나 리눅스에서는 윈도우와는 달리 마운트가 되면 CD가 eject되지 않습니다.
그러므로 cd 명령으로 CD-ROM이 마운트된 디렉토리로 가서 오라클 인스톨러를
실행하면 나중에 CD를 교체시 CD가 eject되지 않습니다.
따라서, 항상 pwd로 확인해서 현재 있는 곳이 CD-ROM 디렉토리가 아닌 것을 확인하고
다음 명령어를 수행하시면 됩니다.
$ su - oracle
$ cd /
$ /mnt/cdrom/install/linux/runInstaller
Installation 수행시에 나오는 link에러 수정
일반적인 오라클 설치에 대해서는 여기서 언급하지는 않겠습니다. 다들 잘 알고 계실거라 믿구요...^^
여기서는 인스톨이 진행되고 맨 마지막에 발생하는 에러들에 대해서 어떻게 수정하면 되는지에 대해
알아보도록 하겠습니다.
인스톨이 거의 끝나고 linking하는 과정에서 다음의 부분에서 에러가 발생합니다.
다음은 그 에러와 수정하는 방법입니다.

1) ins_oemagent.mk 링크 에러
    **************************************************************
    Error invoking targetinstall
    of makefile /usr/ora9/product/9.2/network/lib/ins_oemagent.mk
    Press 'Help' for more information.
    Press 'Retry' to try again.
    Press 'Ignore' ignore this error and go on.
    Press 'Cancel' to stop this installtion.

    [Help] [Retry] [Ignore] [Cancel]
    **************************************************************
    Figure 1. ins_oemagent.mk errors
 
    위의 화면이 나오면 일단 ignore를 선택합니다. 인스톨이 끝난 후에 다시 fix 할 수 있습니다.
2) imakefile error
    ************************************************
    Error in invoking target install of
    makefile /usr/ora9/product/9.2/ctx/lib/ins_ctx.mk
    Press 'Help' for more information.
    Press 'Retry' to try again.
    Press 'Ignore' ignore this error and go on.
    Press 'Cancel' to stop this installtion.
 
    [Help] [Retry] [Ignore] [Cancel]
    ************************************************
    Figure 2. makefile error
 
    위의 화면이 나오면 새로운 터미널을 하나 띄우고 오라클 유저로 로그인합니다.
    [oracle@miniroko oracle]$ cd $ORACLE_HOME/install
    [oracle@miniroko install]$ tail make.log
 
위의 tail make.log를 실행하면 다음의 같은 부분이 있을 것입니다.
gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/  /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9
이 부분을 복사하여 맨 끝에 -ldl 부분을 첨가합니다.
그리고 $ORACLE_HOME/bin 로 이동하여 다음과 같이 실행합니다.

[oracle@miniroko]$ cd $ORACLE_HOME/bin
[oracle@miniroko bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/ 
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl
이렇게 한 후 다시 화면으로 돌아와 ignore를 선택합니다. 그러면 인스톨이 진행됩니다.
database를 생성하는 Database Configuration 화면이 나옵니다. 여기서 DB를 생성하지 마시고
맨 밑에 있는 Software Only를 선택합니다. 이 부분도 인스톨 후에 fix되고 나면 다시 dbca를 기동하여
database를 생성할 수 있으므로 여기서는 일단 Software Only를 선택해서 그냥 넘어 갑니다.
 
Post-Installation
아까 위에서 언급되었던 에러들에 대해서 fix하는 방법입니다.
새로운 터미널을 열어서 오라클 유저로 로그인 후 다음과 같이 실행합니다.
[oracle@miniroko oracle]$ cd $ORACLE_HOME/network/lib
[oracle@miniroko lib]$ make -f ins_net_client.mk install
 
$ORACLE_HOME/ctx/lib/ins_ctx.mk 파일을 편집하여 13-14번째 라인을 다음과 같이 수정합니다.
ctxhx: $(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)
to
ctxhx: $(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
다음 명령어를 수행하여 다시 make를 실행

[oracle@miniroko lib]$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
 
수고 많이 하셨습니다.^^  여기까지 오라클 9i Release 2의 모든 설치를 마쳤습니다.
이젠 오라클을 기동해 보는 순서만 남았죠?
다음과 같이 실행하시면 됩니다.
 
Starting and Stopping the Database
8i에서 제공하던 svrmgrl은 9i에서는 더 이상 제공되지 않는 다는 것은 알고 계시죠?
sqlplus의 기능에서 흡수했습니다. 다음과 같이 수행하시면 됩니다.
 
[root@miniroko]# su - oracle
[oracle@miniroko oracle]$ lsnrctl start
[oracle@miniroko oracle]$ sqlplus /nolog
 
SQL*Plus: Release 9.2.0.1.0 - Production on ?et Svi 29 13:52:34 2003
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
 
Total System Global Area   93393176 bytes
Fixed Size                   450840 bytes
Variable Size              75497472 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.

SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
To shut down the server:
[root@miniroko]# su - oracle
[oracle@miniroko oracle]$ lsnrctl stop
[oracle@miniroko oracle]$ sqlplus /nolog
 
SQL*Plus: Release 9.2.0.1.0 - Production on ?et Svi 29 13:55:32 2003
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
SQL> connect / as sysdba
Connected.
 
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
 
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production