원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


오라클 9.2.0.4 설치( EntePrise AS 3.0)

1. OS 준비 세팅

1-1 필요한 파일셋

gcc-3.2.2-5
cpp-3.2.2-5
glibc-devel-2.3.2-11.9
binutils-2.13.90.0.18-9
pdksh-5.2.14-21
없는 패티키(인스톨후)-- rpm 다운후 설치한것들.
ompat-gcc-7.3-2.96.118.i386.rpm : 설치됨
compat-libgcj-7.3-2.96.118.i386.rpm  : 설치됨 (redhat 9 용)
compat-libgcj-devel-7.3-2.96.118.i386.rpm  : 설치됨 (redhat 9 용)
libncursers  : 설치 안됨
nss_db-compat-2.2-20.i386.rpm  : 설치암됨

compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3.2.96.122
compat-libstdc++-devel-7.3-2.96.122
openmotif21-2.1.30-8.i386.rpm
setarch-1.3-1

다른 것은 다 있었느나 compat-db-4.0.14.5 가 없어서 rpmfind.net에서 찾아서
설치를 했다.

1-2. 계정 및 그룹생성 시스템 설정
# groupadd dba
# adduser -g dba oracle

# vi /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


# vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

만약 리붓팅하지 않을려면 다음과 같이한다.
# echo 250 32000 100 128 > /proc/sys/kernel/sem
# echo 536870912 > /proc/sys/kernel/shmmax
# echo 4096 > /proc/sys/kernel/shmmni
# echo 2097152 > /proc/sys/kernel/shmall
# echo 65536 > /proc/sys/fs/file-max
# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

오라클은 최소 512MB의 메모리와 400MB의 스왑 공간을 필요로 한다. 따라서 부족하다면
임시적으로 스왑공간을 아래와 같이 만들어준다.

# dd if=/dev/zero of=tmp_swap bs=1k count=900000
# chmod 600 tmp_swap
# mkswap tmp_swap
# swapon tmp_swap

스왑해제
# swapoff tmp_swp
# rm tmp_swap

1-3 환경파일 세팅

export PS1="[\u@\h \w]"
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
#export TMPDIR=$ORACLE_BASE/tmp
#export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG='AMERICAN_AMERICA.KO16KSC5601'
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORAClE_HOME
/oracm/lib:/lib:/usr/lib:/usr/local/lib
export LD_ASSUME_KERNEL=2.4.21(여기서 이것은 커널 버전에 맞게 설정을 한다.)
export THREADS_FLAG=native
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/oracm/bin:
/usr/java/jre1.3.1_16/bin(이것은 꼭있어야 될지 모르겠지만 설치한 자바 패스를 설정)
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

참고로 LANG 은 설정하지 않는다.

2. 프로그램 다운 로드 및 설치

2-1. 프로그램 다운 및 압축풀기

http://otn.oracle.com/software/products/oracle9i/htdocs/linuxsoft.html
적당한곳에 3개의 파일을 받아 압축을 푼다.
# zcat lnx_920_disk1.cpio.gz | cpio -idmv <-- http로 받지 않았을 때
# gunzip  < lnx_920_disk1.cpio.gz.cpio.gz <-- http로 받았을 때
# cpio -idmv < lnx_920_disk1.cpio.gz.cpio.gz

2-2 설치전 확인 사항

jre 1.3.1을 받아서 설치를 한다.

runinstaller을 실행 시키면 아래와 같은 에러가 생길 경우
$ ./runInstaller
$ Initializing Java Virtual Machine from /tmp/OraInstall2003-04-13_09-56-16PM/jre/bin/java. Please wait...
Error occurred during initialization of VM Unable to load native library:
/tmp/OraInstall2003-04-13_09-56-16PM/jre/lib/i386/libjava.so: symbol
__libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
Cause
Bug 3006854
Fix
Download and apply the Patch 3006854 from Metalink before starting the installation of Oracle 9.2.0.1
or 10.1.0.2 on a Red Hat Advanced Server 3.0
그래서 recommed 패치 받는곳으로가서 3006854 이 패치 아이디로 패치를 찾으니 나와서 다운을 받아서
note에서 나온대로 실행을 하고난 뒤 ./runinstaller 실행을 시키니 실행이 되었다..
(이거 알아내는데 4시간 걸림 ^^ 얼마나 기뻣는지..^^)


아래의 에러는 무시를 한다.
Font specified in font.properties not found
[--symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific]

에러 때문에 oui 한글 폰트가 깨져서 나오는데 아무런 상관이 없으니 그냥 설치하면 된다

해결 ; LANG=C로 세팅을 환경파일에 세팅을 하면 된다.

2-3.설치
난 설중 아무런 에러가 안생겼지만 다른 버전에서 생기는 에러일때 해결 방법

언어설정에 korean을 추가하고 설치는 custem으로하여 +sqlplus를 체크하고 넘어간다.
설치 중 두번의 에러메세지가 나온다.
Error in invoking target install of makefile
/usr/ora9/product/9.2/network/lib/ins_oemagent.mk

위의 경우 무시하고 지나간다.

