본문 바로가기
데이타베이스

레드햇 엔터프라이즈4에 오라클9i(9.2.0.4)설치

by 세이박스 2008. 10. 27.
반응형
 
Installing Oracle9iR2(9.2.0.4) on RH AS4
에러없이 설치까지 일주일 삽질했습니다. -_-;;
 
목차
[1] oracle 다운로드 및 압축해제
[2] oracle 유저생성 및 권한부여
[3] pre-install RPM
[4] jdk 설치
[5] 공유메모리 및 세마포설정
[6] 오라클사용자 초기화파일구성
[7] 오라클 셋업
[8] 에러조치
[9] TIP & TECH
 
[1] oracle 다운로드 및 압축해제

zcat ship_lnx_920_disk1.cpio.gz | cpio -idmv
zcat ship_lnx_920_disk2.cpio.gz | cpio -idmv
zcat ship_lnx_920_disk3.cpio.gz | cpio -idmv
Disk1, Disk2, Disk3 이 생기고 생긴 파일들은 /home/oracle로 이동.
mv Disk* /home/oracle/
 
참고. 오라클사제공압축해제 방법
Directions to extract the files
   1. Run "gunzip <filename>" on all the files.  
       예). gunzip ship_9204_linux_disk1.cpio.gz
   2. Extract the cpio archives with the command "cpio -idmv < <filename>"  
       예). cpio -idmv < ship_9204_linux_disk1.cpio
 

[2] oracle 유저생성 및 권한부여
 
groupadd dba
useradd oracle -g dba
passwd oracle
mkdir /home/oracle
mkdir /home/oracle/oracle
mkdir /home/oracle/oracle/product
mkdir /home/oracle/oracle/product/9.2.0
pwd /home/oracle
chown -R oracle.dba /home/oracle
chmod 777 /home
chmod 777 /home/oracle
 
mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle/
chmod 755 /var/opt/oracle/
 
[3] pre-install RPM
 
링크에러를 없애기 위해 삽질을 거듭한 끝에 RPM에서 결론에 도달.
 
패키지 설치 유무 확인
rpm -aq | grep packagename으로 알수 있습니다.
예). rpm -aq | grep compat-db-4.1.25-9
 
compat-db-4.1.25-9
compat-gcc-32-c++-3.2.3-47.3
compat-gcc-32-3.2.3-47.3
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-46.1
java-1.4.2-gcj-compat-1.4.2.0-26jpp
nss_db-compat-2.2-28
gnome-libs-1.4.1.2.90-44.1.i386.rpm
xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm
libaio-0.3.102-1
libaio-devel-0.3.102-1
libpng10-1.0.13-13.i386.rpm
sysstat-5.0.1-2.i386.rpm
openmotif21-2.1.30-9.i386.rpm
pdksh-5.2.14-24.i386.rpm
 
아래 두 파일은 메타링크 p4198954_21_LINUX.zip 패치 안에 들어있습니다.
compat-oracle-rhel4-1.0-5.i386.rpm
compat-libcwait-2.0-2.i386.rpm
RPM설치시 의존성에 걸리는건 당연히 같이 설치.
rpm -iUvh packagename 명령어로 설치
 
SuLinux의 경우 설치 패키지
SuLinux는 Centos기반이므로 SuLinux에 없는 패키지는 Centos에서 가져와서 설치
http://ftp.superuser.co.kr/pub/centos/4.2/os/i386/CentOS/RPMS/
  compat-db-4.1.25-9.i386.rpm
  compat-gcc-32-3.2.3-47.3.i386.rpm
  compat-gcc-32-c++-3.2.3-47.3.i386.rpm
  compat-glibc-2.3.2-95.30.i386.rpm 
  compat-glibc-headers-2.3.2-95.30.i386.rpm
  compat-libgcc-296-2.96-132.7.2.i386.rpm
  compat-libstdc++-296-2.96-132.7.2.i386.rpm
  compat-libstdc++-33-3.2.3-47.3.i386.rpm
  openmotif-2.2.3-10.RHEL4.1.i386.rpm
  openmotif-devel-2.2.3-10.RHEL4.1.i386.rpm
  openmotif21-2.1.30-11.RHEL4.5.i386.rpm
  xorg-x11-deprecated-libs-devel-6.8.2-1.EL.13.20.i386.rpm
  gnome-libs-1.4.1.2.90-44.1.i386.rpm
  nss_db-compat-2.2-29.i386.rpm
  java-1.4.2-gcj-compat-1.4.2.0-27jpp.noarch.rpm
  sysstat-5.0.5-1.i386.rpm
  pdksh-5.2.14-30.3.i386.rpm
  libpng10-1.0.16-1.i386.rpm
  libaio-0.3.103-3.i386.rpm
  libaio-devel-0.3.103-3.i386.rpm
 
 
