Linux 패키지 추가 설치
cd <리눅스 설치 디스크 경로>/Packages
rpm -ivh ksh-20120801-26.el7.x86_64.rpm
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm 
[root@rac1 ~]# cd /run/media/admin/OL-7.3\ Server.x86_64/Packages
 
[root@rac1 Packages]# rpm -ivh ksh-20120801-26.el7.x86_64.rpm
경고: ksh-20120801-26.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:ksh-20120801-26.el7              ################################# [100%]

[root@rac1 Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
경고: libaio-devel-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:libaio-devel-0.3.109-13.el7      ################################# [100%]

리눅스 설치시에 기본적으로 설치된 패키지 외에 추가로 2개의 패키지를 설치해야 합니다.

설치 CD를 mount한 후에 Package 디렉토리로 이동하여 패키지를 설치합니다.


Linux 필수 패키지 설치 여부 확인
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++-33
rpm -q glibc
rpm -q glibc-devel
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libX11
rpm -q libXau
rpm -q libxcb
rpm -q libXi
rpm -q libXtst
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q smartmontools
rpm -q sysstat 

[root@rac1 oracle]# rpm -q binutils
rpm -q sysstatbinutils-2.25.1-22.base.el7.x86_64


[root@rac1 oracle]# rpm -q compat-libcap1
compat-libcap1-1.10-7.el7.x86_64

[root@rac1 oracle]# rpm -q compat-libstdc++-33
compat-libstdc++-33-3.2.3-72.el7.x86_64

[root@rac1 oracle]# rpm -q glibc
glibc-2.17-157.el7.x86_64

[root@rac1 oracle]# rpm -q glibc-devel
glibc-devel-2.17-157.el7.x86_64

[root@rac1 oracle]# rpm -q ksh
ksh-20120801-26.el7.x86_64

[root@rac1 oracle]# rpm -q libaio
libaio-0.3.109-13.el7.x86_64

[root@rac1 oracle]# rpm -q libaio-devel
libaio-devel-0.3.109-13.el7.x86_64

[root@rac1 oracle]# rpm -q libgcc
libgcc-4.8.5-11.el7.x86_64

[root@rac1 oracle]# rpm -q libstdc++
libstdc++-4.8.5-11.el7.x86_64

[root@rac1 oracle]# rpm -q libstdc++-devel
libstdc++-devel-4.8.5-11.el7.x86_64

[root@rac1 oracle]# rpm -q libX11
libX11-1.6.3-3.el7.x86_64

[root@rac1 oracle]# rpm -q libXau
libXau-1.0.8-2.1.el7.x86_64

[root@rac1 oracle]# rpm -q libxcb
libxcb-1.11-4.el7.x86_64

[root@rac1 oracle]# rpm -q libXi
libXi-1.7.4-2.el7.x86_64

[root@rac1 oracle]# rpm -q libXtst
libXtst-1.2.2-2.1.el7.x86_64

[root@rac1 oracle]# rpm -q make
make-3.82-23.el7.x86_64

[root@rac1 oracle]# rpm -q net-tools
net-tools-2.0-0.17.20131004git.el7.x86_64

[root@rac1 oracle]# rpm -q nfs-utils
nfs-utils-1.3.0-0.33.0.1.el7.x86_64

[root@rac1 oracle]# rpm -q smartmontools
smartmontools-6.2-7.el7.x86_64

[root@rac1 oracle]# rpm -q sysstat
sysstat-10.1.5-11.el7.x86_64

오라클 설치에 필요한 리눅스 패키지들이 모두 설치되어 있는지 검증합니다.

누락된 패키지가 있다면 반드시 설치해야 합니다.

패키지 파일은 yum 이용하여 직접 설치하거나 Oracle Linux Repository에서 다운로드   있습니다.

https://public-yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html

Oracle 사전환경 구성 패키지 설치
rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
[root@rac1 ~]# rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
경고: oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
준비 중...                         ################################# [100%]
Updating / installing...
   1:oracle-database-preinstall-18c-1.################################# [100%]

추가로 Oracle Database 설치를 위한 preinstall 패키지를 설치합니다.

패키지 파일은 위에서 안내한 Oracle Linux Repository에서 다운로드 가능합니다.

vi /etc/host 로 호스트 파일 수정
### Public
192.168.0.111  rac1
192.168.0.112  rac2
### Private
192.168.5.111  rac1-priv
192.168.5.112  rac2-priv
### Virtual
192.168.0.121  rac1-vip
192.168.0.122  rac2-vip
### DNS
192.168.0.181  rac-scan
192.168.0.182  rac-scan
192.168.0.183  rac-scan
[root@rac1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
### Public
192.168.0.111  rac1
192.168.0.112  rac2
### Private
192.168.5.111  rac1-priv
192.168.5.112  rac2-priv
### Virtual
192.168.0.121  rac1-vip
192.168.0.122  rac2-vip
### DNS
192.168.0.181  rac-scan
192.168.0.182  rac-scan
192.168.0.183  rac-scan

/etc/hosts 파일에 설치할 모든 서버의 IP와 호스트명을 추가합니다.

오라클 소프트웨어 설치를 정상적으로 진행하기 위해 로컬 노드와 원격 노드에 대한 정보를 정확히 입력해야 합니다.

SCAN IP는 1개만 할당해도 설치에 지장은 없습니다. 다만, 18c부터는 3개를 할당하지 않을 경우, 필요 조건 검사 과정에서 검증 실패 메시지가 출력됩니다.

vi /etc/selinux/config 로 selinux 모드 변경
SELINUX=permissive
SELinux 모드 변경 적용
setenforce permissive
[root@rac1 ~]# cat /etc/selinux/config

# 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=permissive
#SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@rac1 ~]# setenforce permissive

Selinux 모드를 permissive로 변경합니다.

불필요한 프로세스 중지
### 방화벽 중지
systemctl stop firewalld
systemctl disable firewalld
### 블루투스 중지
systemctl stop bluetooth
systemctl disable bluetooth
### 시간 동기화 중지
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
### NTP 중지
systemctl stop ntpdate
systemctl disable ntpdate
### DNS 중지
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon
### 가상 시스템 관리 중지
virsh net-destroy default
virsh net-undefine default

systemctl stop libvirtd
systemctl disable libvirtd
[root@rac1 ~]# systemctl stop firewalld
[root@rac1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
 
[root@rac1 ~]# systemctl stop bluetooth
[root@rac1 ~]# systemctl disable bluetooth
Removed symlink /etc/systemd/system/dbus-org.bluez.service.
Removed symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service.

[root@rac1 ~]# systemctl stop chronyd
[root@rac1 ~]# systemctl disable chronyd
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@rac1 ~]# mv /etc/chrony.conf /etc/chrony.conf.bak
 
[root@rac1 ~]# systemctl stop ntpdate
[root@rac1 ~]# systemctl disable ntpdate

[root@rac1 ~]# systemctl stop avahi-daemon.soket
[root@rac1 ~]# systemctl stop avahi-daemon
Warning: Stopping avahi-daemon.service, but it can still be activated by:
  avahi-daemon.socket
[root@rac1 ~]# systemctl disable avahi-daemon
Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.

[root@rac1 ~]# virsh net-destroy default
default 네트워크 강제 종료
[root@rac1 ~]# virsh net-undefine default
default 네트워크가 정의되지 않음
[root@rac1 ~]# systemctl stop libvirtd
[root@rac1 ~]# systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket.

테스트 환경에서 불필요한 서비스를 정리합니다.

실습 환경에서는 CTSS를 활성화 모드로 운영할 것이므로 NTP나 chrony 등의 시간 동기화 서비스를 중지할 것입니다.

그러나 실제 운영환경에서는 구성 환경을 고려하여 사용 여부를 결정해야하며, 가급적 NTP를 설정(-x 포함)하여 사용하는 것이 좋습니다.

resolv.conf 내용 확인 및 dnsmasq 활성화
cat /etc/resolv.conf
systemctl start dnsmasq
systemctl enable dnsmasq
nslookup rac-scan
[root@rac1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 127.0.0.1

[root@rac1 ~]# systemctl start dnsmasq
[root@rac1 ~]# systemctl enable dnsmasq
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

[root@rac1 ~]# nslookup rac-scan
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan
Address: 192.168.0.181
Name:   rac-scan
Address: 192.168.0.182
Name:   rac-scan
Address: 192.168.0.183

별도의 DNS 서비스 없이 SCAN을 DNS에 등록된 것처럼 처리하기 위해 DNSMASQ 프로세스를 활성화합니다.

resolv.conf 파일에는 "nameserver 127.0.0.1"가 입력되어 있어야 합니다.

그룹 등록 및 사용자 설정 변경
### 그룹 등록 (필요에 따라 생략 가능)
groupadd oper
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd asmadmin
groupadd asmdba
groupadd asmoper
#groupadd vboxsf
### 유저 그룹 설정 변경
useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper,vboxsf grid
#useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper grid
usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,vboxsf oracle
#usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba oracle
### 유저 암호 변경
passwd grid
passwd oracle
[root@rac1 ~]# groupadd oper
[root@rac1 ~]# groupadd backupdba
[root@rac1 ~]# groupadd dgdba
[root@rac1 ~]# groupadd kmdba
[root@rac1 ~]# groupadd racdba
[root@rac1 ~]# groupadd asmadmin
[root@rac1 ~]# groupadd asmdba
[root@rac1 ~]# groupadd asmoper
[root@rac1 ~]# useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper,vboxsf grid
[root@rac1 ~]# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper,vboxsf oracle
[root@rac1 ~]# passwd grid
grid 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@rac1 ~]# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

소프트웨어를 설치할 사용자 계정과 그룹을 생성 또는 추가합니다.

preinstall 패키지가 설치되었다면 oracle 유저와 oinstall, dba 그룹은 이미 생성되어 있습니다.

grid 유저로 Grid Infrastructure(이하 GI)를 설치할 것이므로 grid 유저를 별도로 생성합니다. (oracle 유저로 모두 설치시에는 생략합니다.)

vboxsf 그룹은 VirtualBox의 Guest Addition을 사용하기 위한 그룹으로, 실제 운영 환경에서 Guest Addition을 사용하지 않는다면 추가하지 않습니다.

passwd 명령어로 각 계정의 암호를 지정해주면 됩니다.

설치 디렉토리 생성
mkdir -p /u01/app/18.3.0/grid
mkdir -p /u01/app/oracle/product/18.3.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle/product
chmod -R 775 /u01
[root@rac1 ~]# mkdir -p /u01/app/18.3.0/grid
[root@rac1 ~]# mkdir -p /u01/app/oracle/product/18.3.0/db_1
[root@rac1 ~]# chown -R grid:oinstall /u01
[root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle/product
[root@rac1 ~]# chmod -R 775 /u01

오라클 소프트웨어 설치를 위한 경로를 생성하고, 해당 경로에 대한 권한과 소유권을 수정합니다.

vi /etc/security/limits.conf 로 리소스 설정값 수정
grid  hard  nofile  65536
grid  soft  stack   10240

/etc/security/limits.d/oracle-database-preinstall-18c.conf 내용

[root@rac1 limits.d]# cat oracle-database-preinstall-18c.conf

# oracle-database-preinstall-18c setting for nofile soft limit is 1024
oracle   soft   nofile    1024

# oracle-database-preinstall-18c setting for nofile hard limit is 65536
oracle   hard   nofile    65536

# oracle-database-preinstall-18c setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle   soft   nproc    16384

# oracle-database-preinstall-18c setting for nproc hard limit is 16384
oracle   hard   nproc    16384

# oracle-database-preinstall-18c setting for stack soft limit is 10240KB
oracle   soft   stack    10240

# oracle-database-preinstall-18c setting for stack hard limit is 32768KB
oracle   hard   stack    32768

# oracle-database-preinstall-18c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle   hard   memlock    134217728

# oracle-database-preinstall-18c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle   soft   memlock    134217728

grid 유저로 GI를 설치하기 위해 grid 유저에 대한 리소스 설정값을 입력합니다.

oracle 유저는 preinstall 패키지를 설치하면 /etc/security/limits.d/oracle-database-preinstall-18c.conf 파일이 자동으로 생성됩니다.

grid 유저 .bash_profile 수정
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1				# 호스트명에 맞게 변경
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/18.3.0/grid
export DB_HOME=$ORACLE_BASE/product/18.3.0/db_1
export ORACLE_HOME=$GRID_HOME
export ORACLE_SID=+ASM1					# 2번 노드 +ASM2
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
PS1='[$ORACLE_SID:$PWD]> '

grid 계정으로 접속한 후에 .bash_profile을 수정합니다.

root계정에서 grid 유저로 접속하려면 아래와 같이 su 명령을 입력하면 됩니다

su - grid

수정이 완료되고 root 유저로 돌아오려면 exit 명령을 grid 유저에서 실행하면 됩니다.

exit
oracle 유저 .bash_profile 수정
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1				# 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/18.3.0/grid
export DB_HOME=$ORACLE_BASE/product/18.3.0/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1				# 2번 노드 racdb2
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
PS1='[$ORACLE_SID:$PWD]> '

마찬가지로 oracle 계정으로 접속하여 .bash_profile을 수정합니다.

oracle 유저로 변경하려면 아래와 같이 su 명령을 입력하면 됩니다

su - oracle
  • 레이블 없음