본문 바로가기

Linux(OS)

오라클 설치를 위한 리눅스 설정(Oracle11gR2 on RAC OEL6)

오라클 설치를 위한 리눅스 설정
1. 불필요한 서비스 제거
# chkconfig iptables off
# chkconfig ip6tables off
# chkconfig ntpd off

2. hosts 파일 설정
# vi /etc/hosts
127.0.0.1  localhost
192.168.10.61 reco01
192.168.10.62 reco02
192.168.10.63 reco03
10.10.10.110 reco01-priv
10.10.10.120 reco02-priv
10.10.10.130 reco03-priv
192.168.10.64 reco01-vip
192.168.10.65 reco02-vip
192.168.10.66 reco03-vip
192.168.10.67 reco-scan

3. Kernel 파라미터 설정
# vi /etc/sysctl.conf
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.wmem_max = 1048576
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
fs.file-max = 6815744
fs.aio-max-nr = 1048576

4. vi /etc/security/limits.conf
# oracle-rdbms-server-12gR1
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

5. vi /etc/pam.d/login
session    required     pam_limits.so

6. vi /etc/modprobe.d/modprobe.conf
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
 
# modprobe -v hangcheck-timer

# vi /etc/rc.local
/sbin/modprobe hangcheck-timer
rdate -s 203.248.240.140

# vi /etc/profile
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
  ulimit -p 16384
  ulimit -n 65536
 else
  ulimit -u 16384 -n 65536
 fi
        umask 022
fi

8. NTP 서비스 설정
# vi /etc/sysconfig/ntpd
OPTION = "-x -u ntp:ntp -p /var/run/ntpd.pid"

9. oracle user에 대한 그룹 추가 및 grid user 추가
1) 그룹 추가
# useradd grid
# passwd grid
# groupadd -g 54324 oper
# groupadd -g 504 asmadmin
# groupadd -g 505 asmdba
# groupadd -g 506 asmoper

2) 그룹에 유저 추가
# usermod -g oinstall -G oper,dba,asmdba oracle
# usermod -g oinstall -G asmadmin,asmdba,asmoper grid

10. grid와 database를 설치할 폴더 생성
# mkdir -p /u01/app/oracle/product/11.2.0/
# mkdir -p /u01/grid/11.2
# mkdir -p /u01/app/oraInventory

[ 소유권 변경 ]
# chmod -R 755 /u01
# chown -R oracle.oinstall /u01/app/oracle
# chown -R grid.oinstall /u01
# chown -R grid.oinstall /u01/app/oraInventory

[ asmdisk ]
# oracleasm configure -i
Configuring the Oracle ASM library driver.

Default user to own the driver interface [grid]: grid
Default group to own the driver interface [asmdba]: asmadmin
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

11. Selinux 설정 해제
# vi /etc/selinux/config
SELINUX=disabled

12. 각 유저 .bash_profile 설정
[양 노드 모두 확인]
1) root
PATH=$PATH:$HOME/bin:/u01/grid/11.2/bin
export PATH
export LANG=C
export GRID_HOME=/u01/grid/11.2
export PS1='[`hostname -s`@$ORACLE_SID:$PWD] '

2) grid
PATH=$PATH:$HOME/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/u01/grid/bin:/u01/grid/11.2/OPatch
export PATH
export LANG=C
export ORACLE_SID=+ASM1
export GRID_HOME=/u01/grid/11.2
export ORACLE_HOME=$GRID_HOME
export PS1='[`hostname -s`@$ORACLE_SID:$PWD] '
alias cmd='rlwrap asmcmd -p'

3) oracle
PATH=$PATH:$HOME/bin:$ORACLE_BASE/product/11.2.0/db_1/bin:$ORACLE_HOME/OPatch
stty erase ^H
stty erase ^?
umask 022
export EDITOR=vi
export LANG=C
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=ora11g1
export ORACLE_UNQNAME=RAC
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export GRID_HOME=/u01/grid/11.2
export ORACLE_SID=RACDB1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH:$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORACLE_OWNER=oracle
export NLS_DATE_FORMAT='YYYY.MM.DD HH24:MI:SS'
export PS1='[`hostname -s`@$ORACLE_SID:$PWD] '
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export TNS_ADMIN=$ORACLE_HOME/network/admin

# Alias
alias sqlplus='rlwrap sqlplus / as sysdba'
alias rman='rlwrap rman target sys/oracle'
alias dblog='tail -f /u01/app/oracle/diag/rdbms/racdb/RACDB1/trace/alert_RACDB1.log'
alias clog='tail -f /u01/11.2.0/grid/log/ora11g1/alertora11g1.log'
alias asmlog='tail -f /u01/app/oracle/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log'
alias dbs='cd $ORACLE_HOME/dbs'

[Install the RAC]
13. Shared Storage 설정(VM Setting)
OCR   1GB * 3
DATA 20GB * 3
FRA  10GB * 3

14. VMX 파일 공유 설정
# RAC Shared Storage Setting
disk.Locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus = "virtual"


scsi1:0.present = "TRUE"
scsi1:0.fileName = "================================="
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"       <--- 타이핑
scsi1:0.redo = ""
scsi1:1.present = "TRUE"
scsi1:1.fileName = "================================="
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"       <--- 타이핑
scsi1:1.redo = ""
scsi1:2.present = "TRUE"
scsi1:2.fileName = "================================="
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"       <--- 타이핑
scsi1:2.redo = ""
scsi2:0.present = "TRUE"
scsi2:0.fileName = "================================="
scsi2:0.mode = "independent-persistent"
scsi2:0.deviceType = "disk"       <--- 타이핑
scsi2:0.redo = ""
scsi2:1.present = "TRUE"
scsi2:1.fileName = "================================="
scsi2:1.mode = "independent-persistent"
scsi2:1.deviceType = "disk"       <--- 타이핑
scsi2:1.redo = ""
scsi2:2.present = "TRUE"
scsi2:2.fileName = "================================="
scsi2:2.mode = "independent-persistent"
scsi2:2.deviceType = "disk"       <--- 타이핑
scsi2:2.redo = ""
scsi2:3.present = "TRUE"
scsi2:3.fileName = "================================="
scsi2:3.mode = "independent-persistent"
scsi2:3.deviceType = "disk"       <--- 타이핑
scsi2:3.redo = ""
scsi2:4.present = "TRUE"
scsi2:4.fileName = "================================="
scsi2:4.mode = "independent-persistent"
scsi2:4.deviceType = "disk"       <--- 타이핑
scsi2:4.redo = ""
scsi2:5.present = "TRUE"
scsi2:5.fileName = "================================="
scsi2:5.mode = "independent-persistent"
scsi2:5.deviceType = "disk"       <--- 타이핑
scsi2:5.redo = ""