본문 바로가기

IT/linux

[CentOS] CentOS 5.5에 Oracle10g(10.2.0) 설치하기

CentOS 5.5에 Oracle10g(10.2.0) 설치 Manual

작성자 : ken


설치 환경
VMware 7.1.3 build-324285
OS : CentOS 5.5
RAM : 1024MB
HDD : 40GB

 

CentOS install
Network : bridged 사용
package 선택 legacy development (필수) 그외 필요한 package선택
SELinux를 disable

 

Oracel License 소지하고 있다면 (설치 안했음)

http://metalink.oracle.com/         169706.1 문서번호 참조
os에 해당하는 패키지를 설치합니다


 

1. yum install

yum install 하는 과정입니다
[root@localhost ~]# yum -y install binutils compat-db control-center gcc glibc gcc-c++ glibc-common gnome-libs libstdc++ libstdc++-delvel make pdksh sysstat xscreensaver

 ## libXp1.0..0-8.1.el5.i.rpm 설치

# yum으로 설치

[root@localhost media]# rpm -qa | grep libXp1.0..0-8.1.el5.i.rpm

[root@localhost media]# yum install libXp*

#  libXp1.0..0-8.1.el5.i.rpm을 다운받고 설치

[root@localhost media]# rpm -Uvh libXp1.0..0-8.1.el5.i.rpm

 