Error in invoking target install of makefile
/usr/ora9/product/9.2/ctx/lib/ins_ctx.mk
위의 경우는 X terminel을 하나 더 띄우고 oracle 계정으로 아래순서대로 실행한다.
$ cd $ORACLE_HOME/install
$ 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 을 추가한 후 엔터한다.

100% 설치후 루트권한으로 아래 명령을 실행시키라는 메세지가 뜬다.
/home/oracle/product/9.2.0.1/root.sh


참고 )
한가지 더 설정한것이 있는데 이것은 없어도 될것 같지만 아래에 적어 놓는다
# mv /usr/bin/gcc /usr/bin/gcc323
# mv /usr/bin/g++ /usr/bin/g++323

Create symbolic links.
# ln -s /usr/bin/gcc296 /usr/bin/gcc
# ln -s /usr/bin/g++296 /usr/bin/g++
참고)패치 3006854(root사용자에서 스크립트을 실행 하기만 하면 된다.)


USER=`whoami`
if [ $USER != root ]; then
  echo "Must be root to run this script, please login as root and re-try"
  exit
fi

# see if libcwait.so is already being loaded
if [ -f "/etc/ld.so.preload" ] && [ -n "`grep libcwait /etc/ld.so.preload`" ]; then
  echo "Patch has already been applied"
  exit
else
  echo "Applying patch..."
fi

cat << EOF |
#include <errno.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
pid_t
__libc_wait (int *status)
{
  int res;
  asm volatile ("pushl %%ebx\n\t"
          "movl %2, %%ebx\n\t"
          "movl %1, %%eax\n\t"
          "int \$0x80\n\t"
          "popl %%ebx"
          : "=a" (res)
          : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0));
  return res;
}
EOF
gcc -O2 -shared -fpic -xc - -o /etc/libcwait.so
# Check we built libcwait.so
if [ -f "/etc/libcwait.so" ]; then
  echo "/etc/libcwait.so" >>/etc/ld.so.preload
  echo "Ensuring permissions are correctly set..."
chown root.root /etc/libcwait.so /etc/ld.so.preload
  chmod 755 /etc/libcwait.so
  chmod 444 /etc/ld.so.preload
  echo "Done."
  echo "Patch successfully applied"
else
  echo "Patch installation failed, Please fix errors and try again."
fi

참고) 한글폰트 꺠지는 경우
2-1) JDK 1.1.8 의 설치



http://www.blackdown.org 에서 다운로드 받은 jdk118_v3-glibc-2.1.3.tar.gz2을 설치한다. 이때 해당 파일은 /usr/local 에 있다고 가정한다.



user> su - root

root> cd /usr/local

root> bunzip2 jdk118_v3-glibc-2.1.3.tar.gz2

root> tar xvfz jdk118_v3-glibc-2.1.3.tar

root> ln -s /usr/local/jdk118_v3 /usr/local/java

export LD_ASSUME_KERNEL=2.2.5

그럼 잘 되네요...

^^;
번호 제목 글쓴이 날짜 조회 수
35 캐릭터셋 확인하는 쿼리 조인상 2010.05.12 8121
34 [9i feature] DB_CACHE_ADVICE / V$DB_CACHE_ADVICE 에 대해서 조인상 2010.05.12 8091
33 Red Hat Enterprise Linux AS release 3 (Taroon) 기반에서 오라클 9.2.0 설치하기 조인상 2010.05.12 8081
32 Oracle Flashback 복구 조인상 2010.05.12 7985
31 테이블의 특정 컬럼에 걸려있는 제약 조건의 확인 조인상 2010.05.12 7978
30 골든 5.7 버전 데모 file 조인상 2010.05.12 7864
29 Redhat Linux 8.0 에 Oracle 9i install 조인상 2010.05.12 7616
28 테이블스페이스 사용현황 확인하는 스크립트 조인상 2010.05.12 7568
27 오라클 10g OCP 라이센스 업그레이드 정보 조인상 2010.05.12 7519
26 [oerr] ORA-19206: Invalid value for query or REF CURSOR parameter 조인상 2010.05.12 7479
25 오라클 온라인백업스크립트 구성 예 조인상 2010.05.12 7442
24 time-based recovery 조인상 2010.08.24 7417
23 캐릭터셋 변경방법 조인상 2010.05.12 7356
22 9i 에서의 언두세그먼트 관리 조인상 2010.05.12 7339
21 오라클 튜닝 - 옵티마이저 조인상 2010.05.12 7332
» Linux 32bit ( EntePrise AS 3.0) - 오라클 9.2.0.4 설치 조인상 2010.05.12 7326
19 AIX5.2 + 9.2.0.1.0 install + 9.2.0.5.0 patch 조인상 2010.05.12 7286
18 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 조인상 2010.05.12 7147
17 INCREMENTAL, CUMULATIVE, COMPLETE EXPORT & IMPORT 조인상 2010.05.12 7144
16 오라클 8.1.7 -> 7.3.4 로 DB data 이전 조인상 2010.05.12 6922
서버에 요청 중입니다. 잠시만 기다려 주십시오...