ORACLE
HOME > DB > ORACLE
2018.05.27 / 24:50

[CentOS] Oracle 11g R2 설치 1부

인사이드자바
추천 수 23
[CentOS] Oracle 11g R2 설치 1부

오라클 설치는 X-Window에서 설치 되기 때문에 1, 2부로 나눠서 포스팅 한다.

1부는 X-Window와 상관없이 Terminal에서 진행 가능한 부분에 대한 내용으로 정리하고, 2부에서는 X-Window에서 오라클 설치 화면을 위주로 진행 할 예정이다.

 

1. 설치 환경 

- OS Version : CentOS release 5.8 (Final)

- RAM : 1024MB <- 호스팅하는데서는 원래 512MG 였는데 오라클 설치 한답시고 돈 더내고 올렸다... ㅠㅠ

- HDD : 20GB

- 오라클 버전 : Oracle 11g R2 (64bit)

 

 

2. 오라클 관련 Package 설치

- 개인적으로 한꺼번에 설치하는거 안좋아한다. 잘못 되더라도 뭐가 잘못 되었는지 확인하기도 힘들고... ^^;

[root@jjangwani123 ~]# yum -y install binutils-*
[root@jjangwani123 ~]# yum -y install compat-db-*
[root@jjangwani123 ~]# yum -y install control-center-*
[root@jjangwani123 ~]# yum -y install gcc-*
[root@jjangwani123 ~]# yum -y install gcc-c++-*
[root@jjangwani123 ~]# yum -y install glibc-*
[root@jjangwani123 ~]# yum -y install glibc-common-*
[root@jjangwani123 ~]# yum -y install gnome-libs-*
[root@jjangwani123 ~]# yum -y install libstdc++-*
[root@jjangwani123 ~]# yum -y install libstdc++-*
[root@jjangwani123 ~]# yum -y install make-*
[root@jjangwani123 ~]# yum -y install pdksh-*
[root@jjangwani123 ~]# yum -y install sysstat-*
[root@jjangwani123 ~]# yum -y install xscreensaver-*

 

3. 오라클 계정 설정

- 오라클 설치 및 운영을 위해 계정 및 그룹 등을 생성 한다.

[root@jjangwani123 ~]# groupadd oinstall
groupadd: 그룹 oinstall이(가) 이미 존재합니다
[root@jjangwani123 ~]# groupadd dba
groupadd: 그룹 dba이(가) 이미 존재합니다
[root@jjangwani123 ~]# useradd -m -g oinstall -G dba oracle
useradd: 사용자 oracle이(가) 이미 존재합니다
[root@jjangwani123 ~]# passwd oracle
Changing password for user oracle.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
[root@jjangwani123 ~]# mkdir /oracle
mkdir: `/oracle' 디렉토리를 만들 수 없습니다: 파일이 존재합니다
[root@jjangwani123 ~]# chown -R oracle.dba /oracle
[root@jjangwani123 ~]# chmod -R 755 /oracle

-> 이 포스팅을 만든 시점에서는 오라클 설치를 완료한 시점이기 때문에 계정 및 그룹등이 이미 존재 한다.

-> 추가로 오라클 설치는 /oracle에 설치 한다.

 

4. 오라클 설치를 위한 Kernel Parameter 설정

- 아래 내용은 최소 사양으로 이미 해당 값보다 크게 설정 되어 있는 경우 기존 설정값을 사용한다.

[root@jjangwani123 ~]# cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

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


# -------------------------------------------------
# oracle 11gR2 Setting

# -------------------------------------------------
kernel.shmmni = 4096
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000  65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.msgmni = 2878

# -------------------------------------------------

 

- Kernel Parameter 수정 후 System Reboot 없이 적용하는 명령어

[root@jjangwani123 ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000  65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.msgmni = 2878

 

5. oracle 계정의 Shell Limit 설정

- /etc/security/limits.conf 맨 밑에 추가

[root@jjangwani123 ~]# cat /etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - an user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to
#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4


# -------------------------------------------------
# oracle 11gR2 Setting

# -------------------------------------------------

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

# -------------------------------------------------

# End of file

 

- /etc/pam.d/login 맨 밑에 추가

[root@jjangwani123 ~]# cat /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    optional     pam_keyinit.so force revoke
session    required     pam_loginuid.so
session    include      system-auth
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

 

# -------------------------------------------------
# oracle 11gR2 Setting

# -------------------------------------------------
session required /lib/security/pam_limits.so

# -------------------------------------------------

 

6. oracle 계정의 환경 변수 변경

- /home/oracle/.bash_profile 맨 밑에 추가

[root@jjangwani123 ~]# cat /home/oracle/.bash_profile
# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

 

# -------------------------------------------------
# oracle 11gR2 Setting

# -------------------------------------------------
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle/11g; export ORACLE_HOME
ORACLE_SID=ora11g; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin

# export PATH

# -------------------------------------------------

 

7. VNC Server 설정 변경

- 오라클 설치는 X-Window에서 설치 해야 한다. 나는 호스팅을 받고 있기 때문에 VNC Server를 설치하여 원격 접근을 통해 Oracle을 설치 했다. 다른 프로그램들은 이미 설치 되었다는 설정 하에 여기서는 오라클 설치에 필요한 부분만 설정한다. 추가로 필요한 내용은 VNC Server 설치KDE 또는 GNOME 설치 포스팅을 참조할것 

- VNCSERVERS의 값 root를 oracle로 변경한다.

[root@jjangwani123 ~]# cat /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.  
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

VNCSERVERS="1:oracle"                   #--- 1번부터 5901 port를 사용 한다.
VNCSERVERARGS[1]="-geometry 1152x864"   #--- 추가 옵션 : -nolisten -nohttpd -localhost

 

8. oracle 계정의 VNC 패스워드 설정 

- 오라클 11g R2를 설치시 oracle 계정으로 설치를 진행 해야 하기 때문에 VNC도 oracle 계정으로 시작하기 위해 oracle 계정의 VNC Password를 설정한다. 

[root@jjangwani123 ~]# su - oracle
[oracle@jjangwani123 ~]$ cd .vnc
[oracle@jjangwani123 .vnc]$ vncpasswd
Password:
Verify:

 



9. 개별 사용자의 VNC 설정 

- oracle 계정의 xstartup 설정 변경을 통해 X-Window 시작시 KDE로 시작할것인지, GNOME으로 시작할것인지 설정한다.

[oracle@jjangwani123 ~]$ cat /home/oracle/.vnc/xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm &
# gnome-session & # gnome 으로 vnc 시작

startkde &        # kde 로 vnc 시작

 

10. VNC Server 재시작

- root의 계정으로 VNC Server 재시작

[root@jjangwani123 ~]# service vncserver restart
VNC 서버를 종료 중: 1:oracle [ OK ]
VNC 서버 (을)를 시작 중: 1:oracle 
New 'jjangwani123.cafe24.com:1 (oracle)' desktop is jjangwani123.cafe24.com:1

Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/jjangwani123.cafe24.com:1.log

[ OK ]