본문 바로가기

꿈(개발)

리눅스에서 설치!

 Fedora Core 6 에 Oracle 9i 설치기

fedora core 6 에 오라클을 설치만 해본다.

원문참조: http://ivan.kartik.sk/oracle/install_ora9_fedora.html

1. 오라클 계정을 생성한다.

# groupadd dba
# useradd -g dba oracle
# passwd oracle

2. 리눅스 커널 패러미터를 수정(추가)한다. (오라클 문서 및 리눅스 커널 옵션 참조)

# vi /etc/sysctl.conf

kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 128
kernel.shmall = 2097152
kernel.msgmnb = 65536
kernel.msgmni = 2878
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

변경 옵션이 반영될 수 있도록,
# sysctl -p 또는 (/etc/init.d/network restart 또는 리부팅을 한다)

3. 제한값을 수정한다. (최대 프로세스 갯수와 최대로 열수 있는 파일의 수)

# vi /etc/security/limits.conf

* - nproc 16384
* - nofile 16384

4. 오라클을 설치할 디렉토리를 생성한다.

# cd /opt
# mkdir oracle
# chown oracle:dba oracle

5. SUN 의 java 패키지(jre)를 설치한다.
 1.3.1.xx 버전을 설치한다. 이전버전이나 이후버전 모두 Oracle 9i와는 궁합이 맞지 않을 수 있다. 물론 대부분의 궁합은 설치시의 문제다.    1.3.1_20 내려 받기
 jre가 포함된 j2sdk 를 내려받았다. java 컴파일러가 필요없는 경우, jre 만 내려받으면 된다.

# chmod +x j2sdk-1_3_1_20-linux-i586.rpm.bin
# ./j2sdk-1_3_1_20-linux-i586.rpm.bin
# rpm -ivh jdk-1.3.1_20.i586.rpm

자바 환경을 시스템 전체에서 사용할 수 있도록 한다.

# vi /etc/profile.d/java.sh
JAVA_HOME=/usr/java/jdk1.3.1_20
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
# chmod +x /etc/profile.d/java.sh


6. Oracle 환경 설정 프로파일을 만든다.

# vi /etc/profile.d/oracle.sh

ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/920
ORACLE_SID=ORA92
LD_LIBRARY_PATH=$ORACLE_HOME/lib
ORACLE_OEM_JAVARUNTIME=$JAVA_HOME/jre/
PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH ORACLE_OEM_JAVARUNTIME PATH

# chmod +x /etc/profile.d/oracle.sh


7. Oracle 계정으로 로그인한다. (GUI 환경이 가능한 로그인으로..)

8. Oracle 9i 를 다운받는다.
  다운받기

$ gunzip ship_9204_linux_disk1.cpio.gz
$ gunzip ship_9204_linux_disk2.cpio.gz
$ gunzip ship_9204_linux_disk3.cpio.gz
$ cpio -idmv < ship_9204_linux_disk1.cpio
$ cpio -idmv < ship_9204_linux_disk2.cpio
$ cpio -idmv < ship_9204_linux_disk3.cpio 

  Disk1, Disk2, Disk3 의 세개의 디렉토리가 생성되게 된다.

9. Oralce 의 java 경로를 수정한다.

$ vi Disk1/install/linux/oraparam.ini
JRE_LOCATION=/usr/java/jdk1.3.1_20/jre

10. 오라클을 설치한다.

$ cd Disk1
$ ./runinstaller

다음과 같은 오류가 발생했다.
error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannon open shared object file: No such file or directory
관련 패키지를 설치한다.

# yum install compat-libstdc++-296 compat-libstdc++-33 compat-libgcc-296
# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2

다시 설치한다.
libXp.so.6: cannot open shared object file: No such file or directory

X11 라이브러리 이름이 변경되었다. 설치해 주자.
# yum install libXp libXp-devel  (devel 은 없어도 된다)

한글이 깨진다.

자바 AWT 한글 설정은 /usr/java/jdk1.3.1_20/jre/lib 디렉토리에
font.properties.ko 속성 파일을 만든다.
/usr/java/jdk1.3.1_20/jre/lib/fonts 디렉토리에 백묵폰트를 복사 또는 링크하고 fonts.dir 을 만든다.
자세한 내용 생략.

GUI 설치자를 따라서 오라클을 설치한다.

설치후, 데이타베이스 및 네트워크 설정은 오류가 난다.
다음 사항을 수정후 dbca, netca 등을 통해 별도 설정한다.

11. 설치된 Orace 의 JRE를 변경한다.

$ORACLE_HOME/JRE 를 삭제한다.
$ ln -s /usr/java/jdk1.3.1_20/jre JRE
$ su - root
# cd /usr/java/jdk1.3.1_20/jre/bin
# ln -s java jre
# cd /usr/java/jdk1.3.1_20/jre/bin/i386/native_thread
# ln -s java jre


12. 시스템 부팅시 Startup 할수 있게 수정한다.

# vi /etc/oratab
ora92:/opt/oracle/920:Y (N을 Y 로 변경한다.)

# vi /etc/init.d/oracle

#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME="/opt/oracle/920"
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle startup: cannot start"
        exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
    start)
        # Setting up kernel parameters
        #echo 100 32000 100 100 > /proc/sys/kernel/sem
        #echo 2147483648 > /proc/sys/kernel/shmmax
        #echo 4096 > /proc/sys/kernel/shmmni
        #echo 2097152 > /proc/sys/kernel/shmall
        #echo 65536 > /proc/sys/fs/file-max
        #ulimit -n 65536
        #echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
        #ulimit -u 16384

        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
        touch /var/lock/subsys/oracle
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
        rm -f /var/lock/subsys/oracle
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 start|stop|restart|reload"
        exit 1
esac
exit 0

# chmod +x /etc/init.d/oracle
# chkconfig --add oracle

dbstart 가 잘 안되는 경우....

$ORACLE_HOME/dbs/ 밑에 데이타베이스 init 파일이 생성되지 않는 경우가 있다.
만약 db 이름이 testDB 라면
init.ora 파일을 inittestDB.ora 로 복사후, 파일안에 db_name=testDB
로 변경후 dbstart 를 해준다.

원문 : http://www.netplug.org/ 

이 글은 스프링노트에서 작성되었습니다.