* 사실 몇몇은 빼도 설치되겠지만 에러나는것보단 나을것 같아서
깔아버렸슴니다 ㅡ.,ㅡ;
* 레드햇 9에서도 설치해봤는데 아래 rpm들 안깔아도 잘 깔리데요 ` `;
xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm
compat-libgcc-296-2.96-132.7.2
openmotif21-2.1.30-8.i386.rpm
 
 
- gcc296 과 g++296 을 다음과 같이 심볼릭 링크 합니다.
mv /usr/bin/gcc /usr/bin/gcc323
mv /usr/bin/g++ /usr/bin/g++323
ln -s /usr/bin/gcc296 /usr/bin/gcc
ln -s /usr/bin/g++296 /usr/bin/g++
 
 
 

[4] jdk 설치
 
다운로드 :
RPM in self-extracting file (j2sdk-1_4_2_08-linux-i586-rpm.bin, 33.64 MB)
chmod +x를 주고 실행후
rpm -Uvh 로 설치
/usr/java/j2sdk_1.4_2_08 에서 /usr/local/j2sdk_1.4_2_08로 이동후
$/usr/local/에서 ln -s j2sdk_1.4_2_08 java
/etc/profile에 다음내용을 설정
# For Java
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:.:$PATH
 
[5] 공유메모리 및 세마포설정
/etc/sysctl.conf 에서
kernel.sysrq=0
라인아래에
kernel.shmmax=1073741812(또는 최대값으로 2147483648)
kernel.sem=250 32000 100 128
설정후 재부팅
oracle 설치시 dbca 실행을 위한 공유메모리 설정
[root@domain oracle]# cat /proc/sys/kernel/shmmax
33554432
[root@domain oracle]# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
[root@domain oracle]# cat /proc/sys/kernel/shmmax
1073741824
- 위와같이 공유메모리가 증가되었음을 알수 있습니다.

[6] 오라클사용자 초기화파일구성
oracle$ vi .bash_profile
 
# Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9 and
# for Red Hat Enterprise Linux Advanced Server 3 (RHEL AS 3) !!
# Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
export LD_ASSUME_KERNEL=2.4.1
# Oracle Environment
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/demo:/lib:/usr/lib
export LD_LIBRARY_PATH
export TEMPDIR=/tmp
export EDITOR=vi
#set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/JRE/bin

# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin
#vi /etc/ld.so.conf
/lib
/usr/lib
/usr/local/lib => 세가지 경로 추가
#reboot
 
[7] 오라클 셋업
 
x-windows에 oracle계정으로 로그인
oracle에서 ./runinstaller
언어가 깨지거나 실행이 안될경우는 다음명령 실행.
unset LANG
Unix Group Name -> oinstall 또는 dba
sid-> 일반적으로 ora9
Global Database Name -> ora9.도메인
문자셋은 [6] 사용자초기화 파일에서 설정한것과 같아야 한다.
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
설치중간에 orainstRoot.sh 팝업이 나올시
새창에서 su -root
cd /tmp
./orainstRoot.sh실행
완료후 진행
설치진행 100%후
       */oracle/ora92/root.sh 실행 대화상자 팝업
       $su - root
       #cd /oracle/ora92
       #./root.sh
시스템 기본 디렉토리 묻는다. /usr/bin 으로 설정

[8] 에러조치
 
agent configuration assistance가 정상적으로 설치되지 않고
다음과 같은 에러를 낼때,
Parameter "orahome"=/home/oracle/product/9.2.0
Parameter "nodeinfo"=NO_VALUE
agnet serivce failed
오라클 DB운용과는 상관없는 부분이지만 설치에러0%를 위하여 설치후 패치할것입니다.
일단 넘어감.
 
인스톨러종료후
$ agentctl start  했을시
 
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 07-JAN-2004 19:11:14
 
Copyright (c) 2003 Oracle Corporation.  All rights reserved.
 
Starting Oracle Intelligent Agent.../opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156:  1855 Segmentation fault      nohup $ORACLE_HOME/bin/dbsnmp $*
>>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156:  1868 Segmentation fault      nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156:  1880 Segmentation fault      nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/product/9.2.0/bin/dbsnmpwd: line 156:  1892 Segmentation fault      nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
 
정상구동시는 이상없이 설치가 된 경우이고 위와 같을경우
메타링크에서 p3238244_9204_LINUX.zip  다운로드 받고 다음 작업 진행.
반드시 Instance 종료후 작업 진행
 
p2617419_10102_GENERIC.zip(Opatch파일)을 이용
p3238244_9204_LINUX.zip 패치실행후
 
