DoubleDBDeep

[ORACLE] 19c 2 node RAC GRID Silent mode Installation 본문

ORACLE/INSTALL

[ORACLE] 19c 2 node RAC GRID Silent mode Installation

DBCAMI 2023. 11. 19. 04:26

OS Requirement 설정부터 grid 설치까지.. 간단정리해두기 용

 

  node 1 node 2
hostname CMDB1.localdomain CMDB2.localdomain
pulic-ip 10.0.5.111 10.0.5.112
private-ip 10.0.1.111 10.0.1.112
virtual-ip 10.0.5.121 10.0.5.122

* 1번 노드 OS 설정

- SELINUX (CMDB1 root)

vi /etc/selinux/config
SELINUX=permissive

setenforce permissive

 

- hostname  (CMDB1 root)

hostnamectl status
hostnamectl set-hostname CMDB1.localdomain

 

 

- PROCESS 정리  (CMDB1 root)

systemctl stop bluetooth.service
systemctl disable bluetooth.service
systemctl stop firewalld
systemctl disable firewalld
systemctl stop chronyd
systemctl disable chronyd
systemctl stop ntpdate
systemctl disable ntpdate
systemctl stop avahi-daemon
systemctl disable avahi-daemon
systemctl stop libvirtd
systemctl disable libvirtd.service

 

- NETWORK 설정  (CMDB1 root)

 vi /etc/hosts
 
 # public
10.0.5.111	CMDB1	CMDB1.localdomain
10.0.5.112	CMDB2	CMDB2.localdomain

# private
10.0.1.111	CMDB1-priv	CMDB1-priv.localdomain
10.0.1.112	CMDB2-priv	CMDB2-priv.localdomain

# virtual
10.0.5.121	CMDB1-vip	CMDB1-vip.localdomain
10.0.5.122	CMDB2-vip	CMDB2-vip.localdomain

# DNS
10.0.5.181	CMDB-scan	CMDB-scan.localdomain
10.0.5.182	CMDB-scan	CMDB-scan.localdomain
10.0.5.183	CMDB-scan	CMDB-scan.localdomain

systemctl restart network

 

- DNS 설정  (CMDB1 root)

cat /etc/resolv.conf
----> nameserver 127.0.0.1 있어야 함.

vi /etc/dnsmasq.conf
local=/localdomain/

systemctl start dnsmasq
systemctl enable dnsmasq
nslookup CMDB1.localdomain

 

- SWAP  (CMDB1 root)

vi /etc/fstab
tmpfs                   /dev/shm                tmpfs   size=10g         0 0
mount -o remount /dev/shm
df -h /dev/shm

 

- RPM 설치  (CMDB1 root)

rpm -ivh ksh-20120801-142.0.1.el7.x86_64.rpm
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
rpm -ivh oracle-database-preinstall-19c-1.0-2.el7.x86_64.rpm

# asmlib
rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm
rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm

# check
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

 

- kernel parameter (최소 권장)

vi /etc/security/limits.conf

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

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

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

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

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

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

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

# oracle-database-preinstall-19c 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   soft   memlock    134217728

# oracle-database-preinstall-19c setting for data soft limit is 'unlimited'
oracle   soft   data    unlimited
grid   soft   data    unlimited

# oracle-database-preinstall-19c setting for data hard limit is 'unlimited'
oracle   hard   data    unlimited
grid   hard   data    unlimited

 

- USER  (CMDB1 root)

/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin

/usr/sbin/useradd -u 54331 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,vboxsf grid

/usr/sbin/usermod -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper,vboxsf oracle
/usr/sbin/usermod -g oinstall -G dba,asmadmin,backupdba,dgdba,kmdba,racdba,vboxsf,asmoper grid

id oracle
id grid

passwd oracle
passwd grid

 

- DIRECTORY  (CMDB1 root)

mkdir -p /u01/app/19.0.0.0/grid
mkdir -p /u01/app/oracle/product/19.0.0.0/dbhome_1
mkdir -p /u01/app/oraInventory

chown -R oracle:oinstall /u01
chown -R grid:oinstall /u01/app/19.0.0.0
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01

 

- BASH_PROFILE  (CMDB1 root,oracle,grid)

더보기

# ROOT

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
export GI_HOME=/u01/app/19.0.0.0/grid

export PATH=$PATH:$GI_HOME/bin:$ORACLE_HOME/bin

set -o vi
stty erase ^H

 

# ORACLE 

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
export GI_HOME=/u01/app/19.0.0.0/grid

export PATH=$PATH:$GI_HOME/bin:$ORACLE_HOME/bin

export ORACLE_SID=CMDB1

set -o vi
stty erase ^H
export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
export BASE_PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export DISPLAY=10.0.5.1:0.0
export PATH=$PATH:$GI_HOME/bin:$GI_HOME/OPatch:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

 

# GRID

export ORACLE_BASE=/u01/app/oracle
export GI_HOME=/u01/app/19.0.0.0/grid
export ORACLE_HOME=/u01/app/19.0.0.0/grid

export PATH=$PATH:$GI_HOME/bin:$ORACLE_HOME/bin

export ORACLE_SID=+ASM1

set -o vi
stty erase ^H
export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
export DISPLAY=10.0.5.1:0.0
export PATH=$PATH:$GI_HOME/bin:$GI_HOME/OPatch:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

 

