1. 설치 내역 확인
A) OS 버전 확인
cat /etc/oracle-release cat /etc/redhat-release lsb_release -id uname -r
[root@rac1 ~]# cat /etc/oracle-release Oracle Linux Server release 6.8 [root@rac1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.8 (Santiago) [root@rac1 ~]# lsb_release -id Distributor ID: OracleServer Description: Oracle Linux Server release 6.8 [root@rac1 ~]# uname -r 4.1.12-37.4.1.el6uek.x86_64
설치된 리눅스의 버전 정보를 확인합니다.
설치된 버전에 따라 출력되는 메시지는 다를 수 있습니다.
B) OS 패키지 확인
rpm -q binutils-* rpm -q compat-libcap1-* rpm -q compat-libstdc++-33-* rpm -q gcc-* rpm -q gcc-c++-* rpm -q glibc-* rpm -q glibc-devel-* rpm -q ksh rpm -q libgcc-* rpm -q libstdc++-* rpm -q libstdc++-devel-* rpm -q libaio-* rpm -q libaio-devel-* rpm -q libXext-* rpm -q libXtst-* rpm -q libX11-* rpm -q libXau-* rpm -q libxcb-* rpm -q libXi-* rpm -q make-* rpm -q sysstat-*
[root@rac1 ~]# rpm -q binutils-* binutils-2.20.51.0.2-5.44.el6.x86_64 [root@rac1 ~]# rpm -q compat-libcap1-* compat-libcap1-1.10-1.x86_64 [root@rac1 ~]# rpm -q compat-libstdc++-33-* compat-libstdc++-33-3.2.3-69.el6.x86_64 [root@rac1 ~]# rpm -q gcc-* gcc-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q gcc-c++-* gcc-c++-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q glibc-* glibc-2.12-1.192.el6.x86_64 glibc-2.12-1.192.el6.i686 [root@rac1 ~]# rpm -q glibc-devel-* glibc-devel-2.12-1.192.el6.x86_64 [root@rac1 ~]# rpm -q ksh ksh-20120801-33.el6.x86_64 [root@rac1 ~]# rpm -q libgcc-* libgcc-4.4.7-17.el6.x86_64 libgcc-4.4.7-17.el6.i686 [root@rac1 ~]# rpm -q libstdc++-* libstdc++-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q libstdc++-devel-* libstdc++-devel-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q libaio-* libaio-0.3.107-10.el6.x86_64 [root@rac1 ~]# rpm -q libaio-devel-* libaio-devel-0.3.107-10.el6.x86_64 [root@rac1 ~]# rpm -q libXext-* libXext-1.3.3-1.el6.x86_64 [root@rac1 ~]# rpm -q libXtst-* libXtst-1.2.2-2.1.el6.x86_64 [root@rac1 ~]# rpm -q libX11-* libX11-1.6.3-2.el6.x86_64 [root@rac1 ~]# rpm -q libXau-* libXau-1.0.6-4.el6.x86_64 [root@rac1 ~]# rpm -q libxcb-* libxcb-1.11-2.el6.x86_64 [root@rac1 ~]# rpm -q libXi-* libXi-1.7.4-1.el6.x86_64 [root@rac1 ~]# rpm -q make-* make-3.81-23.el6.x86_64 [root@rac1 ~]# rpm -q sysstat-* sysstat-9.0.4-31.el6.x86_64
오라클 소프트웨어 설치를 위해 필요한 OS 패키지가 모두 설치되었는지 확인합니다.
2. OS 설정 변경
A) 호스트 파일 수정
### Public 10.0.1.101 rac1 10.0.1.102 rac2 ### Private 10.0.5.101 rac1-priv 10.0.5.102 rac2-priv ### Virtual 10.0.1.111 rac1-vip 10.0.1.112 rac2-vip ### SCAN 10.0.1.110 rac-scan
/etc/hosts 파일에 서버 정보를 추가합니다.
오라클 소프트웨어 설치를 정상적으로 진행하기 위해 정확한 정보를 입력해야 합니다.
B) 사전 설정 패키지 설치
rpm -ivh oracle-rdbms-server-11gR2-preinstall-*.el6.x86_64.rpm
[root@rac1 ~]# cd /media/OL6.8\ x86_64\ Disc\ 1\ 20160518/Packages/ [root@rac1 Packages]# rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-13.el6.x86_64.rpm 경고: oracle-rdbms-server-11gR2-preinstall-1.0-13.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ########################################### [100%] 1:oracle-rdbms-server-11g########################################### [100%]
11g R2 구성을 대비한 패키지를 설치합니다.
패키지 파일은 리눅스 설치 이미지를 이용하거나 http://yum.oracle.com 에서 다운로드할 수 있습니다.
C) tmpfs 수정
tmpfs /dev/shm tmpfs size=5g 0 0
mount -o remount /dev/shm
오라클의 MEMORY_TARGET 파라미터를 사용하기 위해서 tmpfs를 변경해야 합니다.
기존에 설정된 tmpfs 값은 #로 주석 처리하거나 삭제합니다.
remount하여 바로 적용시킵니다.
D) 시스템 변수 수정
kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65535 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576
커널 변수를 수정하는 작업입니다.
oracle-rdbms-server-11gR2-preinstall 패키지가 설치되었다면 이미 반영된 내용이므로 생략해도 됩니다.
하지만 해당 패키지를 따로 설치하지 않은 상태에서 오라클 소프트웨어를 설치하려면 왼쪽의 내용을 /etc/sysctl.conf에 추가해야 합니다.
E) DNSMASQ 서비스 기동
service dnsmasq start chkconfig dnsmasq on
[root@rac1 ~]# service dnsmasq start Starting dnsmasq: [ OK ]
별도의 DNS 서비스 없이 SCAN을 DNS에 등록된 것처럼 처리하기 위해 DNSMASQ 프로세스를 활성화합니다.
F) 미사용 프로세스 중지
chkconfig --level 123456 xinetd off chkconfig --level 123456 cups off chkconfig --level 123456 smartd off chkconfig --level 123456 iptables off chkconfig --level 123456 ip6tables off chkconfig --level 123456 bluetooth off
추가적인 리소스 확보를 위해 기본적으로 실행중인 불필요한 OS 프로그램을 off 시킵니다.
G) CTSS 사용을 위한 NTP 중지
mv /etc/sysconfig/ntpd /etc/sysconfig/ntpd.original mv /etc/ntp /etc/ntp.original mv /etc/ntp.conf /etc/ntp.conf.original
실습 환경에서는 CTSS를 NTP 대신 사용할 것이므로 NTP 서비스를 중지하고 관련 파일을 삭제해야 합니다.
NTP 서비스가 기동중이거나 관련 파일이 있는 경우 CTSS는 observer mode로만 기동되므로 정리가 필요합니다.
H) SELINUX 설정 변경
SELINUX=permissive
Selinux 모드를 permissive로 변경합니다.
I) User Processes 설정 변경
# Change this * soft nproc 1024 # To this * - nproc 16384
프로세스 한도 제한을 오라클 권고사항에 맞게 1024에서 16384로 수정합니다.
3. 그룹 및 사용자 설정
A) 그룹 & 사용자 설정 변경
# groupadd oinstall # groupadd dba groupadd oper groupadd asmdba groupadd asmoper groupadd asmadmin usermod -g oinstall -G dba,oper oracle useradd -g oinstall -G dba,asmdba,asmoper,asmadmin grid passwd oracle passwd grid
[root@rac1 ~]# groupadd oper [root@rac1 ~]# groupadd asmdba [root@rac1 ~]# groupadd asmoper [root@rac1 ~]# groupadd asmadmin [root@rac1 ~]# usermod -g oinstall -G dba,oper,vboxsf oracle [root@rac1 ~]# useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,vboxsf grid [root@rac1 ~]# passwd oracle oracle 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 사전에 있는 단어를 기반으로 합니다 잘못된 암호: 너무 간단함 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다. [root@rac1 ~]# passwd grid grid 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 사전에 있는 단어를 기반으로 합니다 잘못된 암호: 너무 간단함 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
설치를 진행할 사용자 계정과 그룹을 생성 또는 추가합니다.
oracle-rdbms-server-11gR2-preinstall 패키지가 설치되었다면 oracle 유저와 oinstall, dba 그룹은 이미 생성되어 있습니다.
vboxsf 그룹은 VirtualBox의 Guest Addition을 사용하기 위한 그룹으로, 실제 운영 환경에서 Guest Addition을 사용하지 않는다면 추가하지 않습니다.
passwd 명령어로 각 계정의 암호를 지정해주면 됩니다.
B) 사용자별 프로세스 제한 변경
grid hard nproc 16384 grid hard nofile 65536
리소스 제한을 위한 사용자별 설정값을 입력합니다.
오라클을 설치하는 OS 계정에 맞게 oracle 또는 grid 유저별로 제한값을 입력합니다
C) 설치 경로 생성 및 권한 부여
mkdir -p /u01/app/oracle/product chown -R grid:oinstall /u01 chmod -R 770 /u01
오라클 소프트웨어 설치를 위한 경로를 생성하고, 해당 경로에 대한 권한과 소유권을 수정합니다.
D) root 유저 환경 설정
export GRID_HOME=/u01/app/11.2.0/grid export PATH=$GRID_HOME/bin:$PATH
E) grid 유저 환경 설정
export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac1 # rac2 => 2번 노드 export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/11.2.0/grid export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_HOME=$GRID_HOME export ORACLE_SID=+ASM1 # +ASM2 => 2번 노드 export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export PS1='[\u@$ORACLE_SID \W]$ '
grid 계정으로 접속한 후에 .bash_profile을 수정합니다.
F) oracle 유저 환경 설정
export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac1 # rac2 => 2번 노드 export ORACLE_UNQNAME=racdb export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/11.2.0/grid export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_HOME=$DB_HOME export ORACLE_SID=racdb1 # racdb2 => 2번 노드 export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG=AMERICAN_KOREA.AL32UTF8 export PS1='[\u@$ORACLE_SID \W]$ '
마찬가지로 oracle 계정으로 접속하여 .bash_profile을 수정합니다.
{}