본문 바로가기

안녕하세요? 선후배 님들 로군 입니다. 최근 2주간 WAS 도 설치 해보았고, Server O/S 도 선정했습니다.

 

간략하게 요약 하면,

 

Server O/S :: SULinux( 국산, 최적화 리눅스, 공개 배포, 빠른 설치 및 안정성이 강점 )

WAS :: TOMCAT[jdbc 연동법],RESIN,JEUS ( 가장 필요에 맞는 WAS 의 선택이 포인트 )

+ webTOb

 

 이제 남은 건 DB!! Mysql 은 SULinux에서 자체 Easy Installer 를 제공 하니까 Oracle을 설치 해봐야겠네요.

그럼 마지막으로 올리는 내용 입니다. 도움 되시기 바랍니다.

시작 합니다. =]

 

 

 

SULinux 2.0 GUI 32bit 버전을 기준으로 설명합니다.


I. 설치 환경 설정
II. 오라클 설치
III. 설치 오류 수정 및 설치 완료


I. 설치 환경 설정 (root로 로그인하여 작업)

1.1 SELINUX 확인
# vi /etc/selinux/config
SELINUX=disabled


1.2 JRE(또는 jdk) 설치
http://java.sun.com/products/archive/j2se/1.3.1_20/index.html 
jre 또는 jdk 1.3.1_xx버전을 다운로드하여 설치합니다.
여기서는 jre 1.3.1_20 rpm 버전을 설치할 것 입니다.

# chmod +x j2re-1_3_1_20-linux-i586.rpm.bin
# ./j2re-1_3_1_20-linux-i586.rpm.bin
# rpm -Uvh jre-1.3.1_20.i586.rpm
# ls -d /usr/java/jre1.3.1_20


1.3 관련 라이브러리 패키지들 설치
(1) 아래 rpm 명령어를 실행하여 설치되지 않은 패키지들은 설치합니다.
# rpm -q compat-db compat-gcc-34 compat-gcc-34-c++ compat-libgcc-296 compat-libstdc++-296

compat-db-4.2.52-5.1
compat-gcc-34-3.4.6-4
compat-gcc-34-c++-3.4.6-4
compat-libgcc-296-2.96-138
compat-libstdc++-296-2.96-138

# rpm -q compat-libstdc++-33 gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libgcc make libXp

compat-libstdc++-33-3.2.3-61
gcc-4.1.1-52.el5
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
libgcc-4.1.1-52
make-3.81-1.1
libXp-1.0.0-8

(2) 오라클 사이트에서 제공하는 아래 2개의 패키지들을 받아서 설치합니다.
http://oss.oracle.com/projects/compat-oracle/dist/files/RedHat/compat-libcwait-2.1-1.i386.rpm
http://oss.oracle.com/projects/compat-oracle/dist/files/RedHat/compat-oracle-rhel4-1.0-5.i386.rpm

# rpm -ivh compat-libcwait-2.1-1.i386.rpm
# rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm –nodeps


1.4 라이브러리 링크
# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2

# cd /usr/bin
# ln -s gcc34 gcc32

# cd /usr/lib
# ln -s libgdbm.so.2.0.0 libdb.so.2


1.5 사용자와 그룹 추가 및 오라클 홈디렉토리 생성
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle

# cd /opt
# mkdir -p oracle/9.2.0.4
# chown -R oracle.oinstall oracle


1.6 환경변수 설정
# vi /home/oracle/.bash_profile
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/9.2.0.4
ORACLE_SID=ORCL
LD_LIBRARY_PATH=$ORACLE_HOME/lib
ORACLE_OEM_JAVARUNTIME=/usr/java/jre1.3.1_20
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH ORACLE_OEM_JAVARUNTIME


1.7 시스템 파라미터 설정
(1) 커널 파라미터 설정 및 적용
# vi /etc/sysctl.conf
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144

# sysctl –p

