2014년 3월 17일

CentOS 6.5 에서 다중 톰켓 환경 구축하기

아파치는 CentOS 6.5 에 포함된 것을 사용함

1. Tomcat & Java 설치 

톰켓 설치에 앞서 http://www.oracle.com/technetwork/java/javase/downloads/index.html 에서 설치파일을 다운로드하여 JAVA 를 설치한다. 문서에서는 JDK 1.7.0.51 버전의 rpm 파일로 설치하였다. 설치된 java 는 /usr/java 에 설치된다.

톰켓 설치파일은 http://tomcat.apache.org 에서 최신 프로그램를 다운로드한다. 문서에서는 Tomcat 8.0.3 버전을 사용하였다. 설치는 특별한 것을 요구하지 않으며 압축을 풀는 것으로 기본적은 설치는 완료된다. 문서에서는 /app/tools 경로에 압축을 풀었으며, 편의상 실재 설치된 경로를 /app/tomcat 경로로 심볼릭 링크를 생성하여 /app/tomcat 경로로 접근이 가능하도록했다.

 2. 웹 서버 연결을 위한 Tomcat Connectors 설치

Tomcat Connector 설치는 컴파일 작업이 필요하며 소스는 http://tomcat.apache.org 에서 다운로한다. 컴파일을 진행하려면 Apr 라이브러리가 필요하며 문서에서는 httpd-devel 패키지를 설치하여 사용하였다. httpd-devel 는 yum 을 사용하여 설치하였다.

# yum install httpd-devel
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
base                                                     | 1.1 kB     00:00
base/primary                                             | 995 kB     00:00
base                                                                  2789/2789
extras                                                   | 2.1 kB     00:00
extras/primary_db                                        | 164 kB     00:00
updates                                                  | 1.9 kB     00:00
updates/primary_db                                       | 332 kB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd-devel.i386 0:2.2.3-83.el5.centos set to be updated
--> Processing Dependency: httpd = 2.2.3-83.el5.centos for package: httpd-devel
--> Processing Dependency: apr-util-devel for package: httpd-devel
--> Running transaction check
---> Package apr-util-devel.i386 0:1.2.7-11.el5_5.2 set to be updated
--> Processing Dependency: httpd = 2.2.3-76.el5.centos for package: mod_ssl
---> Package httpd.i386 0:2.2.3-83.el5.centos set to be updated
--> Running transaction check
---> Package mod_ssl.i386 1:2.2.3-83.el5.centos set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch      Version                       Repository    Size
================================================================================
Installing:
 httpd-devel         i386      2.2.3-83.el5.centos           updates      155 k
Installing for dependencies:
 apr-util-devel      i386      1.2.7-11.el5_5.2              base          53 k
Updating for dependencies:
 httpd               i386      2.2.3-83.el5.centos           updates      1.2 M
 mod_ssl             i386      1:2.2.3-83.el5.centos         updates       97 k

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       2 Package(s)

Total download size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): apr-util-devel-1.2.7-11.el5_5.2.i386.rpm          |  53 kB     00:00
(2/4): mod_ssl-2.2.3-83.el5.centos.i386.rpm              |  97 kB     00:00
(3/4): httpd-devel-2.2.3-83.el5.centos.i386.rpm          | 155 kB     00:00
(4/4): httpd-2.2.3-83.el5.centos.i386.rpm                | 1.2 MB     00:00
--------------------------------------------------------------------------------
Total                                           4.6 MB/s | 1.5 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : apr-util-devel                                           1/6
  Updating       : httpd                                                    2/6
  Installing     : httpd-devel                                              3/6
  Updating       : mod_ssl                                                  4/6
  Cleanup        : mod_ssl                                                  5/6
  Cleanup        : httpd                                                    6/6

Installed:
  httpd-devel.i386 0:2.2.3-83.el5.centos

Dependency Installed:
  apr-util-devel.i386 0:1.2.7-11.el5_5.2

Dependency Updated:
  httpd.i386 0:2.2.3-83.el5.centos      mod_ssl.i386 1:2.2.3-83.el5.centos

Complete!

이제 다운로드한 톰켓 커낵터 소스를 컴파일하여 이미 설치되어 있는 httpd 모듈에 설치한다.

cd /app/source/tomcat-connectors-1.2.37-src/native
./configure --with-apxs=/usr/sbin/apxs
make
make install

3. 아파치 웹 서버 환경 설정

/etc/httpd/conf.d/tomcat.conf 파일을 다음과 같이 생성한다.

/etc/httpd/conf.d/tomcat.conf


LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile "logs/mod_jk.log"
JkLogLevel info

톰켓 연결정보를 기술하는 workers.properties 파일을 다음과 같이 생성한다. 

/etc/httpd/conf/workers.properties (환경에 따른 수정 필요)

worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

여러 톰켓을 구동할 수 있도록 /etc/httpd/conf/httpd.conf 파일에 VirtualHost 설정을 추가한다. 이때 JkMountFile 을 지정하여 어떤 요청들을 어떤 톰켓이 처리할 것인가를 지정한다. 

/etc/httpd/conf/httpd.conf (환경에 따른 수정 필요)

    DocumentRoot  /app/webapps/portal/WebContent
    ServerName portal
    ErrorLog logs/portal-error_log
    JkMountFile conf/uriworkermap.properties

/etc/httpd/conf/uriworkermap.properties (환경에 따른 수정 필요)

/*.do=worker1
/*.jsp=worker1

4. 다중 인스턴스 Tomcat 환경 구성

톰켓 인스턴스를 다중으로 구동할 수 있도록  /app/tools/ 경로에 설치된 톰켓을 직접 사용하지 않고 /app/servers 경로를 생성하고 이곳에 톰켓을 다시 아래와 같은 방식으로 구성한다.


  • /app/servers/[인스턴스 명]-tomcat/
  • /app/servers/[인스턴스 명]-tomcat/bin (/app/tomcat/bin 심볼링 링크)
  • /app/servers/[인스턴스 명]-tomcat/lib  (/app/tomcat/lib 심볼링 링크)
  • /app/servers/[인스턴스 명]-tomcat/conf (/app/tomcat/conf 복사)
  • logs, temp, webapps, work 디렉터리 생성.


문서에서는 developer 계정으로 톰켓을 운영하는데 이를 위하여 /app/tools 와 /app/servers 의 소유권을 developer 로 변경한다.


톰켓 운영을 위하서 developer 계정의  홈에 bin 디렉터리를 생성하고 add-new-tomcat 스크립트를 아래와 같이 생성한다.


#!/bin/sh

if [ "$#" == "0" ]; then
    echo "tomcat instance name required."
    exit 1
fi

SERVERS_HOME=/app/servers
SERVER_NAME=$1
SERVER_PATH="$SERVERS_HOME/$SERVER_NAME-tomcat"
TOMCAT_HOME=/app/tomcat


echo "new tomcat will create in "$SERVER_PATH"....."

if [ -d "$SERVER_PATH" ]; then
    echo "directory '$SERVER_PATH' already exist. check first."
    exit 1
fi

mkdir $SERVER_PATH
mkdir $SERVER_PATH/logs $SERVER_PATH/temp $SERVER_PATH/webapps $SERVER_PATH/work
cp -Rf $TOMCAT_HOME/conf $SERVER_PATH
ln -s $TOMCAT_HOME/bin $SERVER_PATH/bin
ln -s $TOMCAT_HOME/lib $SERVER_PATH/lib



이제 add-new-tomcat [새로운 인스턴스 이름] 명령으로 손쉽게 톰켓 환경을 추가할 수 있다. 톰켓 환경이 추가되면 반듯이 해당 톰켓 설정의 sever.xml 파일에서 Server 노드 shutdown, Connector 노드 port 와 redirectPort 포트를 사용하지 않는 다른 값으로 변경하여야 한다. 개인적으로는 새로운 톰켓이 추가되는 경우 각 포트에 +1 값을 지정한다. 톰켓이 추가되면 아파치 설정 파일에서 httpd.conf, workers.properties 그리고 uriworkermap.properties 설정을 변경할 필요가 있다.

conf/server.xml


     


추가로 인스턴스에 따라 톰켓을 시작, 정지, 로그보기를 위한 스크립트를 생성한다.

/home/developer/bin/tdown (톰켓 정지)

#!/bin/sh

if [ "$#" == "0" ]; then
    echo "tomcat instance name required."
    exit 1
fi

SERVER_HOME=/app/servers

SERVER_NAME=$1

SERVER_PATH="$SERVER_HOME/$SERVER_NAME-tomcat"

$SERVER_PATH/bin/shutdown.sh
/home/developer/bin/tboot (톰켓 시작)

#!/bin/sh

if [ "$#" == "0" ]; then
    echo "tomcat instance name required."
    exit 1
fi

SERVER_HOME=/app/servers

SERVER_NAME=$1

SERVER_PATH="$SERVER_HOME/$SERVER_NAME-tomcat"

PROCESS_COUNT=$( ps -ef | grep java | grep $SERVER_NAME  | wc -l  )

if [ "$PROCESS_COUNT" -eq 1 ] ; then
    echo "tomcat instance '$SERVER_NAME' already running...."
    exit 1
    else
    echo "starting tomcat instance '$SERVER_NAME'  .. "
    $SERVER_PATH/bin/startup.sh
fi


#$SERVER_PATH/bin/startup.sh


/home/developer/bin/tdown (톰켓 정지)

#!/bin/sh

if [ "$#" == "0" ]; then
    echo "tomcat instance name required."
    exit 1
fi

SERVER_HOME=/app/servers

SERVER_NAME=$1

SERVER_PATH="$SERVER_HOME/$SERVER_NAME-tomcat"

$SERVER_PATH/bin/shutdown.sh

/home/developer/bin/tlog (톰켓 로그보기)

#!/bin/sh

if [ "$#" == "0" ]; then
    echo "tomcat instance name required."
    exit 1
fi

SERVER_HOME=/app/servers

SERVER_NAME=$1

SERVER_PATH="$SERVER_HOME/$SERVER_NAME-tomcat"

echo  "$SERVER_PATH/logs/catalina.out"

tail -f "$SERVER_PATH/logs/catalina.out"

손쉬운 톰켓 운영을 위하여 공통으로 적용할 몇가지 환경 변수를 developer 계정에 추가한다. 참고로 JAVA_OPTS 값은 모든 톰켓이 시작할 때 공통으로 적용된다.

 /home/developer/.bash_profile
export JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms256m -Xmx512m -XX:NewSize=125m -XX:MaxNewSize=125m -XX:PermSize=125m -XX:MaxPermSize=125m -XX:+DisableExplicitGC"

export JAVA_HOME=/usr/lib/java



2014년 3월 11일

CentOS 6.5 에 Oracle Database 11g Release 2 설치하기

Step 1: 오라클설치를 위한 관련 패키지 설치 

먼저 "Oracle Public Yum" 레파지토리가 제공하는 "oracle-rdbms-server-11gR2-preinstall" 패키지를 다운로드한다. 오라클 공개 yum 레파지토리는 무료로 가장 쉽게 Linux 환경에서 Oracle 설치를 위하여 필요한 것들을 자동으로 설치하는 기능을 제공하고 있다.

yum 레파지토리는 아래와 같은 방법으로 구성은 한다. root 계정으로 wget 명령을 사용하여 yum 설정 파일을 /etc/yum.repos.d/ 경로에 다운로드한다.

# cd /etc/yum.repos.d
# wget https://public-yum.oracle.com/public-yum-ol6.repo --no-check-certificate

--2014-03-10 18:12:02--  https://public-yum.oracle.com/public-yum-ol6.repo
Resolving public-yum.oracle.com... 173.223.227.26, 173.223.227.10
Connecting to public-yum.oracle.com|173.223.227.26|:443... connected.
WARNING: certificate common name “a248.e.akamai.net” doesn’t match requested host name “public-yum.oracle.com”.
HTTP request sent, awaiting response... 200 OK
Length: 4233 (4.1K) [text/plain]
Saving to: “public-yum-ol6.repo”

100%[======================================>] 4,233       --.-K/s   in 0s

2014-03-10 18:12:03 (370 MB/s) - “public-yum-ol6.repo” saved [4233/4233]

이제 아래와 같이 yum 명령을 실행하여 사전에 필요한 것들을 설치한다.

#yum install oracle-rdbms-server-11gR2-preinstall
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-9.el6 will be installed
--> Processing Dependency: gcc for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: gcc-c++ for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: kernel-uek for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: compat-libcap1 for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: ksh for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: libaio-devel for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: compat-libstdc++-33 for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Processing Dependency: libstdc++-devel for package: oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64
--> Running transaction check
---> Package compat-libcap1.x86_64 0:1.10-1 will be installed
---> Package compat-libstdc++-33.x86_64 0:3.2.3-69.el6 will be installed
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-4.el6.x86_64
---> Package gcc-c++.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libmpfr.so.1()(64bit) for package: gcc-c++-4.4.7-4.el6.x86_64
---> Package kernel-uek.x86_64 0:2.6.39-400.214.3.el6uek will be installed
--> Processing Dependency: kernel-uek-firmware = 2.6.39-400.214.3.el6uek for package: kernel-uek-2.6.39-400.214.3.el6uek.x86_64
---> Package ksh.x86_64 0:20120801-10.el6_5.3 will be installed
---> Package libaio-devel.x86_64 0:0.3.107-10.el6 will be installed
---> Package libstdc++-devel.x86_64 0:4.4.7-4.el6 will be installed
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-4.el6 will be installed
---> Package kernel-uek-firmware.noarch 0:2.6.39-400.214.3.el6uek will be installed
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
--> Running transaction check
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch   Version                 Repository      Size
================================================================================
Installing:
 oracle-rdbms-server-11gR2-preinstall
                            x86_64 1.0-9.el6               ol6_latest      17 k
Installing for dependencies:
 cloog-ppl                  x86_64 0.15.7-1.2.el6          base            93 k
 compat-libcap1             x86_64 1.10-1                  base            17 k
 compat-libstdc++-33        x86_64 3.2.3-69.el6            base           183 k
 cpp                        x86_64 4.4.7-4.el6             base           3.7 M
 gcc                        x86_64 4.4.7-4.el6             base            10 M
 gcc-c++                    x86_64 4.4.7-4.el6             base           4.7 M
 kernel-uek                 x86_64 2.6.39-400.214.3.el6uek ol6_UEK_latest  28 M
 kernel-uek-firmware        noarch 2.6.39-400.214.3.el6uek ol6_UEK_latest 3.6 M
 ksh                        x86_64 20120801-10.el6_5.3     ol6_latest     756 k
 libaio-devel               x86_64 0.3.107-10.el6          base            13 k
 libstdc++-devel            x86_64 4.4.7-4.el6             base           1.6 M
 mpfr                       x86_64 2.4.1-6.el6             base           157 k
 ppl                        x86_64 0.10.2-11.el6           base           1.3 M

Transaction Summary
================================================================================
Install      14 Package(s)

Total download size: 54 M
Installed size: 175 M
Is this ok [y/N]: Y
Downloading Packages:
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Importing GPG key 0xEC551F03:
 Userid: "Oracle OSS group (Open Source Software group) "
 From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mpfr-2.4.1-6.el6.x86_64                                     1/14
  Installing : libstdc++-devel-4.4.7-4.el6.x86_64                          2/14
  Installing : cpp-4.4.7-4.el6.x86_64                                      3/14
  Installing : kernel-uek-firmware-2.6.39-400.214.3.el6uek.noarch          4/14
  Installing : kernel-uek-2.6.39-400.214.3.el6uek.x86_64                   5/14
  Installing : ppl-0.10.2-11.el6.x86_64                                    6/14
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                             7/14
  Installing : gcc-4.4.7-4.el6.x86_64                                      8/14
  Installing : gcc-c++-4.4.7-4.el6.x86_64                                  9/14
  Installing : compat-libstdc++-33-3.2.3-69.el6.x86_64                    10/14
  Installing : libaio-devel-0.3.107-10.el6.x86_64                         11/14
  Installing : ksh-20120801-10.el6_5.3.x86_64                             12/14
  Installing : compat-libcap1-1.10-1.x86_64                               13/14
  Installing : oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64      14/14
  Verifying  : compat-libcap1-1.10-1.x86_64                                1/14
  Verifying  : ksh-20120801-10.el6_5.3.x86_64                              2/14
  Verifying  : libstdc++-devel-4.4.7-4.el6.x86_64                          3/14
  Verifying  : cpp-4.4.7-4.el6.x86_64                                      4/14
  Verifying  : kernel-uek-2.6.39-400.214.3.el6uek.x86_64                   5/14
  Verifying  : libaio-devel-0.3.107-10.el6.x86_64                          6/14
  Verifying  : oracle-rdbms-server-11gR2-preinstall-1.0-9.el6.x86_64       7/14
  Verifying  : compat-libstdc++-33-3.2.3-69.el6.x86_64                     8/14
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                     9/14
  Verifying  : gcc-4.4.7-4.el6.x86_64                                     10/14
  Verifying  : gcc-c++-4.4.7-4.el6.x86_64                                 11/14
  Verifying  : ppl-0.10.2-11.el6.x86_64                                   12/14
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                            13/14
  Verifying  : kernel-uek-firmware-2.6.39-400.214.3.el6uek.noarch         14/14

Installed:
  oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-9.el6

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6
  compat-libcap1.x86_64 0:1.10-1
  compat-libstdc++-33.x86_64 0:3.2.3-69.el6
  cpp.x86_64 0:4.4.7-4.el6
  gcc.x86_64 0:4.4.7-4.el6
  gcc-c++.x86_64 0:4.4.7-4.el6
  kernel-uek.x86_64 0:2.6.39-400.214.3.el6uek
  kernel-uek-firmware.noarch 0:2.6.39-400.214.3.el6uek
  ksh.x86_64 0:20120801-10.el6_5.3
  libaio-devel.x86_64 0:0.3.107-10.el6
  libstdc++-devel.x86_64 0:4.4.7-4.el6
  mpfr.x86_64 0:2.4.1-6.el6
  ppl.x86_64 0:0.10.2-11.el6

Complete!
설치과정에서 "GPG key retrieval failed" 오류가 발생되는데, 아래와 같이 wget 명령을 사용하여 GPG 키를 다운로드한면 해결된다.
#wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle --no-check-certificate

Step 2: Oracle 계정 설정

먼저 "oracle" 계정의 패스워드를 설정한다.
# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
/etc/security/limits.d/90-nproc.conf 파일을 다음과 같이 수정한다.
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
# To this
* - nproc 16384

"/etc/selinux/config" 파일을 수정하여 SELinux 값을 permissive 로 설정한다.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=permissive

# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

변경사항을 적용하기 위하여 서버를 "reboot" 한다. oracle 계정으로 로그인한 다음 .bash_profile 파일(홈 경로에 위치)을 수정한다. 경로는 오라클을 설치하는 서버 환경에 맞게 수정하면 된다.

# vi .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
export PATH

umask 022
export ORACLE_BASE=/app/oracle
export ORACLE_SID=11GR2
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORA_NLS10=$ORACLE_HOME/nls/data
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export PATH=$PATH:.:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/X11R6/bin:/usr/bin/X11
export EDITOR=vi
export PS1='$LOGNAME@`hostname`:$PWD>'
root 계정으로 디렉터리를 생성하고 권한을 부여한다.
# mkdir -p /app/oracle/product/11.2.0/dbhome_1
# chown -R oracle.dba /app/oracle

NLS_LANG 값을 AMERICAN_AMERICA.KO16KSC5601으로 지정하였으나 이는 설치에 영향을 주지는 않았다.

Step3 : 오라클 소프트웨어 다운로드 



오라클 소프트웨어는 2개의 zip 파일로 구성되어 있는데 이 파일들을 “/home/oracle/" 로 다운로드한다. 압축을 풀면 database 이름의 폴더가 생성된다.

#unzip V17530-01_1of2.zip
#unzip V17530-01_2of2.zip

Step3 : 오라클 소프트웨어 설치

설치는 반듯이 oracle 계정으로 진행한다.
database 폴더로 이동하여 runInstaller 을 실행하여 설치를 진행한다.

1. (보안패치 관련 메일을 받지않는 것으로 하여 메일을 설정하지 않고 넘어감.)



2. Create and configure a database 선택


3.Server Class 선택


4. Single instance database installation 선택


5.Typical install 선택
Typical install을 선택하여 설치하면 문자셋(CHARACTER SET) NLS_CHARACTERSET 값은 "AL32UTF8", NLS_LANGUAGE 값은 AMERICAN 으로 디폴트 설치가 된다. 설치시에 문자셋를 변경하려면 Advenced Install 을 선택하여 설치를 진행하여야 한다. (AL32UTF8 은 유니코드이기 때문에 한글 입력이 지원됨).

참고로 한글을 지원하는 문자셋(CHARACTER SET)은 3가지 있다고 한다.

  •  KO16KSC5601 : 완성형 한글 - 2350자의 한글, 4888자의 한자, 히라카나, 카타카나, 영문 및 기호.
  •  KO16MSWIN949 : 확장 완성형 - KO16KSC5601을 그대로 포함하고 추가로 8822 자까지 표현. 
  • UTF8/AL32UTF8 : 가변길이 한글표현에 최대 3바이트 (AL32UTF8은 6바이트) 유니코드는 잘 알려진 바와 같이 현대 한글 11172자를 모두 가나다 순으로 잘 정렬된 상태로 포함.



6. Administrative password 를 입력한다. 여기에서는 Database file location 을 다른 파티션으로 지정하였다.


7. Inventory 를 생성한다.


8. 필수 사항 검사에서 아래와 같은 문제가 보여진다. 그냥 전체 무시 (ignore all)을 선택하고 진행하여도 설치가 진행된다. (참고한 문서에서 제시한 방식으로는 해결이 불가하였음)


9. 계속 지시사항에 따라 설치를 진행하면 된다.



마직막으로 방화벽을 사용하고 있다면 1521 포트를 개방하면 된다.


11g 설치가 필요하여 11.0.2.1 CentOS 6.2 Final 버전에서 다시 설치해보았다.


출처: http://www.tecmint.com/oracle-database-11g-release-2-installation-in-linux/