orlace계정으로
$ find $ORACLE_HOME -name "*.mk" | xargs grep -l dbsnmp
/opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk
/opt/oracle/product/9.2.0/network/lib/env_oemagent.mk
$
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
$ agentctl start
agent started.

[9] TIP & TECH
 
- 설치로그보기 -
tail -f $ORA_HOME/app/oracle/product/orainventory/logs/installactions.log
 
- oracle 삭제 -
$ORACLE_HOME 디렉토리에 있는 설치화일을 전부삭제
/etc밑에 orainst.loc, oratab 삭제
/usr/local/bin/oraenv 파일삭제
/tmp디렉토리에서 관련파일삭제
elete the /etc/oratab file. If using 9iAS delete the /etc/emtab file also.
# rm /etc/oratab /etc/emtab
끝 재설치 하면됩니다.
 
 
 
[10] 오라클9i 부팅할때 자동으로 시작하기

먼저 오라클을 설치한 디렉터리로 가자. 나의 경우는 /opt/oracle/product/9.2.0/bin/ 인데 이곳에 dbstart 와 dbshut 가 있다. 이중 dbstart 를 vi /etc/rc.d/rc.local (리눅스의 초기부팅설정화일 DOS의 Autoexec.bat 같은 것)에 적어주면 부팅할 때 자동으로 오라클을 실행한다. 그러나 이렇게 하는 건 start만 가능할 뿐이다. 종료까지 하려면 스크립트파일을 작성해야만 한다. /etc/oratab 은 오라클을 자동 시작 기능을 사용할지 여부를 결정하는 파일이다. 디폴트 값은 No 인데 Yes로 바꿔주면 dbstart, dbshut 를 사용할 수 있다.

vi /etc/oratab 라고 쳐보자. 맨 아래에 나의 경우 SID 이름을 ora1 이라 주었기 때문에
ora1:/opt/oracle/product/9.2.0:N 이 있을 것 인데 문장 끝에 N 이 보일 것 이다. 이걸 Y로 고치자. ora1:/opt/oracle/product/9.2.0:Y 이렇게 말이다.

그 다음 SID를 위한 초기화 파일을 복사해야만 한다. 나의 SID 이름이 ora1 이므로 initora1.ora.642002224936라는 파일이 /opt/oracle/admin/ora1/pfile/ 에 존재할 것 이다. 초기화 파일명은 SID 이름에 따라 달라지는 것이다. 예로 만일 SID 를 test 로 했다면 inittest.ora.642002224936가 있을 것 이다.
/opt/oracle/admin/test/pfile/initora1.ora.642002224936 을
/opt/oracle/product/9.2.0/dbs/ 디렉터리로 initora1.ora 로 rename 해서 옮긴다.
자 이제 마지막으로
su - oracle -c /opt/oracle/product/9.2.0/bin/dbstart (오라클 시작 !)
su - oracle -c /opt/oracle/product/9.2.0/bin/lsnrctl start (리스너 시작 !)
이라고 쳐서 실제로 가동되는지 test 해보자. (위의 내용을 /etc/rc.d/rc.local 에 입력하면 컴퓨터가 처음 부팅할 때 자동으로 오라클과 리스너를 시작한다. 단 리스너의 경우엔 스크립트에 입력할 때 따옴표로 묶어야 start 명령이 적용된다. 이렇게
su - oracle -c /opt/oracle/product/9.2.0/bin/“lsnrctl start”)
참고) 오라클 리스너 설정법
먼저 vi /etc/services를 해서 오라클을 위한 포트를 등록해준다.
Xtel 1313/tcp # French minitel
LISTENER 1521/tcp # Oracle Listener by TCP
LISTENER 1521/udp #Oracle Listener by UDP
Support 1529/tcp #GNATS, Cygnus bug tracker
위의 밑줄 친 부분을 추가해 주면 된다.
그리고 /opt/oracle/product/9.2.0/bin/에 있는 netmgr을 실행해서 리스너를 설정한다.(아마 디폴트 값이 있을 것이다. 그냥 사용해도 무방하다.) 이렇게 하면
/opt/orqacle/product/9.2.0/network/admin/ 디렉터리에 listener.ora 가 있을 것이다. 확인하라.
이제 마지막으로 /opt/oracle/product/9.2.0/bin/에 리스너 구동 프로그램인 lsnrctl이 있다. oracle계정으로 로그인 한 후 lsnrctl start를 쳐 리스너를 시작하자. 중지할 때는 lsnrctl stop 이다. 자 이제 외부에서 접속이 가능할 것이다.
http://www.sqlgate.com 에서 sqlgate 를 구해 외부에서 시험 접속을 해보자.
반응형