1. root로 로그인하여 oracle 사용자 계정을 만들고 dba 그룹에 포함시킨다.
$ su -
# groupadd dba
# useradd -g dba oracle
# passwd oracle
2. 시스템 파라메터 추가.
/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
/etc/sysctl.conf 파일을 변경하였으면 다음과 같이 sysctl -p 명령을 실행하거나 시스템을 리부팅해야만 한다.
# sysctl -p
/etc/security/limits.conf 파일에 다음 항목을 추가한다.
oracle soft nporc 2047
oracle hard nporc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/home/oracle/.bash_profile 파일에 다음 항목을 추가한다.
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/920
export ORACLE_SID=DBA
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_OEM_JAVARUNTIME=/usr/java/jre1.3.1_19
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME
export ORACLE_OWNER=oracle
* ORACLE_BASE에 설정한 디렉토리는 임의로 변경해서 사용해도 된다.
* ORACLE_SID 는 자신이 하고 싶은 이름으로 설정하면 된다.
* ORACLE_OWNER=oracle 여기서 oracle은 1번에서 생성한 게정을 써준다.
.bash_profile을 저장하고 새 환경 변수를 로드한다.
$ cd /home/oracle
$ . .bash_profile
4. Oracle 기본 디렉터리를 생성한다.
$ su -
# cd /opt
# mkdir oracle
# chown oracle:dba oracle
다운로드 및 설치
================
1. rpm 패키지를 다운로드하고 설치한다.
필요한 패키지가 설치되어 있는지 확인하는 방법은 다음과 같다.
$ su -
# rpm -q binutils compat-libgcc-296 compat-libstdc++-296 compat-libstdc++-33 \
cpp gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel \
libgcc libstdc++ libstdc++-devel make openmotif21 setarch libXp
이번에는 간단하게 yum을 이용하여 패키지를 설치하였다.
# yum install cpp (대부분 설치되어 있으며, 이미 설치되어 있는 경우, 실행 할 필요 없습니다.)
# yum install gcc (glibc-headers와 glibc-devel 패키지가 같이 설치됩니다.)
# yum install compat-libgcc-296
# yum install compat-libstdc++-33
# yum install compat-libstdc++-296
compat-gcc는 반드시 compat-gcc-7.3-2.96.126.i386.rpm으로 설치해야 한다.
만약, 2.96 버전이 아닌 3.X 버전이 설치되어 있는 경우, 다음과 같이 패키지를 삭제한다.
# rpm -e compat-gcc
다음 링크에서 compat-gcc 패키지를 다운로드한다.
http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/compat-gcc-7.3-2.96.126.i386.rpm다운로드 한 패키지를 설치한다.
# rpm -ivh compat-gcc-7.3-2.96.126.i386.rpm
GCC4 컴파일러를 GCC2 컴파일러로 교체한다.
# cd /usr/bin
# mv ./gcc ./gcc4
# mv ./gcc296 ./gcc
2. JRE를 다운로드하고, 설치한다.
썬 웹사이트(http://java.sun.com/j2se/1.3/download.html)에서 j2re1.3.1_11 또는 그 이상(j2re1.3.1_XX)의 버전을 다운로드한다.
여기서는 j2re-1_3_1_20-linux-i586.bin을 사용했다.
# chmod +x j2re-1_3_1_20-linux-i586.bin
# ./j2re-1_3_1_20-linux-i586.bin
# mv jre1.3.1_20 /opt/
3. 오라클 웹사이트(http://otn.oracle.com/kr)에서 오라클 소프트웨어를 다운로드하고 압축을 해제한다.
$ 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 디렉터리의 Disk1/install/linux/oraparam.ini에서 JRE_LOCATION 변수를 변경한다.
JRE_LOCATION=/opt/jre1.3.1_20
* 위에서 mv를 사용해서 jre1.3.1_20을 옮기지 않았다면 /usr/java/jre1.3.1_20 이렇게 써주어야한다.
4. 오라클을 설치한다.
* 설치를 하기 전에 로그아웃을 한 다음에 oracle 계정으로 X-window로 로그인 한다.
그러면 xhost + 설정을 하지 않아도 된다. oracle 계정으로 설치를 시작한다.
$ cd Disk1
$ ./runInstaller
여기서, Universal Installer가 표시되지 않고, 다음과 같은 에러가 발생하게 된다.
Initializing Java Virtual Machine from /tmp/OraInstall2007-02-28_09-43-30PM/jre/bin/java. Please wait...
/tmp/OraInstall2007-02-28_09-43-30PM/jre/bin/i386/native_threads/java: error while loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
이런 경우, 다음과 같이 조치한다.
$ su -
# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2
$ cd Disk1
$ ./runInstaller
* 설치중간에 orainstRoot.sh 팝업이 나올시
새창에서 su -root
# cd /tmp
# ./orainstRoot.sh실행
완료후 계속 진행
* 설치진행 100%후
/oracle/ora92/root.sh 실행 대화상자 팝업
$su - root
#cd /oracle/ora92
#./root.sh
시스템 기본 디렉토리 물을때 엔터를 누른다.
5. Universal Installer의 설치 과정에서 링크 단계로 넘어가기 전에 다음 파일을 변경해주어야 한다.
그렇지 않으면, 링크 단계(18%)에서 더 이상 설치는 진행되지 않고 무한 대기하게 된다.
$ORACLE_HOME/bin/gennttab 파일(설치 과정 중, 약 20%가 넘어가면 생성된다)을 다음과 같이 변경한다.
변경전
------
LIB='echo ${TtoLIB} | sed 's/ /\\
/g' | grep "^${T}:" | awk -F: '{print $2}''
INI='echo ${TtoLIB} | sed 's/ /\\
/g' | grep "^${T}:" | awk -F: '{print $2}''
BAS='echo ${TtoLIB} | sed 's/ /\\
/g' | grep "^${T}:" | awk -F: '{print $2}''
변경후
------
LIB='echo ${TtoLIB} | sed 's/ /\n/g' | grep "^${T}:" | awk -F: '{print $2}''
INI='echo ${TtoLIB} | sed 's/ /\n/g' | grep "^${T}:" | awk -F: '{print $2}''
BAS='echo ${TtoLIB} | sed 's/ /\n/g' | grep "^${T}:" | awk -F: '{print $2}''
6. 링크 단계가 종료되면, 네트워크 설정, 데이터베이스 생성, 에이전트, 아파치 서버 설정 단계로 넘어가지만,
모든 작업이 실패하게 된다.
네트워크 설정 및 데이터베이스 생성 작업을 다시 수행하려면 다음과 같이 설정하고 재시도한다.
설치화면은 닫지 않고 그대로 둔다.
$ mv $ORACLE_HOME/JRE $ORACLE_HOME/JRE.bak
$ ln -s /opt/jre1.3.1_20 $ORACLE_HOME/JRE <- mv로 jre를 변경하지 않았다면, /opt/jre1.3.1._20 을 /usr/java/jre1.3.1_20 으로 해야 한다. 밑에 작업도 마찬가지 이다.
$ cd /opt/jre1.3.1_20/bin
$ ln -s java /opt/jre1.3.1_20/bin/jre
$ ln -s java /opt/jre1.3.1_20/bin/i386/green_threads/jre
$ ln -s java /opt/jre1.3.1_20/bin/i386/native_threads/jre
네트워크 설정 및 데이터베이스 생성 작업을 재시도(Retry)하여 작업을 진행한다.
* Agent configuration assistant 에러 시 조치 사항
일단은 밑에 starting http server 에러시 조치 사항을 참고하여서 http server 를 먼저 해결한 후,
설치를 종료한다. 추후에 Agent configuration assistant를 설치 할 수 있다.
아래와 같은 에러가 발생한다.
Parameter "orahome"=/home/oracle/product/9.2.0
Parameter "nodeinfo"=NO_VALUE
agnet serivce failed
* starting http server 가 실패하면 oracle 계정으로 밑에 작업을 하면 http 서버가 시작된다.
$ ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
설치를 종료하였다면 패치를 해야지 Agent configuration assistant 를 설치 할 수 있다.
인스톨러종료후
$ 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
위와 같은 에러가 나타나게 된다.
* 일단은 인스턴스를 꼭 종료하고 패치를 해야한다.
* 인스턴스를 종료하려면 oracle 계정으로
$ sqlplus /nolog
sql> connect / as sysdba
connected.
sql> shutdown
하게 되면 인스턴스가 종료가 된다.
종류후에 다운 받은 두 파일을 압축을 푼다.
p2617419_10102_GENERIC.zip 에는 OPatch를 사용하는 방법이 나와 있다.
OPatch를 사용하여서 p3238244_9204_LINUX.zip 안에 있는 파일을 패치하는 것이다.
패치 작업은 http://freekt7.tistory.com 에서 opatch라고 검색하면 나온다.
잘 읽어보고 패치 작업을 마무리 한다.
그런 후에 oracle 계정으로
$ 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.
이렇게 되면 Agent configuration assistant가 설치된 것이다.설치 후 작업
=============
1. GCC를 다시 원상복구한다.
$ su -
# cd /usr/bin
# mv ./gcc ./gcc296
# mv ./gcc4 ./gcc
2. Oracle Universal Installer의 JRE 경로를 변경한다.
$ORACLE_BASE/oui/oraparam.ini 파일에 JRE_LOCATION 변수를 변경한다.
JRE_LOCATION=/opt/jre1.3.1_20
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
끝 재설치 하면됩니다.
오라클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 를 구해 외부에서 시험 접속을 해보자.
* 출처 사이트 2개를 참조해서 포스팅 해 보았습니다. 자료가 많은 덕분에 다행히도 3번만에 성공했네요
oracle 9i는 설치가 좀 까다로운것 같습니다.
출 처 : http://cafe.naver.com/tech2u.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=106
http://blog.bagesoft.com/703