(2)
/etc/security/limits.conf 파일에 다음 항목을 추가한다.
oracle        soft     nproc          2047
oracle        hard    nproc          16384
oracle        soft     nofile          1024
oracle        hard    nofile          65536



II. 오라클 설치 (oracle 사용자로 로그인하여 진행)

2.1 오라클 파일 압축해제
: 다운로드한 오라클 파일을 압축해제 합니다. 여기에서는 오라클 사용자의 홈에서 data 디렉토리(/home/oracle/data)를 만들어 작업할 것입니다.

$ 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

다음과 같이 3개의 디렉토리가 생성됩니다.
$ ls
Disk1 Disk2 Disk3


2.2 오라클 파라미터 파일 수정
$ vi /home/oracle/data/Disk1/install/linux/oraparm.ini
JRE_LOCATION=/usr/java/jre1.3.1_20


2.3 installer 실행
$ cd /home/oracle/data/Disk1
$ ./runinstaller

- Inventory 위치 지정 : /opt/oracle/oraInventory

- 사용자 group 지정 : oinstall


- /tmp/orainstRoot.sh 실행
$ su -
# /tmp/orainstRoot.sh


- 파일 위치 지정


- 설치할 제품 선택


- 설치 유형 선택


- 설치 용도 선택


- 데이터베이스 이름 입력


- 데이터 파일 위치 입력


- 언어 설정


- 선택 내용 요약


- 파일 설치


파일 설치는 성공적으로 완료되었다. 설치의 2번째 단계에서 오류가 발생하는데
경고창에서 '무시(ignore)'를 클릭하여 일단 끝까지 진행한다.




진행이 끝나면 root 사용자로 /opt/oracle/9.2.0.4/root.sh를 실행하라는 메시지가 나오고 이를 실행한다.


# /opt/oracle/9.2.0.4/root.sh
Running Oracle9 root.sh script...
nThe following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/oracle/9.2.0.4
 
Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
 
nCreating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.


III. 설치 오류 수정 및 설치 완료 

  위의 과정을 마치고 'Next' 버튼을 누르면 아래 화면 처럼 configuration tool들이 실패했다는 화면이 나타난다. 이 오류들을 해결하고 설치를 마친다.



'Oracle Net Configuration Assistant(NETCA)''Oracle Database Configuration Assistant(DBCA)' 그리고 'HTTP Server' 오류 해결은 인스톨러 창을 종료하지 않고 띄워놓은 상태에서 수정한 후 'Retry' 버튼을 눌러 진행하고 마지막으로 'Agent Configuration Assistant' 오류 수정은 창을 종료하고 진행한다.


3.1 Oracle Net Configuration Assistant(NETCA)와 Oracle Database Configuration Assistant(DBCA) 오류 해결

$cd $ORACLE_HOME
$rm JRE
$ln -s $ORACLE_BASE/jre/1.3.1 JRE
$cd JRE/bin
$ln -s java jre
$cd i386/native_threads/
$ln -s java jre

위의 그림  Oracle Universal Installer에서
Oracle Net Configuration Assistant 선택 > 'Retry' 버튼을 누르면 성공한다.
Oracle Database Configuration Assistant 선택 > 'Retry'
 (1) DBCA 창이 나타나며 '데이터베이스 파일 설치', '데이터베이스 초기화', '인스턴스 생성 및 시작' 등의 작업을 진행한다.


(2) sys, system 계정 암호 및 기타 계정 설정 화면이 나타나는데 암호를 복잡하게 입력하여야 한다.



3.2 HTTP server 시작 오류 해결
아래 처럼 라이브러리의 링크를 걸어주고 'Retry' 한다.

$ cd $ORACLE_HOME/lib
$ ln -s libclntsh.so.9.0  libclntsh.so

Starting HTTP Server 선택 > 'Retry' 버튼을 누르면 성공한다.