2. Oracle group과 user 생성 하기
[root@localhost ~]# groupadd -g 501 dba
[root@localhost ~]# useradd -g dba oracle
[root@localhost ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

 

3. 설치할 디렉토리와 권한을 설정합니다 
[root@localhost ~]# mkdir -p /oracle/product/10.2.0
[root@localhost ~]# chmod 775 -R /oracle/product/10.2.0
[root@localhost ~]# chown oracle:dba /oracle

[root@localhost ~]# chown oracle:dba /oracle/product

[root@localhost ~]# chown oracle:dba /oracle/product/10.2.0

## 그룹 확인

[root@localhost ~]# cat /etc/group

## 유저 확인

[root@localhost ~]# cat /etc/passwd

 

4. 아래 다섯 파일을 수정합니다 (Oracle 엔지니어가 사용하는 셋팅하는 환경값입니다)

/ etc/sysctl.conf
/etc/security/limits.conf
/etc/profile
/etc/pam.d/login
/oracle/home/.bash_profile

 

## /etc/sysctl.conf의 마지막 부분에 아래를 추가 sysctl -p로 적용(root 유저로)

[root@localhost ~]# vi /etc/sysctl.conf

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 142
net.ipv4.ip_local_port_range = 1024 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 1677216
net.core.wmem_default = 1048576
net.core.wmem_max = 1677216

# 적용은 reboot or [root@localhost ~]# sysctl -p /etc/sysctl.conf

## /etc/security/limits.conf 파일을 열어서 실행되는 프로세스 수를 제한합니다

[root@localhost ~]# vi /etc/security/limits.conf

#<domain>      <type>  <item>         <value>
#
  oracle         soft     nproc          2047
  oracle         hard    nproc         16384
  oracle         soft     nofile          1024
  oracle         hard    nofile          65536

#*               soft    core            0
#*               hard    rss             10000


--* /etc/profile의 아래줄에 다음을 포함 시킨다 ---------------
[root@localhost ~]# vi /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc


unset i
unset pathmunge

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

 

## /etc/pam.d/login 의 마지막 부분에 /lib/security/pam_limits.so에 관련된 부분을 추가한다
[root@localhost ~]# vi /etc/pam.d/login
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    include      system-auth
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    optional     pam_keyinit.so force revoke

session    required     pam_limits.so

 

## /oracle/home/.bash_profile 에 마지막 부분에 아래를 추가한다
[root@localhost ~]# vi /home/oracle/.bash_profile
# User specific environment and startup programs

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export ORACLE_SID=orcl
export NLS_LANG=American_America.KO16KSC5601
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_TERM=vt100
export TEMP=$ORACLE_BASE/tmp
export TEMPDIR=$ORACLE_BASE/tmp
export TMP=$ORACLE_BASE/tmp
export TMPDIR=$ORACLE_BASE/tmp
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/X11R6/lib
# JAVA_HOME PATH
export JAVA_HOME=/usr/local/java
export PATH=.:/bin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/OPatch:/usr/X11R6/bin:/$JAVA_HOME/bin:$PATH
set -o vi
cd $ORACLE_HOME
export LANG=C
EDITOR=vi
export EDITOR
PS1="[\$LOGNAME@`hostname`:\$PWD]$ "

5. 이제 설치 파일을 받는 작업입니다 전 FTP서버에 미리 올려놓고 받아왔습니다 

## 알FTP를 사용하여 설치에 필요한 파일을 카피한다
[root@ocalhost ~]# mkdir /oracle/media

[root@localhost media]# cd /oracle/media

[root@localhost media]# chmod 775 -R /oracle/media
[root@localhost media]# ftp 192.168.10.115

## FTP의 복사할 파일 확인
ftp> get 10201_database_linux32.zip
--* 참고 !ls , put 명령어는 반대의 경우로 사용
## 압축해제
ftp> quit
221 Goodbye.

 

## Oracle 압축을 풉시다 ( /oracle/media 전 이곳에 압축 해제하였습니다)
[root@localhost media]# unzip 10201_database_linux32.zip

 

6. Oracle10g는 CentOS5를 Certification 시키는 방법

6.1 쉬운 방법

Oracle10g는 CentOS5를 Ceti하지 않기 때문에 정식적으로 설치가 되지 않습니다

전 CentOS 5.5를 Redhat4 version 으로 둔갑시키는 방법을 사용하였습니다
[root@localhost ~]# vi /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant)

 

6.2 oraparma.ini 수정방법 (참고로 적용 실패한 방법)

## oraparam에 CentOS-5를 추가한다

# vi /oracle/media/database/install/oraparam.ini

[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2,CentOS-5


[Linux-CentOS-5.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256

 

## operating system 추가한다
# vi /oracle/media/database/stage/prereq/db_prereqs/db/refhost.xml
    <OPERATING_SYSTEM>
      <VERSION VALUE="5"/>
      <ARCHITECTURE VALUE="x86"/>
      <NAME VALUE="Linux"/>
      <VENDOR VALUE="CentOS"/>
      <GLIBC ATLEAST="2.3.2-95.27">
      </GLIBC>
      <PACKAGES>
              <PACKAGE NAME="make" VERSION="3.79" />
              <PACKAGE NAME="binutils" VERSION="2.14" />
              <PACKAGE NAME="gcc" VERSION="3.2" />
              <PACKAGE NAME="libaio" VERSION="0.3.96" />
      </PACKAGES>
      <KERNEL>
              <PROPERTY NAME="semmsl" NAME2="semmsl2" VALUE="250" />
              <PROPERTY NAME="semmns" VALUE="32000" />
              <PROPERTY NAME="semopm" VALUE="100" />
              <PROPERTY NAME="semmni" VALUE="128" />
              <PROPERTY NAME="shmmax" VALUE="536870912" />
              <PROPERTY NAME="shmmni" VALUE="4096" />
              <PROPERTY NAME="shmall" VALUE="2097152" />
              <PROPERTY NAME="file-max" VALUE="65536" />
              <PROPERTY NAME="VERSION" VALUE="2.6.9" />
              <PROPERTY NAME="ip_local_port_range" ATLEAST="1024" ATMOST="65000" />
              <PROPERTY NAME="rmem_default" VALUE="262144" />
              <PROPERTY NAME="rmem_max" VALUE="262144" />
              <PROPERTY NAME="wmem_default" VALUE="262144" />
              <PROPERTY NAME="wmem_max" VALUE="262144" />
      </KERNEL>
    </OPERATING_SYSTEM>

 

7. Oracle10g 설치

## 한글로 oracle 설치 (LANG=C를 주석 처리하고 다음을 추가) Oracle Universal Installer는 깨짐

[oracle@centos5:/home/oracle]$ vi .bash_profile

#export LANG=C

export LANG=ko_KR.eucKR

 

## 설치전에 root계정에서 xhost +를 실행합니다  (서버에서만 실행가능)

[root@localhost ~]# xhost +

## oracle user로 설치
[oracle@localhost.localdomain:/oracle/product/10.2.0]$ su - oracle
[oracle@localhost.localdomain:/oracle/product/10.2.0]$ cd /oracle/media/database
[oracle@localhost.localdomain:/oracle/media/database]$ ls
doc  install  response  runInstaller  stage  welcome.html

##  -ignoreSysPreqs  옵션은 사용하지 않아도 됩니다 앞에서 CentOS5를 Redhat4로 바꿔줬기 때문에
[oracle@localhost.localdomain:/oracle/media/database]$ ./runInstaller

--* custom설치 리스너까지 설치하면 한방에 다 설치 됩니다. 

--* Oracle엔진만 설치하셨다면 (일반적으로 oracle 엔지니어들은 엔진 설치후 dbca를 설치하는 방법

을 사용한다고 합니다 패치등의 문제가 있기때문이라고 하네요) 

[oracle@localhost.localdomain:/oracle/product/10.2.0]$ dbca

--* dbca 옵션 중 character sets 설정은 중요합니다.

--* 설치가 거의 끝나가면 터미널을 열어서 두개의 sh를 차례로 실행하라고 나옵니다 그대로 실행하시면 됩니다

 

8. Oracle10g 설치 확인 

## DB startup & shutdown 하기

$ sqlplus "/as sysdba"

sql> startup

sql> shutdown immediate

## Listener start & stop

$ lsnrctl start LISTENER

$ lsnrctl status LISTENER

$ lsnrctl stop LISTENER

## EM을 설치하셨다면 사용하시는 방법은 다음 명령어 치시고

## isqlplus 서비스 구동

$ isqlplusctl start

$ emctl start dbconsole

web browser에 http://localhost:1158/em

iSQL*Plus는\ http://localhost:5560/isqlplus

## sql*net 접속

$ tnsping TEST

$sqlplus username/password@TEST 

## Oracle의 Character Set을 확인한다
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS
# NSL_CHARACTERSET 의 VALUE 값이 현재 DB의 캐릭터셋 값이다

 

9. tnsnames.ora 위치입니다

[root@localhost ~]# cat /oracle/product/10.2.0/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = centos5)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)

    )
  )

 

## 설치시 발생하는 에러들

# 에러시 필요한 RPM은 CentOS CD에서 copy해서 사용

# ORA-12547 TNS: lost contact (CentOS4.8)
libaio-0.3.105-2.i386.rpm
libaio-devel-0.3.105-2.i386.rpm

 

# 설치 도중 문제 (CentOS5.5)

# Error in invoking target 'all_no_orcl ihsodbc' of makefile '/oracle/product/10.2.0/rdbms/lib/ins_rdbms.mk
rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm 

'IT > linux' 카테고리의 다른 글

[X][CentOS] YUM, RPM, EPEL 설치  (0) 2015.06.11
[X][Linux] user, group, sudo  (0) 2015.06.11
[CentOS] CentOS5.5 Language 한글  (0) 2015.06.11
[X][CentOS] hostname, FQDN  (0) 2015.06.11
[CentOS] CentOS 5.5에 JAVA & Tomcat 6 설치하기  (0) 2015.06.11