- 공유disk 장착 + DISK PARTITIONING  (CMDB1 root)

oracleasm configure -i ---> grid oinstall y y
oracleasm init
oracleasm status
oracleasm configure


ls -al /dev/sd*

fdisk /dev/sdb 			//// n p 1 enter enter w
fdisk /dev/sdc 			//// n p 1 enter enter w
fdisk /dev/sdd 			//// n p 1 enter enter w
fdisk /dev/sde 			//// n p 1 enter enter w
fdisk /dev/sdf 			//// n p 1 enter enter w


oracleasm createdisk DATA /dev/sde1
oracleasm createdisk RECO /dev/sdf1
oracleasm createdisk OCR1 /dev/sdb1
oracleasm createdisk OCR2 /dev/sdc1
oracleasm createdisk OCR3 /dev/sdd1

oracleasm scandisks
oracleasm listdisks



oracleasm deletedisk DATA
oracleasm deletedisk RECO
oracleasm deletedisk OCR1
oracleasm deletedisk OCR2
oracleasm deletedisk OCR3

 

 

* 2번 노드 복제  (CMDB2 root)

# 복제 후 설정
# IP
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
systemctl restart network
ip addr show

# HOSTNAME
hostnamectl status
hostnamectl set-hostname CMDB2.localdomain
hostnamectl status

# bash_profile ORACLE_SID

 

- Engine 압축 해제 (CMDB1 grid)

su - grid
cd /media/sf_01.oracle/3.ENGINE/19
unzip LINUX.X64_193000_grid_home.zip -d $GI_HOME

 

- cvuqdisk package rpm 설치  (CMDB1 root)

cd $GI_HOME/cv/rpm
rpm -ivh cvuqdisk-1.0.10-1.rpm
scp cvuqdisk-1.0.10-1.rpm CMDB2:/tmp
ssh root@CMDB2
cd /tmp
rpm -ivh cvuqdisk-1.0.10-1.rpm
exit

 

- SSH Setup  (CMDB1 root)

cd $GI_HOME/deinstall
./sshUserSetup.sh -user root -hosts "CMDB1 CMDB2" -noPromptPassphrase -advanced
./sshUserSetup.sh -user grid -hosts "CMDB1 CMDB2" -noPromptPassphrase -advanced
./sshUserSetup.sh -user oracle -hosts "CMDB1 CMDB2" -noPromptPassphrase -advanced
-- 확인
-- node1에서 2접속
ssh CMDB2 date
-- node2에서 1접속
ssh CMDB1 date

 

- 사전 검증  (CMDB1 grid)

cd $GI_HOME
./runcluvfy.sh stage -pre crsinst -n CMDB1,CMDB2 -method root

 

 

- OPatch (CMDB1 grid)

which opatch
opatch version
mv $GI_HOME/OPatch $GI_HOME/OPatch_old 
cd /media/sf_01.oracle/4.Opatch/1.opatch
unzip 40.p6880880_190000_Linux-x86-64.zip -d $GI_HOME
opatch version

 

 

- 설치 (CMDB1 grid)

-- rspfile

vi /media/rsp/grid_engine.rsp
-----------------------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/oracle
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=oinstall
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.gpnp.scanName=CMDB-scan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.clusterName=CMDB
oracle.install.crs.config.clusterNodes=CMDB1:CMDB1-vip,CMDB2:CMDB2-vip
oracle.install.crs.config.networkInterfaceList=enp0s3:10.0.5.0:1,enp0s8:10.0.1.0:5
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/oracleasm/disks/OCR1,,/dev/oracleasm/disks/OCR2,,/dev/oracleasm/disks/OCR3,
oracle.install.asm.diskGroup.disks=/dev/oracleasm/disks/OCR1,/dev/oracleasm/disks/OCR2,/dev/oracleasm/disks/OCR3
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleasm/disks
oracle.install.asm.gimrDG.AUSize=1
oracle.install.asm.monitorPassword=oracle
oracle.install.asm.SYSASMPassword=oracle
oracle.install.config.managementOption=NONE
oracle.install.config.omsPort=0
oracle.install.crs.rootconfig.executeRootScript=false
-----------------------------------------------------------------------------------------------

 

-- command

/u01/app/19.0.0.0/grid/gridSetup.sh -silent -responseFile /media/rsp/grid_engine.rsp -ignorePrereqFailure

+ Patch도 같이 진행할 시 -applyRU.. -applyOneOffs ..

 

- 확인

crsctl stat res -t
opatch lspatches
sqlplus / as sysasm

 

 

+ OPatch RU (필요 시)

# 19.14 RU (GRID만 적용)
# OPatch unzip
unzip /media/sf_01.oracle/test/19.14/p33509923_190000_Linux-x86-64.zip -d /media/patch

-- precheck / grid user
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/patch/33509923/33515361
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/patch/33509923/33529556
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/patch/33509923/33534448
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/patch/33509923/33239955
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/patch/33509923/33575402

-- root 1번 노드 완료 후 2번 노드 진행
export ORACLE_HOME=$GI_HOME
export PATH=$PATH:/u01/app/19.0.0.0/grid/OPatch
which opatch
opatchauto apply /media/patch/33509923 -oh /u01/app/19.0.0.0/grid
728x90