3.3. Agent configuration assistant 오류 해결
(1) 이 오류를 해결하기 위해서는 인스톨러오라클 인스턴스를 꼭 종료하고 패치를 해야한다. 인스턴스를 종료하려면 oracle 계정으로 아래와 같이 한다.
$ sqlplus /nolog
sql> connect / as sysdba
connected.
sql> shutdown

(2) patch라는 디렉토리를 만들고 그 아래에 첨부한 두개의 패치파일을 받아 압축을 풀고 패치를 진행한다.
$ pwd
/home/oracle/patch
$ unzip p2617419_220_GENERIC.zip
$ unzip p3238244_9204_LINUX.zip
$ ls
3238244  OPatch  README.txt  p2617419_220_GENERIC.zip  p3238244_9204_LINUX.zip
$ cd 3238244
$ export PATH=$PATH:/home/oracle/patch/OPatch

opatch가 /sbin/fuser를 필요로 하므로 같이 /sbin 디렉토리도 동시에 환경변수 경로에 설정한다.

$ export PATH=$PATH:/sbin
$ which opatch
~/patch/OPatch/opatch
$ opatch apply
PERL5LIB=/opt/oracle/9.2.0.4/Apache/perl/lib/5.00503:/home/oracle/patch/OPatch/perl_modules; export PERL5LIB
/opt/oracle/9.2.0.4/Apache/perl/bin/perl /home/oracle/patch/OPatch/opatch.pl apply

OPatch Version 1.0.0.0.48
Perl Version 5.00503

Oracle Home = /opt/oracle/9.2.0.4
Location of Oracle Inventory = /opt/oracle/oraInventory
Oracle Universal Installer shared library = /opt/oracle/oui/bin/linux/liboraInstaller.so
Path to Java = /opt/oracle/jre/1.3.1/bin/java
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Universal Installer components = /opt/oracle/oui
Required Jar File under Oracle Universal Installer = jlib/OraInstaller.jar

Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /opt/oracle/9.2.0.4)
Is this system ready for updating?
Please respond Y|N >
Y
Patching...
Updating inventory...
/home/oracle/patch/OPatch/opatch.pl version: 1.0.0.0.48
Copyright (c) 2001,2002,2003 Oracle Corporation. All Rights Reserved.

OPatch succeeded.

참고)
만약 /etc/oraInst.loc 파일이 없어서 패치가 진행되지 않으면 아래 파일 내용대로 만들어 준다.
$ cat /etc/oraInst.loc
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall

(3) oracle 계정으로 아래와 같이 실행한다.
$ find $ORACLE_HOME -name "*.mk" | xargs grep -l dbsnmp
/opt/oracle/product/9.2.0.4/network/lib/ins_oemagent.mk
/opt/oracle/product/9.2.0.4/network/lib/env_oemagent.mk
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install

참고)
make 권한 오류가 발생하면 root 계정으로 make에 실행 권한을 준다
$ su -
# chmod +x /usr/bin/make

(4) 마지막으로 agentctl을 실행한다.
$ agentctl start
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 19-JUN-2009 14:41:15
Copyright (c) 2003 Oracle Corporation.  All rights reserved.
Starting Oracle Intelligent Agent....
Agent started

(5) "Agent started"가 정상적으로 나타나면 설치가 끝난 것이다.
make명령의 권한 설정을 이전과 같이 돌려놓는다.
$ su -
# chmod 100 /usr/bin/make

(6) 데이터베이스에 접속하여 확인해 본다.
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Fri Jun 19 14:42:38 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  236000356 bytes
Fixed Size                   451684 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.
SQL> conn scott/tiger
Connected.
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

SQL>

 

 

 

이렇게 설치를 완료 하였습니다. 그동안 Server / WAS / Database 를 하는 동안 관심 가져주시고, 읽어 주신 선후배 님들께 감사의 말을 전하고, 늘 좋은 하루 건강한 하루 되시기 바랍니다.

 

이상 로군 이였습니다.                                                                           drwon@linux.co.kr